public <R extends AbstractBaseRecord> R add(R record) { if (record instanceof NodeRecord) { add(nodes, (NodeRecord) record); } else if (record instanceof RelationshipRecord) { add(relationships, (RelationshipRecord) record); } else if (record instanceof PropertyRecord) { add(properties, (PropertyRecord) record); } else if (record instanceof DynamicRecord) { DynamicRecord dyn = (DynamicRecord) record; if (dyn.getType() == PropertyType.STRING.intValue()) { addString(dyn); } else if (dyn.getType() == PropertyType.ARRAY.intValue()) { addArray(dyn); } else { throw new IllegalArgumentException("Invalid dynamic record type"); } } else if (record instanceof RelationshipTypeRecord) { add(labels, (RelationshipTypeRecord) record); } else if (record instanceof PropertyIndexRecord) { add(keys, (PropertyIndexRecord) record); } else if (record instanceof NeoStoreRecord) { this.graph = new Delta<NeoStoreRecord>((NeoStoreRecord) record); } else { throw new IllegalArgumentException("Invalid record type"); } return record; }
public List<LegacyDynamicRecord> readDynamicRecords(LegacyPropertyRecord record) { if (record.getType() == LegacyPropertyType.STRING) { List<LegacyDynamicRecord> stringRecords = stringPropertyStore.getPropertyChain(record.getPropBlock()); for (LegacyDynamicRecord stringRecord : stringRecords) { stringRecord.setType(PropertyType.STRING.intValue()); } return stringRecords; } else if (record.getType() == LegacyPropertyType.ARRAY) { List<LegacyDynamicRecord> arrayRecords = arrayPropertyStore.getPropertyChain(record.getPropBlock()); for (LegacyDynamicRecord arrayRecord : arrayRecords) { arrayRecord.setType(PropertyType.ARRAY.intValue()); } return arrayRecords; } return null; }