public int find(String what) { return find(what, 0); }
@Override public synchronized List<String> getKeys() throws IOException { List<String> list = new ArrayList<String>(); List<Text> keys = credentials.getAllSecretKeys(); for (Text key : keys) { if (key.find("@") == -1) { list.add(key.toString()); } } return list; }
public static Text parseDocID(Key key) { Text colq = key.getColumnQualifier(); int firstZeroIndex = colq.find("\0"); if (firstZeroIndex < 0) { throw new IllegalArgumentException("bad docid: " + key); } int secondZeroIndex = colq.find("\0", firstZeroIndex + 1); if (secondZeroIndex < 0) { throw new IllegalArgumentException("bad docid: " + key); } int thirdZeroIndex = colq.find("\0", secondZeroIndex + 1); if (thirdZeroIndex < 0) { throw new IllegalArgumentException("bad docid: " + key); } Text docID = new Text(); try { docID.set(colq.getBytes(), firstZeroIndex + 1, thirdZeroIndex - 1 - firstZeroIndex); } catch (ArrayIndexOutOfBoundsException e) { throw new IllegalArgumentException("bad indices for docid: " + key + " " + firstZeroIndex + " " + secondZeroIndex + " " + thirdZeroIndex); } return docID; }
@Override protected Text getTerm(Key key) { if (indexColf.compareTo(key.getColumnFamily().getBytes(), 0, indexColf.getLength()) < 0) { // We're past the index column family, so return a term that will sort lexicographically last. // The last unicode character should suffice return new Text("\uFFFD"); } Text colq = key.getColumnQualifier(); int zeroIndex = colq.find("\0"); Text term = new Text(); term.set(colq.getBytes(), 0, zeroIndex); return term; }
public static long getTimeClosed(Key k, Text buff) { k.getRow(buff); int offset = 0; // find the last offset while (true) { int nextOffset = buff.find(ROW_SEPARATOR.toString(), offset + 1); if (nextOffset == -1) { break; } offset = nextOffset; } if (offset == -1) { throw new IllegalArgumentException( "Row does not contain expected separator for OrderSection"); } byte[] encodedLong = new byte[offset]; System.arraycopy(buff.getBytes(), 0, encodedLong, 0, offset); return longEncoder.decode(encodedLong); }
protected Key buildDocKey() { if (log.isTraceEnabled()) log.trace("building doc key for {} {}", currentPartition, currentDocID); int zeroIndex = currentDocID.find("\0"); if (zeroIndex < 0) throw new IllegalArgumentException("bad current docID"); Text colf = new Text(docColf); colf.append(nullByte, 0, 1); colf.append(currentDocID.getBytes(), 0, zeroIndex); docColfSet = Collections.singleton(new ArrayByteSequence(colf.getBytes(), 0, colf.getLength())); if (log.isTraceEnabled()) log.trace("{} {}", zeroIndex, currentDocID.getLength()); Text colq = new Text(); colq.set(currentDocID.getBytes(), zeroIndex + 1, currentDocID.getLength() - zeroIndex - 1); Key k = new Key(currentPartition, colf, colq); if (log.isTraceEnabled()) log.trace("built doc key for seek: {}", k); return k; }
public static String getFile(Key k, Text buff) { k.getRow(buff); int offset = 0; // find the last offset while (true) { int nextOffset = buff.find(ROW_SEPARATOR.toString(), offset + 1); if (nextOffset == -1) { break; } offset = nextOffset; } if (offset == -1) { throw new IllegalArgumentException( "Row does not contain expected separator for OrderSection"); } try { return Text.decode(buff.getBytes(), offset + 1, buff.getLength() - (offset + 1)); } catch (CharacterCodingException e) { throw new IllegalArgumentException("Could not decode file path", e); } } }
@Override public synchronized List<String> getKeys() throws IOException { List<String> list = new ArrayList<String>(); List<Text> keys = credentials.getAllSecretKeys(); for (Text key : keys) { if (key.find("@") == -1) { list.add(key.toString()); } } return list; }
@Override public synchronized List<String> getKeys() throws IOException { List<String> list = new ArrayList<String>(); List<Text> keys = credentials.getAllSecretKeys(); for (Text key : keys) { if (key.find("@") == -1) { list.add(key.toString()); } } return list; }
@Override public synchronized List<String> getKeys() throws IOException { List<String> list = new ArrayList<String>(); List<Text> keys = credentials.getAllSecretKeys(); for (Text key : keys) { if (key.find("@") == -1) { list.add(key.toString()); } } return list; }
@Override public synchronized List<String> getKeys() throws IOException { List<String> list = new ArrayList<String>(); List<Text> keys = credentials.getAllSecretKeys(); for (Text key : keys) { if (key.find("@") == -1) { list.add(key.toString()); } } return list; }
private String getTimeUnit(Key key) { if (useHourlyPrecision) { return DateHelper.formatToHour(key.getTimestamp()); } else { Text row = key.getRow(); return new String(row.getBytes(), 0, row.find("_")); } }
private static void forOffset(SequenceFile.Reader reader, IntWritable key, Text val, int iter, long off, int expectedRecord) throws IOException { val.clear(); reader.sync(off); reader.next(key, val); assertEquals(key.get(), expectedRecord); final String test = String.format(REC_FMT, expectedRecord, expectedRecord); assertEquals("Invalid value " + val, 0, val.find(test, 0)); }
private static void forOffset(SequenceFile.Reader reader, IntWritable key, Text val, int iter, long off, int expectedRecord) throws IOException { val.clear(); reader.sync(off); reader.next(key, val); assertEquals(key.get(), expectedRecord); final String test = String.format(REC_FMT, expectedRecord, expectedRecord); assertEquals("Invalid value " + val, 0, val.find(test, 0)); }
private static void forOffset(SequenceFile.Reader reader, IntWritable key, Text val, int iter, long off, int expectedRecord) throws IOException { val.clear(); reader.sync(off); reader.next(key, val); assertEquals(key.get(), expectedRecord); final String test = String.format(REC_FMT, expectedRecord, expectedRecord); assertEquals("Invalid value " + val, 0, val.find(test, 0)); }