1 2 29 package com.puppycrawl.tools.checkstyle.checks.usage.transmogrify; 30 31 import java.lang.reflect.Constructor ; 32 33 public class ExternalConstructor extends ExternalDefinition implements IMethod { 34 35 private Constructor _javaConstructor; 36 private ISignature _signature; 37 38 public ExternalConstructor(Constructor javaConstructor) { 39 _javaConstructor = javaConstructor; 40 _signature = new ExternalSignature(_javaConstructor.getParameterTypes()); 41 } 42 43 public String getName() { 44 return _javaConstructor.getDeclaringClass().getName(); 45 } 46 47 public IClass getType() { 48 return new ExternalClass(_javaConstructor.getDeclaringClass()); 49 } 50 51 public ISignature getSignature() { 52 return _signature; 53 } 54 55 public boolean hasSameSignature(ISignature signature) { 56 return getSignature().isSame(signature); 57 } 58 59 public boolean hasCompatibleSignature(ISignature signature) { 60 return signature.isCompatibleWith(getSignature()); 61 } 62 63 public String getQualifiedName() { 64 return getName() + getSignature(); 65 } 66 67 public Constructor getJavaConstructor() { 68 return _javaConstructor; 69 } 70 71 public IClass[] getExceptions() { 72 Class [] javaExceptions = getJavaConstructor().getExceptionTypes(); 73 IClass[] result = new IClass[javaExceptions.length]; 74 75 for (int i = 0; i < result.length; i++) { 76 result[i] = new ExternalClass(javaExceptions[i]); 77 } 78 79 return result; 80 } 81 82 public String toString() { 83 return getQualifiedName(); 84 } 85 86 public boolean equals(Object o) { 87 boolean result = false; 88 89 if (o instanceof ExternalConstructor) { 90 ExternalConstructor constructor = (ExternalConstructor)o; 91 result = getJavaConstructor().equals(constructor.getJavaConstructor()); 92 } 93 94 return result; 95 } 96 97 public int hashCode() { 98 return getJavaConstructor().hashCode(); 99 } 100 101 } 102 | Popular Tags |