SchemaId deserializeSchemaId(byte[] serialized) { return idGenerator.getSchemaId(serialized); } }
public Set<SchemaId> deserializeFields(byte[] serialized, int offset, int length) { final HashSet<SchemaId> result = new HashSet<SchemaId>(); for (int i = offset; i < offset + length; i += SCHEMA_ID_BYTE_LENGTH) { byte[] bytes = new byte[SCHEMA_ID_BYTE_LENGTH]; System.arraycopy(serialized, i, bytes, 0, SCHEMA_ID_BYTE_LENGTH); result.add(idGenerator.getSchemaId(bytes)); } return result; }
public FieldChange(JsonParser jp, IdGenerator idGenerator) throws IOException { JsonToken current = jp.getCurrentToken(); if (current != JsonToken.START_OBJECT) { throw new RuntimeException("Not a JSON object."); } while (jp.nextToken() != JsonToken.END_OBJECT) { String fieldName = jp.getCurrentName(); current = jp.nextToken(); // move from field name to field value if (fieldName.equals("id")) { this.id = idGenerator.getSchemaId(jp.getBinaryValue()); } else if (fieldName.equals("old")) { oldValue = jp.getBinaryValue(); } else if (fieldName.equals("new")) { newValue = jp.getBinaryValue(); } } }
public static final IdRecord readIdRecord(DataInput input, LRepository repository) throws RepositoryException, InterruptedException { Record record = read(input, repository); IdGenerator idGenerator = repository.getIdGenerator(); int size = input.readVInt(); Map<SchemaId, QName> idToQNameMapping = new HashMap<SchemaId, QName>(); for (int i = 0; i < size; i++) { byte[] schemaIdBytes = readBytes(input); QName name = readQName(input); SchemaId schemaId = idGenerator.getSchemaId(schemaIdBytes); idToQNameMapping.put(schemaId, name); } Map<Scope, SchemaId> recordTypeIds = new EnumMap(Scope.class); for (Scope scope : Scope.values()) { byte[] schemaIdBytes = readNullOrBytes(input); if (schemaIdBytes != null) { SchemaId schemaId = idGenerator.getSchemaId(schemaIdBytes); recordTypeIds.put(scope, schemaId); } } return new IdRecordImpl(record, idToQNameMapping, recordTypeIds); }
throw new RuntimeException(e); // rare enough SchemaId schemaId = idGenerator.getSchemaId(id);
newRecordExists = jp.getBooleanValue(); } else if (fieldName.equals("newRecordType")) { newRecordType = idGenerator.getSchemaId(jp.getBinaryValue()); } else if (fieldName.equals("oldRecordType")) { oldRecordType = idGenerator.getSchemaId(jp.getBinaryValue()); } else if (fieldName.equals("includeSubscriptions")) { includeSubscriptions = jp.getBooleanValue();
addUpdatedField(idGenerator.getSchemaId(jp.getBinaryValue())); addVTagToIndex(idGenerator.getSchemaId(jp.getBinaryValue()));
public Set<Pair<FieldedLink, SchemaId>> getAllForwardLinks(AbsoluteRecordId record) throws LinkIndexException, InterruptedException { long before = System.currentTimeMillis(); try { Query query = new Query(); query.addEqualsCondition("source", record.toBytes()); Set<Pair<FieldedLink, SchemaId>> result = new HashSet<Pair<FieldedLink, SchemaId>>(); QueryResult qr = forwardIndex.performQuery(query); byte[] id; while ((id = qr.next()) != null) { SchemaId sourceField = getIdGenerator().getSchemaId(qr.getData(SOURCE_FIELD_KEY)); SchemaId vtag = getIdGenerator().getSchemaId(qr.getData(VTAG_KEY)); result.add( new Pair<FieldedLink, SchemaId>(new FieldedLink(getIdGenerator().absoluteFromBytes(id), sourceField), vtag)); } Closer.close( qr); // Not closed in finally block: avoid HBase contact when there could be connection problems. return result; } catch (IOException e) { throw new LinkIndexException("Error getting forward links for record '" + record + "'", e); } finally { metrics.report(Action.GET_ALL_FW_LINKS, System.currentTimeMillis() - before); } }
public Set<FieldedLink> getFieldedForwardLinks(AbsoluteRecordId record, SchemaId vtag) throws LinkIndexException, InterruptedException { long before = System.currentTimeMillis(); try { Query query = new Query(); query.addEqualsCondition("source", record.toBytes()); if (vtag != null) { query.addEqualsCondition("vtag", vtag.getBytes()); } Set<FieldedLink> result = new HashSet<FieldedLink>(); QueryResult qr = forwardIndex.performQuery(query); byte[] id; while ((id = qr.next()) != null) { SchemaId sourceField = getIdGenerator().getSchemaId(qr.getData(SOURCE_FIELD_KEY)); result.add(new FieldedLink(getIdGenerator().absoluteFromBytes(id), sourceField)); } Closer.close( qr); // Not closed in finally block: avoid HBase contact when there could be connection problems. return result; } catch (IOException e) { throw new LinkIndexException("Error getting forward links for record '" + record + "', vtag '" + vtag + "'", e); } finally { metrics.report(Action.GET_FW_LINKS, System.currentTimeMillis() - before); } }
public Set<FieldedLink> getFieldedReferrers(RecordId record, SchemaId vtag) throws LinkIndexException, InterruptedException { long before = System.currentTimeMillis(); try { Query query = new Query(); query.addEqualsCondition("target", record.toBytes()); if (vtag != null) { query.addEqualsCondition("vtag", vtag.getBytes()); } Set<FieldedLink> result = new HashSet<FieldedLink>(); QueryResult qr = backwardIndex.performQuery(query); byte[] id; while ((id = qr.next()) != null) { SchemaId sourceField = getIdGenerator().getSchemaId(qr.getData(SOURCE_FIELD_KEY)); result.add(new FieldedLink(getIdGenerator().absoluteFromBytes(id), sourceField)); } Closer.close( qr); // Not closed in finally block: avoid HBase contact when there could be connection problems. return result; } catch (IOException e) { throw new LinkIndexException("Error getting referrers for record '" + record + "', vtag '" + vtag + "'", e); } finally { metrics.report(Action.GET_FIELDED_REFERRERS, System.currentTimeMillis() - before); } }