1 11 12 package org.eclipse.jdt.internal.corext.refactoring.typeconstraints2; 13 14 import org.eclipse.core.runtime.Assert; 15 16 import org.eclipse.jdt.internal.corext.refactoring.typeconstraints.types.TType; 17 18 public abstract class ConstraintVariable2 { 19 20 public static final String TO_STRING= "toString"; 22 private Object [] fDatas; 23 24 private TypeEquivalenceSet fTypeEquivalenceSet; 25 26 protected final TType fType; 27 28 31 protected ConstraintVariable2(TType type) { 32 fType= type; 33 } 34 35 public Object getData(String name) { 36 if (fDatas == null) { 37 return null; 38 } else { 39 for (int i= 0; i < fDatas.length; i+= 2) { 40 String key= (String ) fDatas[i]; 41 if (key.equals(name)) 42 return fDatas[i + 1]; 43 } 44 return null; 45 } 46 } 47 48 public TypeEquivalenceSet getTypeEquivalenceSet() { 49 return fTypeEquivalenceSet; 50 } 51 52 55 public TType getType() { 56 return fType; 57 } 58 59 public ITypeSet getTypeEstimate() { 60 Assert.isNotNull(fTypeEquivalenceSet); 61 return fTypeEquivalenceSet.getTypeEstimate(); 62 } 63 64 public void setData(String name, Object data) { 65 int index= 0; 66 if (fDatas != null) { 67 while (index < fDatas.length) { 68 if (name.equals(fDatas[index])) 69 break; 70 index+= 2; 71 } 72 } 73 if (data != null) { if (fDatas != null) { 75 if (index == fDatas.length) { 76 Object [] newTable= new Object [fDatas.length + 2]; 77 System.arraycopy(fDatas, 0, newTable, 0, fDatas.length); 78 fDatas= newTable; 79 } 80 } else { 81 fDatas= new Object [2]; 82 } 83 fDatas[index]= name; 84 fDatas[index + 1]= data; 85 } else { if (fDatas != null) { 87 if (index != fDatas.length) { 88 int length= fDatas.length - 2; 89 if (length == 0) { 90 fDatas= null; 91 } else { 92 Object [] newTable= new Object [length]; 93 System.arraycopy(fDatas, 0, newTable, 0, index); 94 System.arraycopy(fDatas, index + 2, newTable, index, length - index); 95 fDatas= newTable; 96 } 97 } 98 } 99 } 100 } 101 102 public void setTypeEquivalenceSet(TypeEquivalenceSet set) { 103 fTypeEquivalenceSet= set; 104 } 105 106 public String toString() { 107 String toString= (String ) getData(TO_STRING); 108 if (toString != null) 109 return toString; 110 111 String name= getClass().getName(); 112 int dot= name.lastIndexOf('.'); 113 return name.substring(dot + 1) + ": " + fType != null ? fType.getPrettySignature() : "<NONE>"; } 115 } 116 | Popular Tags |