當前位置: 首頁>>代碼示例>>Java>>正文


Java Types.getDeclaredType方法代碼示例

本文整理匯總了Java中javax.lang.model.util.Types.getDeclaredType方法的典型用法代碼示例。如果您正苦於以下問題:Java Types.getDeclaredType方法的具體用法?Java Types.getDeclaredType怎麽用?Java Types.getDeclaredType使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在javax.lang.model.util.Types的用法示例。


在下文中一共展示了Types.getDeclaredType方法的15個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Java代碼示例。

示例1: fillSubTypes

import javax.lang.model.util.Types; //導入方法依賴的package包/類
private List<DeclaredType> fillSubTypes(CompilationController cc, DeclaredType dType) {
    List<DeclaredType> subtypes = new ArrayList<>();
    //Set<? extends SearchScopeType> scope = Collections.singleton(new ClassSearchScopeType(prefix));
    Types types = cc.getTypes();
    if (prefix != null && prefix.length() > 2 && lastPrefixDot < 0) {
        //Trees trees = cc.getTrees();
        ClassIndex.NameKind kind = ClassIndex.NameKind.CASE_INSENSITIVE_PREFIX;
        for (ElementHandle<TypeElement> handle : cpi.getClassIndex().getDeclaredTypes(prefix, kind, EnumSet.allOf(ClassIndex.SearchScope.class))) {
            TypeElement te = handle.resolve(cc);
            if (te != null && /*trees.isAccessible(scope, te) &&*/ types.isSubtype(types.getDeclaredType(te), dType)) {
                subtypes.add(types.getDeclaredType(te));
            }
        }
    } else {
        HashSet<TypeElement> elems = new HashSet<>();
        LinkedList<DeclaredType> bases = new LinkedList<>();
        bases.add(dType);
        ClassIndex index = cpi.getClassIndex();
        while (!bases.isEmpty()) {
            DeclaredType head = bases.remove();
            TypeElement elem = (TypeElement) head.asElement();
            if (!elems.add(elem)) {
                continue;
            }
            if (accept(elem)) {
                subtypes.add(head);
            }
            //List<? extends TypeMirror> tas = head.getTypeArguments();
            //boolean isRaw = !tas.iterator().hasNext();
            for (ElementHandle<TypeElement> eh : index.getElements(ElementHandle.create(elem), EnumSet.of(ClassIndex.SearchKind.IMPLEMENTORS), EnumSet.allOf(ClassIndex.SearchScope.class))) {
                TypeElement e = eh.resolve(cc);
                if (e != null) {
                    DeclaredType dt = types.getDeclaredType(e);
                    bases.add(dt);
                }
            }
        }
    }
    return subtypes;
}
 
開發者ID:apache,項目名稱:incubator-netbeans,代碼行數:41,代碼來源:ExceptionCompletionProvider.java

示例2: testAddImport3

import javax.lang.model.util.Types; //導入方法依賴的package包/類
public void testAddImport3() throws IOException {
    JavaSource src = getJavaSource(testFile);
    Task<WorkingCopy> task = new Task<WorkingCopy>() {

        public void run(WorkingCopy workingCopy) throws IOException {
            workingCopy.toPhase(Phase.RESOLVED);
            CompilationUnitTree cut = workingCopy.getCompilationUnit();
            TreeMaker make = workingCopy.getTreeMaker();
            ClassTree clazz = (ClassTree) cut.getTypeDecls().get(0);
            MethodTree node = (MethodTree) clazz.getMembers().get(0);
            BlockTree body = node.getBody();
            List<StatementTree> stats = new ArrayList<StatementTree>();
            for (StatementTree st : body.getStatements()) {
                stats.add(st);
            }
            TypeElement list = workingCopy.getElements().getTypeElement("java.util.List");
            TypeElement collection = workingCopy.getElements().getTypeElement("java.util.Collection");
            Types types = workingCopy.getTypes();
            TypeMirror tm = types.getDeclaredType(list, types.erasure(collection.asType()));
            stats.add(make.Variable(make.Modifiers(Collections.<Modifier>emptySet()), "utilList", make.Type(tm), null));
            workingCopy.rewrite(body, make.Block(stats, false));
        }
    };
    src.runModificationTask(task).commit();
    assertFiles("testAddImport3.pass");
}
 
開發者ID:apache,項目名稱:incubator-netbeans,代碼行數:27,代碼來源:ImportAnalysisTest.java

示例3: testAddImport4

