@Override protected ResolvedReferenceType create(ResolvedReferenceTypeDeclaration typeDeclaration, List<ResolvedType> typeParametersCorrected) { return new ReferenceTypeImpl(typeDeclaration, typeParametersCorrected, typeSolver); }
@Override protected ResolvedReferenceType create(ResolvedReferenceTypeDeclaration typeDeclaration, List<ResolvedType> typeParametersCorrected) { return new ReferenceTypeImpl(typeDeclaration, typeParametersCorrected, typeSolver); }
@Override protected ResolvedReferenceType object() { return new ReferenceTypeImpl(typeSolver.solveType(Object.class.getCanonicalName()), typeSolver); }
public TypeInference(TypeSolver typeSolver) { if (typeSolver == null) { throw new NullPointerException(); } this.typeSolver = typeSolver; this.object = new ReferenceTypeImpl(typeSolver.solveType(Object.class.getCanonicalName()), typeSolver); }
@Override protected ResolvedReferenceType object() { return new ReferenceTypeImpl(typeSolver.solveType(Object.class.getCanonicalName()), typeSolver); }
@Override public ResolvedType toRawType() { if (this.isRawType()) { return this; } else { return new ReferenceTypeImpl(typeDeclaration, typeSolver); } }
@Override public List<ResolvedReferenceType> getInterfacesExtended() { List<ResolvedReferenceType> res = new ArrayList<>(); for (Class i : clazz.getInterfaces()) { res.add(new ReferenceTypeImpl(new ReflectionInterfaceDeclaration(i, typeSolver), typeSolver)); } return res; }
@Override public List<ResolvedReferenceType> getInterfacesExtended() { List<ResolvedReferenceType> res = new ArrayList<>(); for (Class i : clazz.getInterfaces()) { res.add(new ReferenceTypeImpl(new ReflectionInterfaceDeclaration(i, typeSolver), typeSolver)); } return res; }
public static ResolvedReferenceType undeterminedParameters(ResolvedReferenceTypeDeclaration typeDeclaration, TypeSolver typeSolver) { return new ReferenceTypeImpl(typeDeclaration, typeDeclaration.getTypeParameters().stream().map( tp -> new ResolvedTypeVariable(tp) ).collect(Collectors.toList()), typeSolver); }
public ResolvedType classToResolvedType(Class<?> clazz) { if (clazz.isPrimitive()) { return ResolvedPrimitiveType.byName(clazz.getName()); } return new ReferenceTypeImpl(new ReflectionClassDeclaration(String.class, typeSolver), typeSolver); } }
public ResolvedType classToResolvedType(Class<?> clazz) { if (clazz.isPrimitive()) { return ResolvedPrimitiveType.byName(clazz.getName()); } return new ReferenceTypeImpl(new ReflectionClassDeclaration(String.class, typeSolver), typeSolver); } }
public ResolvedType classToResolvedType(Class<?> clazz) { if (clazz.isPrimitive()) { return ResolvedPrimitiveType.byName(clazz.getName()); } return new ReferenceTypeImpl(new ReflectionClassDeclaration(clazz, typeSolver), typeSolver); } }
@Override public List<ResolvedReferenceType> getInterfacesExtended() { List<ResolvedReferenceType> interfaces = new ArrayList<>(); for (ClassOrInterfaceType t : wrappedNode.getExtendedTypes()) { interfaces.add(new ReferenceTypeImpl( solveType(t.getName().getId()).getCorrespondingDeclaration().asInterface(), typeSolver)); } return interfaces; }
private static ResolvedType objectTypeArgumentToType(SignatureAttribute.ObjectType typeArgument, TypeSolver typeSolver, ResolvedTypeParametrizable typeParametrizable) { String typeName = typeArgument.jvmTypeName(); Optional<ResolvedType> type = getGenericParameterByName(typeName, typeParametrizable); return type.orElseGet(() -> new ReferenceTypeImpl( typeSolver.solveType(removeTypeArguments(internalNameToCanonicalName(typeName))), typeSolver)); }
@Override public List<ResolvedReferenceType> getInterfacesExtended() { List<ResolvedReferenceType> interfaces = new ArrayList<>(); if (wrappedNode.getImplementedTypes() != null) { for (ClassOrInterfaceType t : wrappedNode.getImplementedTypes()) { interfaces.add(new ReferenceTypeImpl(solveType(t.getName().getId(), typeSolver).getCorrespondingDeclaration().asInterface(), typeSolver)); } } return interfaces; }
@Override public List<ResolvedReferenceType> getInterfacesExtended() { List<ResolvedReferenceType> interfaces = new ArrayList<>(); if (wrappedNode.getImplementedTypes() != null) { for (ClassOrInterfaceType t : wrappedNode.getImplementedTypes()) { interfaces.add(new ReferenceTypeImpl(solveType(t.getName().getId(), typeSolver).getCorrespondingDeclaration().asInterface(), typeSolver)); } } return interfaces; }
@Before public void setup() { typeSolver = new ReflectionTypeSolver(); OBJECT = new ReferenceTypeImpl(new ReflectionClassDeclaration(Object.class, typeSolver), typeSolver); STRING = new ReferenceTypeImpl(new ReflectionClassDeclaration(String.class, typeSolver), typeSolver); arrayOfBooleans = new ResolvedArrayType(ResolvedPrimitiveType.BOOLEAN); arrayOfListOfA = new ResolvedArrayType(new ReferenceTypeImpl( new ReflectionInterfaceDeclaration(List.class, typeSolver), ImmutableList.of(new ResolvedTypeVariable(ResolvedTypeParameterDeclaration.onType("A", "foo.Bar", Collections.emptyList()))), typeSolver)); }
@Before public void setup() { typeSolver = new ReflectionTypeSolver(); string = new ReferenceTypeImpl(new ReflectionClassDeclaration(String.class, typeSolver), typeSolver); object = new ReferenceTypeImpl(new ReflectionClassDeclaration(Object.class, typeSolver), typeSolver); listOfString = listOf(string); tpE = EasyMock.createMock(ResolvedTypeParameterDeclaration.class); EasyMock.expect(tpE.getName()).andReturn("T").anyTimes(); EasyMock.replay(tpE); listOfE = listOf(new ResolvedTypeVariable(tpE)); }
@Before public void setup() { tpA = new ResolvedTypeVariable(ResolvedTypeParameterDeclaration.onType("A", "foo.Bar", Collections.emptyList())); typeSolver = new ReflectionTypeSolver(); tpString = new ReferenceTypeImpl(new ReflectionClassDeclaration(String.class, typeSolver), typeSolver); }
@Test public void solveMethodAsUsageWithMoreSpecializedParameter() throws ParseException { CompilationUnit cu = parseSample("ClassWithMethods"); ClassOrInterfaceDeclaration classOrInterfaceDeclaration = Navigator.demandClass(cu, "A"); Context context = new ClassOrInterfaceDeclarationContext(classOrInterfaceDeclaration, typeSolver); ResolvedType stringType = new ReferenceTypeImpl(new ReflectionClassDeclaration(String.class, typeSolver), typeSolver); Optional<MethodUsage> ref = context.solveMethodAsUsage("foo4", ImmutableList.of(stringType), new ReflectionTypeSolver()); assertEquals(true, ref.isPresent()); assertEquals("A", ref.get().declaringType().getName()); assertEquals(1, ref.get().getNoParams()); }