pylucene 3.5.0-3
[pylucene.git] / lucene-java-3.5.0 / lucene / contrib / facet / src / java / org / apache / lucene / facet / index / attributes / OrdinalProperty.java
1 package org.apache.lucene.facet.index.attributes;
2
3 /**
4  * Licensed to the Apache Software Foundation (ASF) under one or more
5  * contributor license agreements.  See the NOTICE file distributed with
6  * this work for additional information regarding copyright ownership.
7  * The ASF licenses this file to You under the Apache License, Version 2.0
8  * (the "License"); you may not use this file except in compliance with
9  * the License.  You may obtain a copy of the License at
10  *
11  *     http://www.apache.org/licenses/LICENSE-2.0
12  *
13  * Unless required by applicable law or agreed to in writing, software
14  * distributed under the License is distributed on an "AS IS" BASIS,
15  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16  * See the License for the specific language governing permissions and
17  * limitations under the License.
18  */
19
20 /**
21  * A {@link CategoryProperty} holding the ordinal from the taxonomy of the
22  * current category in {@link CategoryAttribute}.
23  * <p>
24  * Ordinal properties are added internally during processing of category
25  * streams, and it is recommended not to use it externally.
26  * 
27  * @lucene.experimental
28  */
29 public class OrdinalProperty implements CategoryProperty {
30
31   protected int ordinal = -1;
32
33   public int getOrdinal() {
34     return ordinal;
35   }
36
37   public boolean hasBeenSet() {
38     return this.ordinal >= 0;
39   }
40
41   public void setOrdinal(int value) {
42     this.ordinal = value;
43   }
44
45   public void clear() {
46     this.ordinal = -1;
47   }
48
49   @Override
50   public boolean equals(Object other) {
51     if (other == this) {
52       return true;
53     }
54     if (!(other instanceof OrdinalProperty)) {
55       return false;
56     }
57     OrdinalProperty o = (OrdinalProperty) other;
58     return o.ordinal == this.ordinal;
59   }
60
61   @Override
62   public int hashCode() {
63     return this.ordinal;
64   }
65
66   public void merge(CategoryProperty other) {
67     throw new UnsupportedOperationException(
68     "Merging ordinal attributes is prohibited");
69   }
70
71 }