import javax.lang.model.util.Types; //導入方法依賴的package包/類
public void testAddImport4() throws IOException {
    JavaSource src = getJavaSource(testFile);
    Task<WorkingCopy> task = new Task<WorkingCopy>() {

        public void run(WorkingCopy workingCopy) throws IOException {
            workingCopy.toPhase(Phase.RESOLVED);
            CompilationUnitTree cut = workingCopy.getCompilationUnit();
            TreeMaker make = workingCopy.getTreeMaker();
            ClassTree clazz = (ClassTree) cut.getTypeDecls().get(0);
            MethodTree node = (MethodTree) clazz.getMembers().get(0);
            BlockTree body = node.getBody();
            List<StatementTree> stats = new ArrayList<StatementTree>();
            for (StatementTree st : body.getStatements()) {
                stats.add(st);
            }
            TypeElement list = workingCopy.getElements().getTypeElement("java.util.List");
            TypeElement collection = workingCopy.getElements().getTypeElement("java.util.Collection");
            Types types = workingCopy.getTypes();
            TypeMirror tm = types.getDeclaredType(list, types.getWildcardType(types.erasure(collection.asType()), null));
            stats.add(make.Variable(make.Modifiers(Collections.<Modifier>emptySet()), "utilList", make.Type(tm), null));
            workingCopy.rewrite(body, make.Block(stats, false));
        }
    };
    src.runModificationTask(task).commit();
    assertFiles("testAddImport4.pass");
}
 
開發者ID:apache,項目名稱:incubator-netbeans,代碼行數:27,代碼來源:ImportAnalysisTest.java

示例4: testAddImport5

import javax.lang.model.util.Types; //導入方法依賴的package包/類
public void testAddImport5() throws IOException {
    JavaSource src = getJavaSource(testFile);
    Task<WorkingCopy> task = new Task<WorkingCopy>() {

        public void run(WorkingCopy workingCopy) throws IOException {
            workingCopy.toPhase(Phase.RESOLVED);
            CompilationUnitTree cut = workingCopy.getCompilationUnit();
            TreeMaker make = workingCopy.getTreeMaker();
            ClassTree clazz = (ClassTree) cut.getTypeDecls().get(0);
            MethodTree node = (MethodTree) clazz.getMembers().get(0);
            BlockTree body = node.getBody();
            List<StatementTree> stats = new ArrayList<StatementTree>();
            for (StatementTree st : body.getStatements()) {
                stats.add(st);
            }
            TypeElement list = workingCopy.getElements().getTypeElement("java.util.List");
            TypeElement collection = workingCopy.getElements().getTypeElement("java.util.Collection");
            Types types = workingCopy.getTypes();
            TypeMirror tm = types.getDeclaredType(list, types.getWildcardType(null, types.erasure(collection.asType())));
            stats.add(make.Variable(make.Modifiers(Collections.<Modifier>emptySet()), "utilList", make.Type(tm), null));
            workingCopy.rewrite(body, make.Block(stats, false));
        }
    };
    src.runModificationTask(task).commit();
    assertFiles("testAddImport5.pass");
}
 
開發者ID:apache,項目名稱:incubator-netbeans,代碼行數:27,代碼來源:ImportAnalysisTest.java

示例5: visitDeclared

import javax.lang.model.util.Types; //導入方法依賴的package包/類
@Override
public TypeMirror visitDeclared(DeclaredType t, Types types) {
    if (TypeModeler.isSubElement((TypeElement) t.asElement(), collectionType)
            || TypeModeler.isSubElement((TypeElement) t.asElement(), mapType)) {
        Collection<? extends TypeMirror> args = t.getTypeArguments();
        TypeMirror[] safeArgs = new TypeMirror[args.size()];
        int i = 0;
        for (TypeMirror arg : args) {
            safeArgs[i++] = visit(arg, types);
        }
        return types.getDeclaredType((TypeElement) t.asElement(), safeArgs);
    }
    return types.erasure(t);
}
 
開發者ID:AdoptOpenJDK,項目名稱:openjdk-jdk10,代碼行數:15,代碼來源:MakeSafeTypeVisitor.java

示例6: getCorrectedReturnType

import javax.lang.model.util.Types; //導入方法依賴的package包/類
private TypeMirror getCorrectedReturnType(Env env, ExecutableType et, ExecutableElement el, TypeMirror site) {
    TypeMirror type = et.getReturnType();
    if (site != null && site.getKind() == TypeKind.DECLARED) {
        if ("getClass".contentEquals(el.getSimpleName()) && et.getParameterTypes().isEmpty() //NOI18N
                && type.getKind() == TypeKind.DECLARED
                && JAVA_LANG_CLASS.contentEquals(((TypeElement) ((DeclaredType) type).asElement()).getQualifiedName())
                && ((TypeElement) ((DeclaredType) type).asElement()).getTypeParameters().size() == 1) {
            Types types = env.getController().getTypes();
            type = types.getDeclaredType((TypeElement) ((DeclaredType) type).asElement(), types.getWildcardType(site, null));
        }
    }
    return type;
}
 
開發者ID:apache,項目名稱:incubator-netbeans,代碼行數:14,代碼來源:JavaCompletionTask.java

示例7: getDeclaredType

import javax.lang.model.util.Types; //導入方法依賴的package包/類
private DeclaredType getDeclaredType(TypeElement e, HashMap<? extends Element, ? extends TypeMirror> map, Types types) {
    List<? extends TypeParameterElement> tpes = e.getTypeParameters();
    TypeMirror[] targs = new TypeMirror[tpes.size()];
    int i = 0;
    for (Iterator<? extends TypeParameterElement> it = tpes.iterator(); it.hasNext();) {
        TypeParameterElement tpe = it.next();
        TypeMirror t = map.get(tpe);
        targs[i++] = t != null ? t : tpe.asType();
    }
    Element encl = e.getEnclosingElement();
    if ((encl.getKind().isClass() || encl.getKind().isInterface()) && !((TypeElement) encl).getTypeParameters().isEmpty()) {
        return types.getDeclaredType(getDeclaredType((TypeElement) encl, map, types), e, targs);
    }
    return types.getDeclaredType(e, targs);
}
 
開發者ID:apache,項目名稱:incubator-netbeans,代碼行數:16,代碼來源:JavaCompletionTask.java

示例8: getDeclaredType

import javax.lang.model.util.Types; //導入方法依賴的package包/類
private DeclaredType getDeclaredType(TypeElement e, HashMap<? extends Element, ? extends TypeMirror> map, Types types) {
    List<? extends TypeParameterElement> tpes = e.getTypeParameters();
    TypeMirror[] targs = new TypeMirror[tpes.size()];
    int i = 0;
    for (Iterator<? extends TypeParameterElement> it = tpes.iterator(); it.hasNext();) {
        TypeParameterElement tpe = it.next();
        TypeMirror t = map.get(tpe);
        targs[i++] = t != null ? t : tpe.asType();
    }
    Element encl = e.getEnclosingElement();
    if ((encl.getKind().isClass() || encl.getKind().isInterface()) && !((TypeElement)encl).getTypeParameters().isEmpty())
            return types.getDeclaredType(getDeclaredType((TypeElement)encl, map, types), e, targs);
    return types.getDeclaredType(e, targs);
}
 
開發者ID:apache,項目名稱:incubator-netbeans,代碼行數:15,代碼來源:JavadocCompletionQuery.java

示例9: isParcelableArrayList

import javax.lang.model.util.Types; //導入方法依賴的package包/類
public static boolean isParcelableArrayList(Types typeUtils, Elements elementUtils, Element element) {
    TypeElement typeArrayList = elementUtils.getTypeElement(ArrayList.class.getName());
    TypeElement typeParcelable = elementUtils.getTypeElement(Parcelable.class.getName());
    WildcardType wildcardType = typeUtils.getWildcardType(typeParcelable.asType(), null);
    DeclaredType declaredType = typeUtils.getDeclaredType(typeArrayList, wildcardType);

    return typeUtils.isSubtype(element.asType(), declaredType);
}
 
開發者ID:srym,項目名稱:vulture,代碼行數:9,代碼來源:TypeUtils.java

示例10: erasure

import javax.lang.model.util.Types; //導入方法依賴的package包/類
public TypeMirror erasure(TypeMirror t) {
    Types tu = env.getTypeUtils();
    t = tu.erasure(t);
    if (t.getKind().equals(TypeKind.DECLARED)) {
        DeclaredType dt = (DeclaredType)t;
        if (!dt.getTypeArguments().isEmpty())
            return tu.getDeclaredType((TypeElement) dt.asElement());
    }
    return t;
}
 
開發者ID:SunburstApps,項目名稱:OpenJSharp,代碼行數:11,代碼來源:ApNavigator.java

示例11: verifyHintMethod

