public static SchemaFieldInfoStorable fromSchemaFieldInfo(SchemaFieldInfo schemaFieldInfo, Long id) { SchemaFieldInfoStorable schemaFieldInfoStorable = new SchemaFieldInfoStorable(id); schemaFieldInfoStorable.setFieldNamespace(schemaFieldInfo.getNamespace()); schemaFieldInfoStorable.setName(schemaFieldInfo.getName()); schemaFieldInfoStorable.setType(schemaFieldInfo.getType()); return schemaFieldInfoStorable; }
storageManager.add(schemaBranchVersionMapping); String storableNamespace = new SchemaFieldInfoStorable().getNameSpace(); List<SchemaFieldInfo> schemaFieldInfos = getSchemaProvider(type).generateFields(schemaVersionStorable.getSchemaText()); for (SchemaFieldInfo schemaFieldInfo : schemaFieldInfos) { final Long fieldInstanceId = storageManager.nextId(storableNamespace); SchemaFieldInfoStorable schemaFieldInfoStorable = SchemaFieldInfoStorable.fromSchemaFieldInfo(schemaFieldInfo, fieldInstanceId); schemaFieldInfoStorable.setSchemaInstanceId(schemaInstanceId); schemaFieldInfoStorable.setTimestamp(System.currentTimeMillis()); storageManager.add(schemaFieldInfoStorable);
@Override public Collection<SchemaVersionKey> findSchemasByFields(SchemaFieldQuery schemaFieldQuery) { List<QueryParam> queryParams = buildQueryParam(schemaFieldQuery); Collection<SchemaFieldInfoStorable> fieldInfos = storageManager.find(SchemaFieldInfoStorable.STORABLE_NAME_SPACE, queryParams); Collection<SchemaVersionKey> schemaVersionKeys; if (fieldInfos != null && !fieldInfos.isEmpty()) { List<Long> schemaIds = new ArrayList<>(); for (SchemaFieldInfoStorable fieldInfo : fieldInfos) { schemaIds.add(fieldInfo.getSchemaInstanceId()); } // todo get only few selected columns instead of getting the whole row. // add OR query to find items from store schemaVersionKeys = new ArrayList<>(); for (Long schemaId : schemaIds) { SchemaVersionKey schemaVersionKey = getSchemaKey(schemaId); if (schemaVersionKey != null) { schemaVersionKeys.add(schemaVersionKey); } } } else { schemaVersionKeys = Collections.emptyList(); } return schemaVersionKeys; }