Skip to content

Commit

Permalink
HSEARCH-2451 Added getters for FacetMetadata to TypeMetadata
Browse files Browse the repository at this point in the history
Preliminary work for HSEARCH-2451.
  • Loading branch information
yrodiere authored and gsmet committed Nov 23, 2016
1 parent 862bace commit 2e6f0fb
Showing 1 changed file with 32 additions and 5 deletions.
Expand Up @@ -96,6 +96,11 @@ public class TypeMetadata {
*/
private final Map<String, BridgeDefinedField> bridgeDefinedFieldNameToFieldMetadata;

/**
* Metadata for a facet keyed against the facet field name
*/
private final Map<String, FacetMetadata> facetFieldNameToFacetMetadata;

/**
* Metadata for a Java property (field or getter) keyed against the property name.
*/
Expand Down Expand Up @@ -177,6 +182,7 @@ protected TypeMetadata(Builder builder) {
this.propertyGetterNameToPropertyMetadata = buildPropertyMetadataMap( builder.propertyMetadataSet );
this.documentFieldMetadata = collectFieldMetadata( builder.propertyMetadataSet, builder.classBridgeFields, builder.idPropertyMetadata );
this.documentFieldNameToFieldMetadata = buildFieldMetadataMap( documentFieldMetadata );
this.facetFieldNameToFacetMetadata = buildFacetMetadataMap( documentFieldMetadata );
this.bridgeDefinedFieldNameToFieldMetadata = buildBridgeDefinedFieldMetadataMap( documentFieldNameToFieldMetadata.values() );
this.classBridgeFieldNameToDocumentFieldMetadata = copyClassBridgeMetadata( builder.classBridgeFields );
this.classBridgeSortableFieldMetadata = Collections.unmodifiableSet( builder.classBridgeSortableFieldMetadata );
Expand Down Expand Up @@ -234,6 +240,20 @@ public BridgeDefinedField getBridgeDefinedFieldMetadataFor(String fieldName) {
return null;
}

public FacetMetadata getFacetMetadataFor(String facetFieldName) {
FacetMetadata result = facetFieldNameToFacetMetadata.get( facetFieldName );
if ( result != null ) {
return result;
}
for ( EmbeddedTypeMetadata element : embeddedTypeMetadata ) {
result = element.getFacetMetadataFor( facetFieldName );
if ( result != null ) {
return result;
}
}
return null;
}

/**
* Return all {@link DocumentFieldMetadata}.
* Instances are not duplicated in the collection. We use {@code Collection} instead of {@code Set} for
Expand Down Expand Up @@ -431,18 +451,25 @@ private Map<String, DocumentFieldMetadata> buildFieldMetadataMap(Set<DocumentFie
return Collections.unmodifiableMap( tmpMap );
}

private Map<String, BridgeDefinedField> buildBridgeDefinedFieldMetadataMap(Collection<DocumentFieldMetadata> documentFieldMetadataCollection) {
Map<String, BridgeDefinedField> tmpMap = new HashMap<String, BridgeDefinedField>();
private Map<String, FacetMetadata> buildFacetMetadataMap(Collection<DocumentFieldMetadata> documentFieldMetadataCollection) {
Map<String, FacetMetadata> tmpMap = new HashMap<String, FacetMetadata>();
for ( DocumentFieldMetadata documentFieldMetadata : documentFieldMetadataCollection ) {
for ( BridgeDefinedField bridgeDefinedField : documentFieldMetadata.getBridgeDefinedFields().values() ) {
tmpMap.put( bridgeDefinedField.getAbsoluteName(), bridgeDefinedField );
for ( FacetMetadata facetMetadata : documentFieldMetadata.getFacetMetadata() ) {
tmpMap.put( facetMetadata.getAbsoluteName(), facetMetadata );
}
}
for ( DocumentFieldMetadata documentFieldMetadata : classBridgeFields ) {
// Class bridge fields, etc. are already included in documentFieldMetadataCollection
return Collections.unmodifiableMap( tmpMap );
}

private Map<String, BridgeDefinedField> buildBridgeDefinedFieldMetadataMap(Collection<DocumentFieldMetadata> documentFieldMetadataCollection) {
Map<String, BridgeDefinedField> tmpMap = new HashMap<String, BridgeDefinedField>();
for ( DocumentFieldMetadata documentFieldMetadata : documentFieldMetadataCollection ) {
for ( BridgeDefinedField bridgeDefinedField : documentFieldMetadata.getBridgeDefinedFields().values() ) {
tmpMap.put( bridgeDefinedField.getAbsoluteName(), bridgeDefinedField );
}
}
// Class bridge fields, etc. are already included in documentFieldMetadataCollection
return Collections.unmodifiableMap( tmpMap );
}

Expand Down

0 comments on commit 2e6f0fb

Please sign in to comment.