
org.hibernate.search.engine.metadata.impl.FieldMetadataBuilderImpl Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of hibernate-search-engine Show documentation
Show all versions of hibernate-search-engine Show documentation
Core of the Object/Lucene mapper, query engine and index management
/*
* Hibernate Search, full-text search for your domain model
*
* License: GNU Lesser General Public License (LGPL), version 2.1 or later
* See the lgpl.txt file in the root directory or .
*/
package org.hibernate.search.engine.metadata.impl;
import java.util.HashSet;
import java.util.Set;
import org.hibernate.search.bridge.spi.FieldMetadataBuilder;
import org.hibernate.search.bridge.spi.FieldMetadataCreationContext;
import org.hibernate.search.bridge.spi.FieldType;
/**
* The internal implementation of {@link FieldMetadataBuilder}.
*
* @author Gunnar Morling
*/
class FieldMetadataBuilderImpl implements FieldMetadataBuilder {
private final Set sortableFields = new HashSet<>();
private final Set fields = new HashSet<>();
private final DocumentFieldMetadata fieldMetadata;
public FieldMetadataBuilderImpl(DocumentFieldMetadata fieldMetadata) {
this.fieldMetadata = fieldMetadata;
}
@Override
public FieldMetadataCreationContext field(String name, FieldType type) {
return new FieldMetadataCreationContextImpl( name, type );
}
public Set getSortableFields() {
return sortableFields;
}
public Set getFields() {
return fields;
}
private class FieldMetadataCreationContextImpl implements FieldMetadataCreationContext {
private final String fieldName;
private DocumentFieldMetadata.Builder builder;
public FieldMetadataCreationContextImpl(String name, FieldType type) {
this.fieldName = name;
fields.add( new BridgeDefinedField( name, type, fieldMetadata.getIndex() ) );
}
@Override
public FieldMetadataCreationContext field(String name, FieldType type) {
return FieldMetadataBuilderImpl.this.field( name, type );
}
@Override
public FieldMetadataCreationContext sortable(boolean sortable) {
sortableFields.add( fieldName );
return this;
}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy