KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > eclipse > jdt > internal > corext > refactoring > typeconstraints > ConstraintOperator


1 /*******************************************************************************
2  * Copyright (c) 2000, 2006 IBM Corporation and others.
3  * All rights reserved. This program and the accompanying materials
4  * are made available under the terms of the Eclipse Public License v1.0
5  * which accompanies this distribution, and is available at
6  * http://www.eclipse.org/legal/epl-v10.html
7  *
8  * Contributors:
9  * IBM Corporation - initial API and implementation
10  *******************************************************************************/

11 package org.eclipse.jdt.internal.corext.refactoring.typeconstraints;
12
13 import java.util.Arrays JavaDoc;
14 import java.util.Collection JavaDoc;
15 import java.util.HashSet JavaDoc;
16
17 import org.eclipse.core.runtime.Assert;
18
19
20 public final class ConstraintOperator {
21     
22     private final String JavaDoc fOperatorString;
23     private final int fOperatorCode;
24
25     private static final int CODE_SUBTYPE= 0;
26     private static final int CODE_EQUALS= 1;
27     private static final int CODE_DEFINES= 2;
28     private static final int CODE_STRICT_SUBTYPE= 3;
29     
30     private static final String JavaDoc STRING_SUBTYPE= "<=";//$NON-NLS-1$
31
private static final String JavaDoc STRING_EQUALS= "==";//$NON-NLS-1$
32
private static final String JavaDoc STRING_DEFINES= "=^=";//$NON-NLS-1$
33
private static final String JavaDoc STRING_STRICT_SUBTYPE= "<";//$NON-NLS-1$
34
private static final Collection JavaDoc fgOperatorStrings= new HashSet JavaDoc(Arrays.asList(new String JavaDoc[] {STRING_SUBTYPE, STRING_EQUALS, STRING_DEFINES, STRING_STRICT_SUBTYPE}));
35
36     private static final ConstraintOperator fgSubtype= new ConstraintOperator(STRING_SUBTYPE, CODE_SUBTYPE);
37     private static final ConstraintOperator fgEquals= new ConstraintOperator(STRING_EQUALS, CODE_EQUALS);
38     private static final ConstraintOperator fgDefines= new ConstraintOperator(STRING_DEFINES, CODE_DEFINES);
39     private static final ConstraintOperator fgStrictSubtype= new ConstraintOperator(STRING_STRICT_SUBTYPE, CODE_STRICT_SUBTYPE);
40
41     public static ConstraintOperator createSubTypeOperator() {
42         return fgSubtype;
43     }
44
45     public static ConstraintOperator createEqualsOperator() {
46         return fgEquals;
47     }
48
49     public static ConstraintOperator createDefinesOperator() {
50         return fgDefines;
51     }
52
53     public static ConstraintOperator createStrictSubtypeOperator() {
54         return fgStrictSubtype;
55     }
56     
57     private ConstraintOperator(String JavaDoc string, int code){
58         Assert.isTrue(fgOperatorStrings.contains(string));
59         Assert.isTrue(code == CODE_DEFINES || code == CODE_EQUALS || code == CODE_STRICT_SUBTYPE || code == CODE_SUBTYPE);
60         fOperatorString= string;
61         fOperatorCode= code;
62     }
63         
64     public String JavaDoc getOperatorString(){
65         return fOperatorString;
66     }
67     
68     /* (non-Javadoc)
69      * @see java.lang.Object#toString()
70      */

71     public String JavaDoc toString() {
72         return getOperatorString();
73     }
74         
75     /* (non-Javadoc)
76      * @see java.lang.Object#equals(java.lang.Object)
77      */

78     public boolean equals(Object JavaDoc obj) {
79         if (! (obj instanceof ConstraintOperator))
80             return false;
81         ConstraintOperator other= (ConstraintOperator)obj;
82         return fOperatorCode == other.fOperatorCode;
83     }
84
85     /* (non-Javadoc)
86      * @see java.lang.Object#hashCode()
87      */

88     public int hashCode() {
89         return fOperatorString.hashCode();
90     }
91
92     public final boolean isSubtypeOperator() {
93         return fOperatorCode == CODE_SUBTYPE;
94     }
95
96     public final boolean isStrictSubtypeOperator() {
97         return fOperatorCode == CODE_STRICT_SUBTYPE;
98     }
99
100     public final boolean isEqualsOperator() {
101         return fOperatorCode == CODE_EQUALS;
102     }
103
104     public final boolean isDefinesOperator() {
105         return fOperatorCode == CODE_DEFINES;
106     }
107 }
108
Popular Tags