bug 1469012, exception in CompletionProposal
[phpeclipse.git] / net.sourceforge.phpeclipse / src / net / sourceforge / phpeclipse / builder / PHPIdentifierLocation.java
1 package net.sourceforge.phpeclipse.builder;
2
3 import net.sourceforge.phpeclipse.obfuscator.PHPIdentifier;
4
5 /**
6  *  
7  */
8 public class PHPIdentifierLocation extends PHPIdentifier implements Comparable {
9   final public static int UNDEFINED_MATCH = 0;
10   final public static int PATTERN_MATCH = 1;
11   final public static int EXACT_MATCH = 2;
12
13   private int fMatch;
14
15   private String fClassname;
16
17   private String fFilename;
18
19   private int fOffset;
20
21   private int fPHPDocLength;
22
23   private int fPHPDocOffset;
24
25   private String fUsage;
26
27   public PHPIdentifierLocation(String identifier, int type, String filename) {
28     this(identifier, type, filename, null);
29   }
30
31   public PHPIdentifierLocation(String identifier, int type, String filename,
32       String classname) {
33     super(identifier, type);
34     fFilename = filename;
35     fClassname = classname;
36     fOffset = -1;
37     fPHPDocLength = -1;
38     fPHPDocOffset = -1;
39     fUsage = null;
40   }
41
42   /*
43    * (non-Javadoc)
44    * 
45    * @see java.lang.Object#equals(java.lang.Object)
46    */
47   public boolean equals(Object obj) {
48     if (!(obj instanceof PHPIdentifierLocation)) {
49       return false;
50     }
51     return super.equals(obj)
52         && fFilename.equals(((PHPIdentifierLocation) obj).fFilename);
53   }
54
55   /**
56    * @return
57    */
58   public String getClassname() {
59     return fClassname;
60   }
61
62   /**
63    * @return
64    */
65   public String getFilename() {
66     return fFilename;
67   }
68
69   /**
70    * @return
71    */
72   public int getOffset() {
73     return fOffset;
74   }
75
76   /**
77    * @return
78    */
79   public int getPHPDocLength() {
80     return fPHPDocLength;
81   }
82
83   /**
84    * @return
85    */
86   public int getPHPDocOffset() {
87     return fPHPDocOffset;
88   }
89
90   /**
91    * @return
92    */
93   public String getUsage() {
94     return fUsage;
95   }
96
97   /**
98    * @param string
99    */
100   public void setClassname(String string) {
101     fClassname = string;
102   }
103
104   /**
105    * @param string
106    */
107   public void setFilename(String string) {
108     fFilename = string;
109   }
110
111   /**
112    * @param i
113    */
114   public void setOffset(int i) {
115     fOffset = i;
116   }
117
118   /**
119    * @param i
120    */
121   public void setPHPDocLength(int i) {
122     fPHPDocLength = i;
123   }
124
125   /**
126    * @param i
127    */
128   public void setPHPDocOffset(int i) {
129     fPHPDocOffset = i;
130   }
131
132   /**
133    * @param string
134    */
135   public void setUsage(String string) {
136     fUsage = string;
137   }
138
139   /*
140    * (non-Javadoc)
141    * 
142    * @see java.lang.Object#toString()
143    */
144   public String toString() {
145     String result=null;
146     switch (fMatch) {
147     case UNDEFINED_MATCH:
148       result = " [";
149       break;
150     case PATTERN_MATCH:
151       result = " [pattern include][";
152       break;
153     case EXACT_MATCH:
154       result = " [exact include][";
155       break;
156      default:
157        result = "";
158     }
159     return super.toString() + result + fFilename+"]";
160   }
161
162   /* (non-Javadoc)
163    * @see java.lang.Comparable#compareTo(java.lang.Object)
164    */
165   public int compareTo(Object o) {
166     PHPIdentifierLocation i = (PHPIdentifierLocation)o;
167     if (fMatch>i.fMatch) {
168       return -1;
169     } else if (fMatch<i.fMatch) {
170       return 1;
171     }
172     return fFilename.compareTo(i.fFilename);
173   }
174   /**
175    * @return Returns the match.
176    */
177   public int getMatch() {
178     return fMatch;
179   }
180   /**
181    * @param match The match to set.
182    */
183   public void setMatch(int match) {
184     fMatch = match;
185   }
186 }