KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > puppycrawl > tools > checkstyle > checks > usage > transmogrify > Reference


1
2 // Transmogrify License
3
//
4
// Copyright (c) 2001, ThoughtWorks, Inc.
5
// All rights reserved.
6
// Redistribution and use in source and binary forms, with or without
7
// modification, are permitted provided that the following conditions
8
// are met:
9
// - Redistributions of source code must retain the above copyright notice,
10
// this list of conditions and the following disclaimer.
11
// - Redistributions in binary form must reproduce the above copyright
12
// notice, this list of conditions and the following disclaimer in the
13
// documentation and/or other materials provided with the distribution.
14
// Neither the name of the ThoughtWorks, Inc. nor the names of its
15
// contributors may be used to endorse or promote products derived from this
16
// software without specific prior written permission.
17
// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
18
// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
19
// TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
20
// PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
21
// CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
22
// EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
23
// PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
24
// OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
25
// WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
26
// OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
27
// ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
28

29 package com.puppycrawl.tools.checkstyle.checks.usage.transmogrify;
30
31 import java.io.File JavaDoc;
32
33
34
35
36 /**
37  * represents a place where a definition is used. There are two flavors
38  * of references -- resolved (those that have a definition associated with
39  * them) and unresolved (those that don't have a definition associated).
40  * The goal of the resolution step is to get all of the references in the
41  * symbol table to fall into the resolved category.
42  */

43
44 public class Reference implements Comparable JavaDoc {
45
46   private SymTabAST _node;
47   private Occurrence _occurrence;
48
49   public Reference( SymTabAST node ) {
50     _node = node;
51     _occurrence = new Occurrence( _node.getFile(), ASTUtil.getLine(_node), ASTUtil.getColumn(_node) );
52   }
53
54   /**
55    * gets the definition associated with this reference
56    *
57    * @return Definition the (possibly null) definition associated with
58    * this reference
59    */

60   public IDefinition getDefinition() {
61     return _node.getDefinition();
62   }
63
64   /**
65    * return the node that was passed in during ctor
66    */

67   public SymTabAST getTreeNode() {
68     return _node;
69   }
70
71   /**
72    * gets the occurrence of this reference
73    *
74    * @return Occurrence
75    */

76   public Occurrence getOccurrence() {
77     return _occurrence;
78   }
79
80   /**
81    * gets the line where the node resides
82    */

83   public int getLine() {
84     return getOccurrence().getLine();
85   }
86
87   /**
88    * gets the column for where the node resides
89    */

90   public int getColumn() {
91     return getOccurrence().getColumn();
92   }
93
94   /**
95    * gets the enclosing file for the node
96    */

97   public File JavaDoc getFile() {
98     return getOccurrence().getFile();
99   }
100
101   /**
102    * gets the name of the reference
103    *
104    * @return String the name of the definition associated with this reference
105    * if this reference is resolved, else null
106    */

107   public String JavaDoc getName() {
108     return _node.getName();
109   }
110
111   /**
112    * returns a string representation of the reference.
113    *
114    * @return String
115    */

116   public String JavaDoc toString() {
117     return getOccurrence().toString();
118   }
119
120   /**
121    * returns whether the <code>Reference</code>s are equal
122    *
123    * @return whether the <code>Reference</code>s are equal
124    */

125    // REDTAG -- not finished
126
public boolean equals(Object JavaDoc obj){
127     boolean result = false;
128     if (obj instanceof Reference) {
129       result = getOccurrence().equals(((Reference)obj).getOccurrence());
130     }
131     return result;
132   }
133
134   public int compareTo(Object JavaDoc o) {
135     if (!(o instanceof Reference)) {
136       throw new ClassCastException JavaDoc(getClass().getName());
137     }
138
139     return getOccurrence().compareTo(((Reference)o).getOccurrence());
140   }
141 }
142
Popular Tags