@Test public void printTest() { assertEquals("double", teDouble.print()); assertEquals("int", teInt.print()); assertEquals("A", teVarA.print()); assertEquals("de.x.Person", teP.print()); assertEquals("void", teVoid.print()); assertEquals("nullType", teNull.print()); assertEquals("Human[]", teArr1.print()); assertEquals("int[][][]", teArr3.print()); assertEquals("java.util.Set<de.x.Person>", teSet.print()); assertEquals("java.util.Set<A>", teSetA.print()); assertEquals("Map<int,de.x.Person>", teMap.print()); assertEquals("x.Foo<de.x.Person,double,int,Human>", teFoo.print()); assertEquals("java.util.Set<Map<int,de.x.Person>>", teDeep1.print()); assertEquals("java.util.Map2<int,java.util.Set<Map<int,de.x.Person>>>", teDeep2.print()); assertEquals("? super int", teUpperBound.print()); assertEquals("? extends Human", teLowerBound.print()); assertEquals("?",teWildcard.print()); assertEquals("java.util.Map<? super int,?>", teMap3.print()); }
public abstract String print();
SymTypeExpression { public abstract String print(); }
SymTypeExpression { public abstract String print();  }
SymTypeExpression { public abstract String print();  abstract String print(); boolean isTypeConstant(); boolean isGenericType(); boolean isTypeVariable(); boolean isArrayType(); boolean isVoidType(); boolean isNullType(); boolean isObjectType(); abstract SymTypeExpression deepClone(); abstract boolean deepEquals(SymTypeExpression sym); List<FunctionSymbol> getMethodList(String methodname); List<FunctionSymbol> getMethodList(String methodName, boolean outerIsType); List<VariableSymbol> getFieldList(String fieldName); List<VariableSymbol> getFieldList(String fieldName, boolean outerIsType); TypeSymbol getTypeInfo(); List<TypeSymbol> getInnerTypeList(String name); }
SymTypeExpression { public abstract String print();  abstract String print(); boolean isTypeConstant(); boolean isGenericType(); boolean isTypeVariable(); boolean isArrayType(); boolean isVoidType(); boolean isNullType(); boolean isObjectType(); abstract SymTypeExpression deepClone(); abstract boolean deepEquals(SymTypeExpression sym); List<FunctionSymbol> getMethodList(String methodname); List<FunctionSymbol> getMethodList(String methodName, boolean outerIsType); List<VariableSymbol> getFieldList(String fieldName); List<VariableSymbol> getFieldList(String fieldName, boolean outerIsType); TypeSymbol getTypeInfo(); List<TypeSymbol> getInnerTypeList(String name);  }