add --shared
[pylucene.git] / lucene-java-3.4.0 / lucene / contrib / facet / src / java / org / apache / lucene / facet / enhancements / association / AssociationIntProperty.java
1 package org.apache.lucene.facet.enhancements.association;
2
3 import org.apache.lucene.facet.index.attributes.CategoryProperty;
4
5 /**
6  * Licensed to the Apache Software Foundation (ASF) under one or more
7  * contributor license agreements.  See the NOTICE file distributed with
8  * this work for additional information regarding copyright ownership.
9  * The ASF licenses this file to You under the Apache License, Version 2.0
10  * (the "License"); you may not use this file except in compliance with
11  * the License.  You may obtain a copy of the License at
12  *
13  *     http://www.apache.org/licenses/LICENSE-2.0
14  *
15  * Unless required by applicable law or agreed to in writing, software
16  * distributed under the License is distributed on an "AS IS" BASIS,
17  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
18  * See the License for the specific language governing permissions and
19  * limitations under the License.
20  */
21
22 /**
23  * An {@link AssociationProperty} which treats the association as int - merges
24  * two associations by summation.
25  * 
26  * @lucene.experimental
27  */
28 public class AssociationIntProperty extends AssociationProperty {
29
30   /**
31    * @param value
32    *            The association value.
33    */
34   public AssociationIntProperty(int value) {
35     super(value);
36   }
37
38   @Override
39   public boolean equals(Object other) {
40     if (other == this) {
41       return true;
42     }
43     if (!(other instanceof AssociationIntProperty)) {
44       return false;
45     }
46     AssociationIntProperty o = (AssociationIntProperty) other;
47     return o.association == this.association;
48   }
49
50   @Override
51   public int hashCode() {
52     return "AssociationIntProperty".hashCode() * 31 + (int) association;
53   }
54
55   public void merge(CategoryProperty other) {
56     AssociationIntProperty o = (AssociationIntProperty) other;
57     this.association += o.association;
58   }
59
60 }