blob: bf99c97274e3ef603baf040c7ed5bc0abe95600e [file] [log] [blame]
package org.apache.maven.index;
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
import org.apache.lucene.document.Field;
import org.apache.lucene.document.Field.Index;
import org.apache.lucene.document.Field.Store;
import org.apache.lucene.document.Field.TermVector;
/**
* Holds basic information about Indexer field, how it is stored. To keep this centralized, and not spread across code.
* Since Lucene 2.x, the field names are encoded, so please use real chatty names instead of cryptic chars!
*
* @author cstamas
*/
public class IndexerField
{
private final org.apache.maven.index.Field ontology;
private final IndexerFieldVersion version;
private final String key;
private final Store storeMethod;
private final Index indexMethod;
private final TermVector termVector;
public IndexerField( final org.apache.maven.index.Field ontology, final IndexerFieldVersion version,
final String key, final String description, final Store storeMethod, final Index indexMethod )
{
this( ontology, version, key, description, storeMethod, indexMethod, null );
}
public IndexerField( final org.apache.maven.index.Field ontology, final IndexerFieldVersion version,
final String key, final String description, final Store storeMethod, final Index indexMethod,
final TermVector termVector )
{
this.ontology = ontology;
this.version = version;
this.key = key;
this.storeMethod = storeMethod;
this.indexMethod = indexMethod;
this.termVector = termVector;
ontology.addIndexerField( this );
}
public org.apache.maven.index.Field getOntology()
{
return ontology;
}
public IndexerFieldVersion getVersion()
{
return version;
}
public String getKey()
{
return key;
}
public Field.Store getStoreMethod()
{
return storeMethod;
}
public Field.Index getIndexMethod()
{
return indexMethod;
}
public Field.TermVector getTermVector()
{
return termVector;
}
public boolean isIndexed()
{
return !Index.NO.equals( indexMethod );
}
public boolean isKeyword()
{
return isIndexed() && !Index.ANALYZED.equals( indexMethod );
}
public boolean isStored()
{
return !( Store.NO.equals( storeMethod ) );
}
public Field toField( String value )
{
Field result;
if ( getTermVector() != null )
{
result = new Field( getKey(), value, getStoreMethod(), getIndexMethod(), getTermVector() );
}
else
{
result = new Field( getKey(), value, getStoreMethod(), getIndexMethod() );
}
// if ( isKeyword() )
// {
// result.setOmitNorms( true );
// result.setOmitTf( true );
// }
return result;
}
}