public void run(CompilationController cc) throws IOException { cc.toPhase(Phase.RESOLVED); Element element = oldHandle.resolveElement(cc); if (element == null || element.getKind() != ElementKind.CLASS) { return; } String oldBinaryName = ElementUtilities.getBinaryName((TypeElement)element); String oldSimpleName = element.getSimpleName().toString(); String newBinaryName = null; element = element.getEnclosingElement(); if (element.getKind() == ElementKind.CLASS) { newBinaryName = ElementUtilities.getBinaryName((TypeElement)element) + '$' + newName; } else if (element.getKind() == ElementKind.PACKAGE) { String packageName = ((PackageElement)element).getQualifiedName().toString(); newBinaryName = createQualifiedName(packageName, newName); } else { LOGGER.log(Level.WARNING, "Enclosing element of {0} was neither class nor package", oldHandle); } result[0] = new RenamedClassName(oldSimpleName, oldBinaryName, newBinaryName); } }, true);
@Override protected void setContextElement( Element context, CompilationController controller ) { if ( context instanceof ExecutableElement ){ ExecutableElement method = (ExecutableElement) context; getShortElementName().append( context.getSimpleName().toString()); appendMethodParams(getShortElementName(), method); TypeElement enclosingType = controller.getElementUtilities(). enclosingTypeElement( context ); String typeFqn = enclosingType.getQualifiedName().toString(); getFqnElementName().append( typeFqn ); getFqnElementName().append('.'); getFqnElementName().append( context.getSimpleName().toString() ); appendMethodParams(getFqnElementName(), method); } else if ( context instanceof TypeElement ){ TypeElement type = (TypeElement) context; getShortElementName().append( type.getSimpleName().toString() ); getFqnElementName().append( type.getQualifiedName().toString() ); } }
public boolean isAccessible(Scope scope, Element member, TypeMirror type, boolean selectSuper) { if (!checkAccessibility) { return true; } if (type.getKind() != TypeKind.DECLARED) { return member.getModifiers().contains(PUBLIC); } if (getController().getTrees().isAccessible(scope, member, (DeclaredType) type)) { return true; } return selectSuper && member.getModifiers().contains(PROTECTED) && !member.getModifiers().contains(STATIC) && !member.getKind().isClass() && !member.getKind().isInterface() && getController().getTrees().isAccessible(scope, (TypeElement) ((DeclaredType) type).asElement()) && (member.getKind() != METHOD || getController().getElementUtilities().getImplementationOf((ExecutableElement) member, (TypeElement) ((DeclaredType) type).asElement()) == member); }
ExecutableElement overridenMethod = compInfo.getElementUtilities(). getOverriddenMethod( element ); if ( overridenMethod == null ){ return; TypeElement superClass = compInfo.getElementUtilities(). enclosingTypeElement( overridenMethod ); TypeElement containingClass = compInfo.getElementUtilities(). enclosingTypeElement( element ); TypeMirror typeDirectSuper = containingClass.getSuperclass(); if ( !superClass.equals(compInfo.getTypes().asElement(typeDirectSuper)) || !AnnotationUtil.hasAnnotation(overridenMethod,
int j = 0; for (Tree t : argTypes) { types[j++] = controller.getTrees().getTypeMirror(new TreePath(path, t)); methods = getMatchingExecutables(type, controller.getElementUtilities().getMembers(type, acceptor), ((MemberSelectTree) mid).getIdentifier().toString(), types, controller.getTypes()); break; name = ((IdentifierTree) mid).getName().toString(); if (SUPER_KEYWORD.equals(name) && enclClass != null) { TypeMirror superclass = enclClass.getSuperclass(); methods = getMatchingExecutables(superclass, controller.getElementUtilities().getMembers(superclass, acceptor), INIT, types, controller.getTypes()); } else if (THIS_KEYWORD.equals(name) && enclClass != null) { TypeMirror thisclass = enclClass.asType(); methods = getMatchingExecutables(thisclass, controller.getElementUtilities().getMembers(thisclass, acceptor), INIT, types, controller.getTypes()); } else { methods = getMatchingExecutables(enclClass != null ? enclClass.asType() : null, controller.getElementUtilities().getLocalMembersAndVars(scope, acceptor), name, types, controller.getTypes()); name = null; Elements elements = controller.getElements(); for (Pair<ExecutableElement, ExecutableType> method : methods) { if (Utilities.isShowDeprecatedMembers() || !elements.isDeprecated(method.first())) { results.add(itemFactory.createParametersItem(env.getController(), method.first(), method.second(), anchorOffset, elements.isDeprecated(method.first()), types.length, name));
for (TypeMirror st : smartTypes) { if (st.getKind().isPrimitive()) { st = types.boxedClass((PrimitiveType) st).asType(); if (JAVA_LANG_CLASS.contentEquals(element.getQualifiedName())) { addTypeDotClassMembers(env, type); } else if (controller.getSourceVersion().compareTo(SourceVersion.RELEASE_8) >= 0 && elements.isFunctionalInterface(element) && itemFactory instanceof LambdaItemFactory) { results.add(((LambdaItemFactory<T>)itemFactory).createLambdaItem(env.getController(), element, type, anchorOffset, env.addSemicolon())); final boolean startsWith = startsWith(env, element.getSimpleName().toString()); final boolean withinScope = withinScope(env, element); if (withinScope && scope.getEnclosingClass() == element) { continue; final boolean isStatic = element.getKind().isClass() || element.getKind().isInterface(); final Set<? extends TypeMirror> finalSmartTypes = smartTypes; ElementUtilities.ElementAcceptor acceptor = new ElementUtilities.ElementAcceptor() { for (Element ee : controller.getElementUtilities().getMembers(type, acceptor)) { if (Utilities.isShowDeprecatedMembers() || !elements.isDeprecated(ee)) { results.add(itemFactory.createStaticMemberItem(env.getController(), type, ee, asMemberOf(ee, type, types), false, anchorOffset, elements.isDeprecated(ee), env.addSemicolon())); switch (e.getKind()) { case ENUM_CONSTANT: case EXCEPTION_PARAMETER:
st = types.boxedClass((PrimitiveType) st).asType(); if (element.getKind() == ANNOTATION_TYPE && (Utilities.isShowDeprecatedMembers() || !elements.isDeprecated(element))) { results.add(itemFactory.createAnnotationItem(env.getController(), element, (DeclaredType) type, anchorOffset, env.getReferencesCount(), elements.isDeprecated(element))); if (JAVA_LANG_CLASS.contentEquals(element.getQualifiedName())) { addTypeDotClassMembers(env, type); if (startsWith(env, element.getSimpleName().toString(), prefix)) { final boolean isStatic = element.getKind().isClass() || element.getKind().isInterface(); ElementUtilities.ElementAcceptor acceptor = new ElementUtilities.ElementAcceptor() { @Override for (Element ee : controller.getElementUtilities().getMembers(type, acceptor)) { if (Utilities.isShowDeprecatedMembers() || !elements.isDeprecated(ee)) { results.add(itemFactory.createStaticMemberItem(env.getController(), type, ee, asMemberOf(ee, type, types), false, anchorOffset, elements.isDeprecated(ee), false)); if (env.getPath().getLeaf().getKind() != Tree.Kind.CASE) { if (Utilities.startsWith(FALSE_KEYWORD, prefix)) { results.add(itemFactory.createKeywordItem(FALSE_KEYWORD, null, anchorOffset, smartType)); case ENUM_CONSTANT: if (((VariableElement) e).getConstantValue() != null) { results.add(itemFactory.createVariableItem(env.getController(), (VariableElement) e, e.asType(), anchorOffset, null, env.getScope().getEnclosingClass() != e.getEnclosingElement(), elements.isDeprecated(e), isOfSmartType(env, e.asType(), smartTypes), env.assignToVarPos()));
return; DeclaredType clsType = (DeclaredType) te.asType(); if (te.getKind().isClass() || te.getKind().isInterface() && SourceVersion.RELEASE_8.compareTo(controller.getSourceVersion()) <= 0) { for (ExecutableElement ee : eu.findUnimplementedMethods(te)) { if (startsWith(env, ee.getSimpleName().toString())) { TypeMirror tm = asMemberOf(ee, clsType, types); if (te.getKind().isClass() || te.getKind().isInterface()) { for (ExecutableElement ee : eu.findOverridableMethods(te)) { if (startsWith(env, ee.getSimpleName().toString())) { TypeMirror tm = asMemberOf(ee, clsType, types); String setterName = CodeStyleUtils.computeSetterName(name, isStatic, codeStyle); String getterName = CodeStyleUtils.computeGetterName(name, variableElement.asType().getKind() == TypeKind.BOOLEAN, isStatic, codeStyle); if ((prefix == null || startsWith(env, getterName)) && !eu.hasGetter(te, variableElement, codeStyle)) { results.add(itemFactory.createGetterSetterMethodItem(env.getController(), variableElement, asMemberOf(variableElement, clsType, types), anchorOffset, getterName, false)); if ((prefix == null || startsWith(env, setterName)) && !(variableElement.getModifiers().contains(Modifier.FINAL) || eu.hasSetter(te, variableElement, codeStyle))) { results.add(itemFactory.createGetterSetterMethodItem(env.getController(), variableElement, asMemberOf(variableElement, clsType, types), anchorOffset, setterName, true)); if (!eu.isSynthetic(ee)) { List<? extends VariableElement> parameters = ee.getParameters(); if (parameters.isEmpty()) { results.add(itemFactory.createInitializeAllConstructorItem(env.getController(), true, uninitializedFinalFields, dctor2generate.getKind() == CONSTRUCTOR ? (ExecutableElement) dctor2generate : null, te, anchorOffset));
Tree tree = currentPath.getLeaf(); TypeElement te; if (TreeUtilities.CLASS_TREE_KINDS.contains(tree.getKind())) { te = (TypeElement) ci.getTrees().getElement(currentPath); } else { Scope scope = ci.getTreeUtilities().scopeFor(currentOffset); currentElementPtr[0] = ElementUtilities.getBinaryName(te); el = scope.getEnclosingMethod(); if (el != null) { currentElementPtr[0] = el.getSimpleName().toString(); if (currentElementPtr[0].equals("<init>")) { currentElementPtr[0] = el.getEnclosingElement().getSimpleName().toString(); Tree tree = path != null ? path.getLeaf() : null; String name = ((MethodTree)tree).getName().toString(); if (name.equals("<init>") && scope.getEnclosingClass() != null) { name = scope.getEnclosingClass().getSimpleName().toString(); if (elm.getKind().equals(ElementKind.FIELD) && elm.getSimpleName().contentEquals(fieldName)) { currentElementPtr[0] = fieldName; break;
if (e.getSimpleName().contentEquals(THIS_KEYWORD) || e.getSimpleName().contentEquals(SUPER_KEYWORD)) { TypeElement cls = enclClass; while (cls != null) { return isOfKindAndType(asMemberOf(e, t, types), e, kinds, baseType, scope, trees, types); TypeElement outer = eu.enclosingTypeElement(cls); cls = !cls.getModifiers().contains(STATIC) ? outer : null; if ((Utilities.isShowDeprecatedMembers() || !elements.isDeprecated(e)) && isOfKindAndType(asMemberOf(e, t, types), e, kinds, baseType, scope, trees, types) && env.isAccessible(scope, e, t, isSuperCall) && isOfKindAndType(((ExecutableType) asMemberOf(e, t, types)).getReturnType(), e, kinds, baseType, scope, trees, types) && env.isAccessible(scope, e, t, isSuperCall) && (!Utilities.isExcludeMethods() || !Utilities.isExcluded(eu.getElementName(e.getEnclosingElement(), true) + "." + sn))) { //NOI18N hasAdditionalMembers = true; && isOfKindAndType(((ExecutableType) asMemberOf(e, t, types)).getReturnType(), e, kinds, baseType, scope, trees, types) && env.isAccessible(scope, e, t, isSuperCall) && (!Utilities.isExcludeMethods() || !Utilities.isExcluded(eu.getElementName(e.getEnclosingElement(), true) + "." + sn)); //NOI18N case CLASS: case ENUM: && !Utilities.isExcluded(((TypeElement)e).getQualifiedName())
continue; int staticTreshold = cs.countForUsingStaticStarImport(); Map<PackageElement, Integer> pkgCounts = new LinkedHashMap<PackageElement, Integer>(); PackageElement pkg = elements.getPackageElement("java.lang"); //NOI18N if (pkg != null) { pkgCounts.put(pkg, -2); pkg = packageName != null ? (PackageElement)trees.getElement(TreePath.getPath(cut, packageName)) : null; if (pkg == null && packageName != null) { pkg = elements.getPackageElement(elements.getName(packageName.toString())); typeCounts.put((TypeElement)el, -2); TypeMirror tm = ((TypeElement)el).getSuperclass(); el = tm.getKind() == TypeKind.DECLARED ? ((DeclaredType)tm).asElement() : null; Element el = elementUtilities.enclosingTypeElement(e); if (el != null) { Integer cnt = typeCounts.get((TypeElement)el); Element el = e.getKind() == ElementKind.PACKAGE ? e : (e.getKind().isClass() || e.getKind().isInterface()) && e.getEnclosingElement().getKind() == ElementKind.PACKAGE ? e.getEnclosingElement() : null; if (el != null) { Integer cnt = pkgCounts.get((PackageElement)el); Element impElement = getImportedElement(cut, imp); el = imp.isStatic() ? impElement.getKind().isClass() || impElement.getKind().isInterface() ? impElement : elementUtilities.enclosingTypeElement(impElement)
return fqn; for(Element e : eu.getLocalMembersAndVars(scope, acceptor)) { if (simple.contentEquals(e.getSimpleName())) { if (qName.contentEquals(((TypeElement)e).getQualifiedName())) { return sqName.toString(); } else { for(TypeElement e : eu.getGlobalTypes(acceptor)) { if (simple.contentEquals(e.getSimpleName())) { if (qName.contentEquals(e.getQualifiedName())) { return sqName.toString(); } else { break; } else if ((element = info.getElements().getPackageElement(qName)) != null) { if (toImport == null || GeneratorUtilities.checkPackagesForStarImport(qName, cs)) { toImport = element; if (toImport.getKind() == ElementKind.PACKAGE) { StarImportScope importScope = new StarImportScope(unit.packge); importScope.prependSubScope(unit.starImportScope);
if (element.getKind().isInterface()) { if (e.getModifiers().contains(Modifier.STATIC)) { continue; } else if (!e.getModifiers().contains(Modifier.ABSTRACT)) { continue; ExecutableElement eeImpl = (ExecutableElement)getImplementationOf(ee, impl); for (TypeMirror t : types.directSupertypes(element.asType())) { for (ExecutableElement ee : findUnimplementedMethods(impl, (TypeElement) ((DeclaredType) t).asElement(), includeDefaults)) { } else if (existingReturnType.getKind() == TypeKind.DECLARED && eeReturnType.getKind() == TypeKind.DECLARED) { Env<AttrContext> env = Enter.instance(ctx).getClassEnv((TypeSymbol)impl); DeclaredType subType = env != null ? findCommonSubtype((DeclaredType)existingReturnType, (DeclaredType)eeReturnType, env) : null; if (subType != null) { undef.remove(existing); if (existing.getEnclosingElement().getKind().isClass()) { exists = true; } else if (element.getKind().isClass()) {
final TreePath path = env.getPath(); TypeMirror actualType = type; if (path != null && path.getLeaf().getKind() == Tree.Kind.MEMBER_SELECT) { actualType = adjustType(env, type, elem, new TreePath(path, ((MemberSelectTree)path.getLeaf()).getExpression())); final TreeUtilities tu = controller.getTreeUtilities(); TypeElement typeElem = actualType.getKind() == TypeKind.DECLARED ? (TypeElement) ((DeclaredType) actualType).asElement() : null; final boolean isStatic = elem != null && (elem.getKind().isClass() || elem.getKind().isInterface() || elem.getKind() == TYPE_PARAMETER) && elem.asType().getKind() != TypeKind.ERROR; final boolean isThisCall = elem != null && elem.getKind().isField() && elem.getSimpleName().contentEquals(THIS_KEYWORD); for (Element e : controller.getElementUtilities().getMembers(actualType, acceptor)) { TypeMirror tm = asMemberOf(e, actualType, types); if (addCast && itemFactory instanceof TypeCastableItemFactory) { results.add(((TypeCastableItemFactory<T>)itemFactory).createTypeCastableVariableItem(env.getController(), (VariableElement) e, tm, actualType, anchorOffset, autoImport ? env.getReferencesCount() : null, typeElem != e.getEnclosingElement(), elements.isDeprecated(e), isOfSmartType(env, tm, smartTypes), env.assignToVarPos())); } else { results.add(itemFactory.createVariableItem(env.getController(), (VariableElement) e, tm, anchorOffset, autoImport ? env.getReferencesCount() : null, typeElem != e.getEnclosingElement(), elements.isDeprecated(e), isOfSmartType(env, tm, smartTypes), env.assignToVarPos())); && type.getKind() == TypeKind.DECLARED && !eu.alreadyDefinedIn(e.getSimpleName(), et, (TypeElement)((DeclaredType)type).asElement())) { for (TypeMirror iface : enclClass.getInterfaces()) { if (((DeclaredType) iface).asElement() == elem) { results.add(itemFactory.createKeywordItem(SUPER_KEYWORD, null, anchorOffset, isOfSmartType(env, actualType, smartTypes)));
SourcePositions positions = controller.getTrees().getSourcePositions(); TreePath mainPath = treeUtilities.pathFor(offset); CompilationUnitTree unitTree = controller.getCompilationUnit(); return; Tree tree = mainPath.getLeaf(); Tree.Kind kind = tree.getKind(); tree = path.getLeaf(); kind = tree.getKind(); if (kind == Tree.Kind.IMPORT) { TypeElement typeElement = (TypeElement)controller.getTrees().getElement(path); className[0] = ElementUtilities.getBinaryName(typeElement); path = path.getParentPath(); javax.lang.model.element.Element element = controller.getTrees().getElement(mainPath); if (element != null) { ElementKind ek = element.getKind(); if (ElementKind.FIELD.equals(ek)) { String name = element.getSimpleName().toString(); if (name.equals(expr)) { javax.lang.model.element.Element typeElement = element.getEnclosingElement(); String binaryClassName = ElementUtilities.getBinaryName((TypeElement) typeElement); fieldOfPtr[0] = binaryClassName;
final Trees trees = controller.getTrees(); TypeElement typeElem = type.getKind() == TypeKind.DECLARED ? (TypeElement) ((DeclaredType) type).asElement() : null; final boolean isStatic = elem != null && (elem.getKind().isClass() || elem.getKind().isInterface() || elem.getKind() == TYPE_PARAMETER); final boolean isSuperCall = elem != null && elem.getKind().isField() && elem.getSimpleName().contentEquals(SUPER_KEYWORD); final Scope scope = env.getScope(); TypeElement enclClass = scope.getEnclosingClass(); final TypeMirror enclType = enclClass != null ? enclClass.asType() : null; ElementUtilities.ElementAcceptor acceptor = new ElementUtilities.ElementAcceptor() { @Override for (Element e : controller.getElementUtilities().getMembers(type, acceptor)) { switch (e.getKind()) { case FIELD: } else { TypeMirror tm = asMemberOf(e, type, types); results.add(itemFactory.createVariableItem(env.getController(), (VariableElement) e, tm, anchorOffset, null, typeElem != e.getEnclosingElement(), elements.isDeprecated(e), isOfSmartType(env, tm, smartTypes), env.assignToVarPos())); case INTERFACE: DeclaredType dt = (DeclaredType) asMemberOf(e, type, types); results.add(itemFactory.createTypeItem(env.getController(), (TypeElement) e, dt, anchorOffset, null, elements.isDeprecated(e), false, env.isInsideClass(), true, false, false)); break;
final Types types = controller.getTypes(); Iterator<? extends TypeMirror> it = type.getTypeArguments().iterator(); TypeMirror tm = it.hasNext() ? it.next() : elements.getTypeElement(JAVA_LANG_OBJECT).asType(); Iterable<DeclaredType> dts = null; if (tm.getKind() == TypeKind.WILDCARD) { if (bound != null) { if (bound.getKind() == TypeKind.DECLARED) { if (JAVA_LANG_OBJECT.contentEquals(((TypeElement) ((DeclaredType) bound).asElement()).getQualifiedName())) { dts = Collections.singleton((DeclaredType) elements.getTypeElement(JAVA_LANG_OBJECT).asType()); } else { dts = getSubtypesOf(env, (DeclaredType) bound); dts = Collections.singleton((DeclaredType) elements.getTypeElement(JAVA_LANG_OBJECT).asType()); if (startsWith(env, dt.asElement().getSimpleName().toString())) { for (Element ee : controller.getElementUtilities().getMembers(dt, acceptor)) { results.add(itemFactory.createStaticMemberItem(env.getController(), dt, ee, asMemberOf(ee, dt, types), false, anchorOffset, elements.isDeprecated(ee), env.addSemicolon()));
TypeMirror localElementType = null; TypeMirror type = null; switch (localElement.getKind()) { case EXCEPTION_PARAMETER: case LOCAL_VARIABLE: case PARAMETER: case ENUM_CONSTANT: type = localElementType = localElement.asType(); break; case FIELD: String name = localElement.getSimpleName().toString(); if (!THIS_KEYWORD.equals(name) && !SUPER_KEYWORD.equals(name)) { type = localElementType = asMemberOf(localElement, enclClass != null ? enclClass.asType() : null, types); localElementType = asMemberOf(localElement, enclClass != null ? enclClass.asType() : null, types); type = ((ExecutableType) localElementType).getReturnType(); break; for (Element e : eu.getMembers(type, acceptor)) { if (Utilities.isShowDeprecatedMembers() || !elements.isDeprecated(e)) { List<Element> chainedElements = new ArrayList<>(2); chainedElements.add(localElement); chainedTypes.add(localElementType); chainedTypes.add(asMemberOf(e, type, types)); results.add(itemFactory.createChainedMembersItem(env.getController(), chainedElements, chainedTypes, anchorOffset, elements.isDeprecated(localElement) || elements.isDeprecated(e), env.addSemicolon()));
Tree tree = ci.getTreeUtilities().pathFor(offset).getLeaf(); if (tree.getKind() == Tree.Kind.METHOD) { Element el = ci.getTrees().getElement(ci.getTrees().getPath(ci.getCompilationUnit(), tree)); if (el != null && (el.getKind() == ElementKind.METHOD || el.getKind() == ElementKind.CONSTRUCTOR)) { currentMethodPtr[0] = el.getSimpleName().toString(); if (currentMethodPtr[0].equals("<init>")) { currentMethodPtr[2] = ElementUtilities.getBinaryName(te);
Set<TypeElement> typeElements = ElementFilter.typesIn(s); for (TypeElement typeElement : typeElements) { List<? extends Element> allMethods = compilationController.getElements().getAllMembers(typeElement); for (Element method : allMethods) { if (node.getTestcase().getName().endsWith(method.getSimpleName().toString())) { try { TypeElement enclosingTypeElement = compilationController.getElementUtilities().enclosingTypeElement(method); String originalPath = FileUtil.toFile(fo2open[0]).getAbsolutePath(); String elementFQP = element.toString().replaceAll("\\.", Matcher.quoteReplacement(File.separator)); //NOI18N String newPath = originalPath.substring(0, originalPath.indexOf(elementFQP)) + enclosingTypeElement.getQualifiedName().toString().replaceAll("\\.", Matcher.quoteReplacement(File.separator)) + ".java"; //NOI18N fo2open[0] = FileUtil.toFileObject(new File(newPath));