package org.apache.lucene.store.instantiated;
import org.apache.lucene.index.TermVectorOffsetInfo;
import java.io.Serializable;
import java.util.Comparator;
/**
* Copyright 2006 The Apache Software Foundation
*
* Licensed 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.
*/
/**
* There is one instance of this class per indexed term in a document
* and it contains the meta data about each occurrence of a term in a document.
*
* It is the inner glue of the inverted index.
*
* <pre>
* [Term]-- {0..*} | {0..*} --(field)[Document]
* <<ordered>>
* |
* [TermDocumentInformation]
* +payloads
* +termPositions
* +termOffsets
* </pre>
*
*/
public class InstantiatedTermDocumentInformation
implements Serializable {
private static final long serialVersionUID = 1l;
public static final Comparator<InstantiatedTermDocumentInformation> termComparator = new Comparator<InstantiatedTermDocumentInformation>() {
public int compare(InstantiatedTermDocumentInformation instantiatedTermDocumentInformation, InstantiatedTermDocumentInformation instantiatedTermDocumentInformation1) {
return instantiatedTermDocumentInformation.getTerm().getTerm().compareTo(instantiatedTermDocumentInformation1.getTerm().getTerm());
}
};
public static final Comparator<InstantiatedTermDocumentInformation> documentNumberComparator = new Comparator<InstantiatedTermDocumentInformation>() {
public int compare(InstantiatedTermDocumentInformation instantiatedTermDocumentInformation, InstantiatedTermDocumentInformation instantiatedTermDocumentInformation1) {
return instantiatedTermDocumentInformation.getDocument().getDocumentNumber().compareTo(instantiatedTermDocumentInformation1.getDocument().getDocumentNumber());
}
};
public static final Comparator doumentNumberIntegerComparator = new Comparator() {
public int compare(Object o1, Object o2) {
InstantiatedTermDocumentInformation di = (InstantiatedTermDocumentInformation) o1;
Integer i = (Integer) o2;
return di.getDocument().getDocumentNumber().compareTo(i);
}
};
private byte[][] payloads;
private int[] termPositions;
private InstantiatedTerm term;
private InstantiatedDocument document;
private TermVectorOffsetInfo[] termOffsets;
public InstantiatedTermDocumentInformation(InstantiatedTerm term, InstantiatedDocument document, int[] termPositions, byte[][] payloads) {
this.term = term;
this.document = document;
this.termPositions = termPositions;
this.payloads = payloads;
}
// not quite sure why I wanted this.
// /**
// * [Term]--- {0..* ordered} ->[Info]
// */
// private int indexFromTerm;
// public int getIndexFromTerm() {
// return indexFromTerm;
// }
//
// void setIndexFromTerm(int indexFromTerm) {
// this.indexFromTerm = indexFromTerm;
// }
public int[] getTermPositions() {
return termPositions;
}
public byte[][] getPayloads() {
return payloads;
}
public InstantiatedDocument getDocument() {
return document;
}
public InstantiatedTerm getTerm() {
return term;
}
void setTermPositions(int[] termPositions) {
this.termPositions = termPositions;
}
void setTerm(InstantiatedTerm term) {
this.term = term;
}
void setDocument(InstantiatedDocument document) {
this.document = document;
}
public TermVectorOffsetInfo[] getTermOffsets() {
return termOffsets;
}
void setTermOffsets(TermVectorOffsetInfo[] termOffsets) {
this.termOffsets = termOffsets;
}
}