MetadataSchemaFieldEntity resolveMetadataSchemaField()

in data-catalog-api/server/service/src/main/java/org/apache/airavata/datacatalog/api/query/impl/PostgresqlMetadataSchemaQueryWriterImpl.java [49:74]


        MetadataSchemaFieldEntity resolveMetadataSchemaField(SqlIdentifier sqlIdentifier) {

            MetadataSchemaEntity metadataSchema = null;
            String fieldName = null;
            if (sqlIdentifier.names.size() == 2) {
                String tableName = sqlIdentifier.names.get(0);
                metadataSchema = resolveMetadataSchema(tableName);
                fieldName = sqlIdentifier.names.get(1);
            } else if (sqlIdentifier.names.size() == 1) {
                // TODO: just pick the first one, but in general we would need
                // to look through all of the metadata schemas to find the one
                // that this field belongs to
                metadataSchema = this.metadataSchemas.iterator().next();
                fieldName = sqlIdentifier.names.get(0);
            } else {
                throw new RuntimeException("Unexpected sqlIdentifier: " + sqlIdentifier);
            }

            for (MetadataSchemaFieldEntity metadataSchemaField : metadataSchema.getMetadataSchemaFields()) {
                if (metadataSchemaField.getFieldName().equals(fieldName)) {
                    return metadataSchemaField;
                }
            }
            // If none matched, must not be a metadata schema field
            return null;
        }