KickJava   Java API By Example, From Geeks To Geeks.

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


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
32
33 import java.util.ArrayList JavaDoc;
34 import java.util.Iterator JavaDoc;
35 import java.util.List JavaDoc;
36 import java.util.Vector JavaDoc;
37 //import com.puppycrawl.tools.checkstyle.checks.lint.parser.JavaTokenTypes;
38

39 public class ArrayDef implements IClass {
40
41   private final static IVariable LENGTH_MEMBER = new ArrayLengthMember();
42
43   private IClass _type;
44
45   public ArrayDef(IClass type){
46     _type = type;
47   }
48
49   public IClass getType(){
50     return _type;
51   }
52
53   public IClass getSuperclass() {
54     return new ArrayDef(getType().getSuperclass());
55   }
56
57   public IClass[] getInterfaces() {
58     return new IClass[0];
59   }
60
61   public IClass[] getInnerClasses() {
62     return new IClass[0];
63   }
64
65   public IClass getClassDefinition(String JavaDoc name) {
66     return null;
67   }
68
69   public IMethod getMethodDefinition(String JavaDoc name,
70                                      ISignature signature) {
71       return new ExternalClass(Object JavaDoc.class).getMethodDefinition(name,
72                                                                  signature);
73   }
74
75   public IVariable getVariableDefinition(String JavaDoc name) {
76     IVariable result = null;
77     
78     if (name.equals("length")) {
79       result = LENGTH_MEMBER;
80     }
81
82     return result;
83   }
84
85   public void addSubclass(ClassDef subclass) {}
86
87   public void addReference(Reference reference) {}
88
89   public Iterator JavaDoc getReferences() {
90     return new Vector JavaDoc().iterator();
91   }
92
93   public int getNumReferences() {
94     return 0;
95   }
96
97   public List JavaDoc getSubclasses() {
98     return new ArrayList JavaDoc();
99   }
100
101   public void addImplementor(ClassDef implementor) {}
102
103   public List JavaDoc getImplementors() {
104     return new ArrayList JavaDoc();
105   }
106
107   public boolean isCompatibleWith(IClass type) {
108     boolean result = false;
109     if (type.equals(new ExternalClass(Object JavaDoc.class))) {
110       result = true;
111     }
112     else if (type instanceof ArrayDef) {
113       result = getType().isCompatibleWith(((ArrayDef)type).getType());
114     }
115
116     return result;
117   }
118
119   public boolean isSourced() {
120     return getType().isSourced();
121   }
122
123   public String JavaDoc getName() {
124     return getType().getName() + "[]";
125   }
126
127   public String JavaDoc getQualifiedName() {
128     return getType().getQualifiedName() + "[]";
129   }
130
131   public boolean isPrimitive() {
132     return false;
133   }
134
135   public boolean equals(Object JavaDoc obj) {
136     boolean result = false;
137
138     if (obj instanceof ArrayDef) {
139       ArrayDef compared = (ArrayDef)obj;
140       result = (getType().equals(compared.getType()));
141     }
142
143     return result;
144   }
145
146   public int hashCode() {
147     return getType().hashCode();
148   }
149
150   public String JavaDoc toString() {
151     return getQualifiedName() + "[]";
152   }
153
154 }
155
Popular Tags