1 2 29 package com.puppycrawl.tools.checkstyle.checks.usage.transmogrify; 30 31 32 33 import java.util.ArrayList ; 34 import java.util.Iterator ; 35 import java.util.List ; 36 import java.util.Vector ; 37 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 name) { 66 return null; 67 } 68 69 public IMethod getMethodDefinition(String name, 70 ISignature signature) { 71 return new ExternalClass(Object .class).getMethodDefinition(name, 72 signature); 73 } 74 75 public IVariable getVariableDefinition(String 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 getReferences() { 90 return new Vector ().iterator(); 91 } 92 93 public int getNumReferences() { 94 return 0; 95 } 96 97 public List getSubclasses() { 98 return new ArrayList (); 99 } 100 101 public void addImplementor(ClassDef implementor) {} 102 103 public List getImplementors() { 104 return new ArrayList (); 105 } 106 107 public boolean isCompatibleWith(IClass type) { 108 boolean result = false; 109 if (type.equals(new ExternalClass(Object .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 getName() { 124 return getType().getName() + "[]"; 125 } 126 127 public String getQualifiedName() { 128 return getType().getQualifiedName() + "[]"; 129 } 130 131 public boolean isPrimitive() { 132 return false; 133 } 134 135 public boolean equals(Object 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 toString() { 151 return getQualifiedName() + "[]"; 152 } 153 154 } 155 | Popular Tags |