import javax.lang.model.util.Types; //導入方法依賴的package包/類
private boolean verifyHintMethod(ExecutableElement method) {
    StringBuilder error = new StringBuilder();
    Elements elements = processingEnv.getElementUtils();
    TypeElement errDesc = elements.getTypeElement("org.netbeans.spi.editor.hints.ErrorDescription");
    TypeElement jlIterable = elements.getTypeElement("java.lang.Iterable");
    TypeElement hintCtx = elements.getTypeElement("org.netbeans.spi.java.hints.HintContext");

    if (errDesc == null || jlIterable == null || hintCtx == null) {
        return true;
    }

    Types types = processingEnv.getTypeUtils();
    TypeMirror errDescType = errDesc.asType(); //no type params, no need to erasure
    TypeMirror jlIterableErrDesc = types.getDeclaredType(jlIterable, errDescType);
    TypeMirror ret = method.getReturnType();

    if (!types.isSameType(ret, errDescType) && !types.isAssignable(ret, jlIterableErrDesc)) {
        error.append(ERR_RETURN_TYPE);
        error.append("\n");
    }

    if (method.getParameters().size() != 1 || !types.isSameType(method.getParameters().get(0).asType(), hintCtx.asType())) {
        error.append(ERR_PARAMETERS);
        error.append("\n");
    }

    if (!method.getModifiers().contains(Modifier.STATIC)) {
        error.append(ERR_MUST_BE_STATIC);
        error.append("\n");
    }

    if (error.length() == 0) {
        return true;
    }

    if (error.charAt(error.length() - 1) == '\n') {
        error.delete(error.length() - 1, error.length());
    }

    processingEnv.getMessager().printMessage(Kind.ERROR, error.toString(), method);

    return false;
}
 
開發者ID:apache,項目名稱:incubator-netbeans,代碼行數:44,代碼來源:JavaHintsAnnotationProcessor.java

示例12: getCorpusModule

import javax.lang.model.util.Types; //導入方法依賴的package包/類
private static final TypeMirror getCorpusModule(Types typeUtils, Elements elementUtils) {
       TypeElement moduleTypeElement = elementUtils.getTypeElement(Module.class.getCanonicalName());
       TypeElement corpusTypeElement = elementUtils.getTypeElement(Corpus.class.getCanonicalName());
       TypeMirror corpusTypeMirror = corpusTypeElement.asType();
       return typeUtils.getDeclaredType(moduleTypeElement, corpusTypeMirror);
}
 
開發者ID:Bibliome,項目名稱:alvisnlp,代碼行數:7,代碼來源:ModelContext.java

示例13: getModuleBase

import javax.lang.model.util.Types; //導入方法依賴的package包/類
private static final TypeMirror getModuleBase(Types typeUtils, Elements elementUtils) {
    TypeElement moduleBaseTypeElement = elementUtils.getTypeElement(ModuleBase.class.getCanonicalName());
    WildcardType wildcard = typeUtils.getWildcardType(null, null);
    return typeUtils.getDeclaredType(moduleBaseTypeElement, wildcard);
}
 
開發者ID:Bibliome,項目名稱:alvisnlp,代碼行數:6,代碼來源:ModelContext.java

示例14: getElementList

import javax.lang.model.util.Types; //導入方法依賴的package包/類
private static final TypeMirror getElementList(Types typeUtils, Elements elementUtils) {
	TypeElement listTypeElement = getTypeElement(elementUtils, List.class);
	TypeMirror elementTypeMirror = getTypeMirror(elementUtils, fr.inra.maiage.bibliome.alvisnlp.core.corpus.Element.class);
	return typeUtils.getDeclaredType(listTypeElement, elementTypeMirror);
}
 
開發者ID:Bibliome,項目名稱:alvisnlp,代碼行數:6,代碼來源:ModelContext.java

示例15: getElementIterator

import javax.lang.model.util.Types; //導入方法依賴的package包/類
private static final TypeMirror getElementIterator(Types typeUtils, Elements elementUtils) {
	TypeElement listTypeElement = getTypeElement(elementUtils, Iterator.class);
	TypeMirror elementTypeMirror = getTypeMirror(elementUtils, fr.inra.maiage.bibliome.alvisnlp.core.corpus.Element.class);
	return typeUtils.getDeclaredType(listTypeElement, elementTypeMirror);
}
 
開發者ID:Bibliome,項目名稱:alvisnlp,代碼行數:6,代碼來源:ModelContext.java


注:本文中的javax.lang.model.util.Types.getDeclaredType方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。