~slub.team/goobi-indexserver/3.x

« back to all changes in this revision

Viewing changes to lucene/contrib/analyzers/smartcn/src/java/org/apache/lucene/analysis/cn/smart/hhmm/PathNode.java

  • Committer: Sebastian Meyer
  • Date: 2012-08-03 09:12:40 UTC
  • Revision ID: sebastian.meyer@slub-dresden.de-20120803091240-x6861b0vabq1xror
Remove Lucene and Solr source code and add patches instead
Fix Bug #985487: Auto-suggestion for the search interface

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
 
/**
2
 
 * Licensed to the Apache Software Foundation (ASF) under one or more
3
 
 * contributor license agreements.  See the NOTICE file distributed with
4
 
 * this work for additional information regarding copyright ownership.
5
 
 * The ASF licenses this file to You under the Apache License, Version 2.0
6
 
 * (the "License"); you may not use this file except in compliance with
7
 
 * the License.  You may obtain a copy of the License at
8
 
 *
9
 
 *     http://www.apache.org/licenses/LICENSE-2.0
10
 
 *
11
 
 * Unless required by applicable law or agreed to in writing, software
12
 
 * distributed under the License is distributed on an "AS IS" BASIS,
13
 
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
 
 * See the License for the specific language governing permissions and
15
 
 * limitations under the License.
16
 
 */
17
 
 
18
 
package org.apache.lucene.analysis.cn.smart.hhmm;
19
 
 
20
 
/**
21
 
 * SmartChineseAnalyzer internal node representation
22
 
 * <p>
23
 
 * Used by {@link BiSegGraph} to maximize the segmentation with the Viterbi algorithm.
24
 
 * </p>
25
 
 * @lucene.experimental
26
 
 */
27
 
class PathNode implements Comparable<PathNode> {
28
 
  public double weight;
29
 
 
30
 
  public int preNode;
31
 
 
32
 
  public int compareTo(PathNode pn) {
33
 
    if (weight < pn.weight)
34
 
      return -1;
35
 
    else if (weight == pn.weight)
36
 
      return 0;
37
 
    else
38
 
      return 1;
39
 
  }
40
 
 
41
 
  /**
42
 
   * @see java.lang.Object#hashCode()
43
 
   */
44
 
  @Override
45
 
  public int hashCode() {
46
 
    final int prime = 31;
47
 
    int result = 1;
48
 
    result = prime * result + preNode;
49
 
    long temp;
50
 
    temp = Double.doubleToLongBits(weight);
51
 
    result = prime * result + (int) (temp ^ (temp >>> 32));
52
 
    return result;
53
 
  }
54
 
 
55
 
  /**
56
 
   * @see java.lang.Object#equals(java.lang.Object)
57
 
   */
58
 
  @Override
59
 
  public boolean equals(Object obj) {
60
 
    if (this == obj)
61
 
      return true;
62
 
    if (obj == null)
63
 
      return false;
64
 
    if (getClass() != obj.getClass())
65
 
      return false;
66
 
    PathNode other = (PathNode) obj;
67
 
    if (preNode != other.preNode)
68
 
      return false;
69
 
    if (Double.doubleToLongBits(weight) != Double
70
 
        .doubleToLongBits(other.weight))
71
 
      return false;
72
 
    return true;
73
 
  }
74
 
}