Home | History | Annotate | Download | only in reflectionmodel
      1 package com.github.javaparser.symbolsolver.reflectionmodel;
      2 
      3 import com.github.javaparser.resolution.declarations.ResolvedReferenceTypeDeclaration;
      4 import com.github.javaparser.resolution.types.ResolvedReferenceType;
      5 import com.github.javaparser.symbolsolver.logic.ObjectProvider;
      6 import com.github.javaparser.symbolsolver.model.resolution.TypeSolver;
      7 import com.github.javaparser.symbolsolver.model.typesystem.ReferenceTypeImpl;
      8 import com.github.javaparser.symbolsolver.resolution.typesolvers.ReflectionTypeSolver;
      9 
     10 /**
     11  * @author Federico Tomassetti
     12  */
     13 public class MyObjectProvider implements ObjectProvider {
     14 
     15     public static final MyObjectProvider INSTANCE = new MyObjectProvider();
     16 
     17     private MyObjectProvider() {
     18         // prevent instantiation
     19     }
     20 
     21     @Override
     22     public ResolvedReferenceType object() {
     23         return new ReferenceTypeImpl(new ReflectionClassDeclaration(Object.class, new ReflectionTypeSolver()), new ReflectionTypeSolver());
     24     }
     25 
     26     @Override
     27     public ResolvedReferenceType byName(String qualifiedName) {
     28         TypeSolver typeSolver = new ReflectionTypeSolver();
     29         ResolvedReferenceTypeDeclaration typeDeclaration = typeSolver.solveType(qualifiedName);
     30         if (!typeDeclaration.getTypeParameters().isEmpty()) {
     31             throw new UnsupportedOperationException();
     32         }
     33         return new ReferenceTypeImpl(typeDeclaration, typeSolver);
     34     }
     35 
     36 }
     37