@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());
}
schemaVersionKeys = new ArrayList<>();
for (Long schemaId : schemaIds) {
SchemaVersionKey schemaVersionKey = getSchemaKey(schemaId);
if (schemaVersionKey != null) {
schemaVersionKeys.add(schemaVersionKey);
}
}
} else {
schemaVersionKeys = Collections.emptyList();
}
return schemaVersionKeys;
}