List of usage examples for org.eclipse.jdt.core IJavaElement INITIALIZER
int INITIALIZER
To view the source code for org.eclipse.jdt.core IJavaElement INITIALIZER.
Click Source Link
From source file:org.eclim.plugin.jdt.util.ASTUtils.java
License:Open Source License
/** * Finds the node at the specified offset that matches up with the supplied * IJavaElement./*from w w w .ja v a 2 s . com*/ * * @param cu The CompilationUnit. * @param offset The node offset in the compilation unit. * @param element The IJavaElement to match. * @return The node at the specified offset. */ public static ASTNode findNode(CompilationUnit cu, int offset, IJavaElement element) throws Exception { ASTNode node = findNode(cu, offset); if (node == null) { return null; } if (element.getElementType() == IJavaElement.TYPE_PARAMETER) { element = element.getParent(); } switch (element.getElementType()) { case IJavaElement.PACKAGE_DECLARATION: node = resolveNode(node, PackageDeclaration.class); break; case IJavaElement.IMPORT_DECLARATION: node = resolveNode(node, ImportDeclaration.class); break; case IJavaElement.TYPE: node = resolveNode(node, AbstractTypeDeclaration.class); break; case IJavaElement.INITIALIZER: node = resolveNode(node, Initializer.class); break; case IJavaElement.FIELD: node = resolveNode(node, FieldDeclaration.class); break; case IJavaElement.METHOD: node = resolveNode(node, MethodDeclaration.class); break; default: logger.info("findNode(CompilationUnit,int,IJavaElement) - " + "unrecognized element type " + element.getElementType()); } return node; }
From source file:org.eclipse.ajdt.core.model.AJModelChecker.java
License:Open Source License
private static List<String> itdsNotOnType(IRelationship rel, AJProjectModelFacade model) { List<String> problems = new ArrayList<String>(); if (rel.getKind() == IRelationship.Kind.DECLARE_INTER_TYPE) { IJavaElement elt = model.programElementToJavaElement(rel.getSourceHandle()); if (!elt.exists()) { problems.add("Java Element does not exist: " + rel.getSourceHandle() + "\n\tIt is the source relationship of " + toRelString(rel) + "\n\tThis may not actually be a problem if compiling broken code."); }//from w ww. j a v a2 s . co m if (elt != AJProjectModelFacade.ERROR_JAVA_ELEMENT && (elt.getElementType() == IJavaElement.FIELD || elt.getElementType() == IJavaElement.METHOD || elt.getElementType() == IJavaElement.LOCAL_VARIABLE || elt.getElementType() == IJavaElement.INITIALIZER || elt.getElementType() == IJavaElement.COMPILATION_UNIT || elt.getElementType() == IJavaElement.CLASS_FILE) && !(elt instanceof IntertypeElement || elt instanceof DeclareElement)) { problems.add( "Java Element is wrong type (ITD relationships should only contain types and intertype elements): " + rel.getSourceHandle() + "\n\tIt is the source relationship of " + toRelString(rel)); } for (Iterator<String> targetIter = rel.getTargets().iterator(); targetIter.hasNext();) { String target = targetIter.next(); elt = model.programElementToJavaElement(target); if (!elt.exists()) { problems.add("Java Element does not exist: " + target + "\n\tIt is the source relationship of " + toRelString(rel) + "\n\tThis may not actually be a problem if compiling broken code."); } if (elt != AJProjectModelFacade.ERROR_JAVA_ELEMENT && (elt.getElementType() == IJavaElement.FIELD || elt.getElementType() == IJavaElement.METHOD || elt.getElementType() == IJavaElement.LOCAL_VARIABLE || elt.getElementType() == IJavaElement.INITIALIZER || elt.getElementType() == IJavaElement.COMPILATION_UNIT || elt.getElementType() == IJavaElement.CLASS_FILE) && !(elt instanceof IntertypeElement || elt instanceof DeclareElement)) { problems.add( "Java Element is wrong type (ITD relationships should only contain types and intertype elements): " + target + "\n\tIt is the source relationship of " + toRelString(rel)); } } } return problems; }
From source file:org.eclipse.che.jdt.internal.core.util.HandleFactory.java
License:Open Source License
/** * Create handle by adding child to parent obtained by recursing into parent scopes. *//*from www.j a va 2 s . c o m*/ public IJavaElement createElement(Scope scope, int elementPosition, ICompilationUnit unit, HashSet existingElements, HashMap knownScopes) { IJavaElement newElement = (IJavaElement) knownScopes.get(scope); if (newElement != null) return newElement; switch (scope.kind) { case Scope.COMPILATION_UNIT_SCOPE: newElement = unit; break; case Scope.CLASS_SCOPE: IJavaElement parentElement = createElement(scope.parent, elementPosition, unit, existingElements, knownScopes); switch (parentElement.getElementType()) { case IJavaElement.COMPILATION_UNIT: newElement = ((ICompilationUnit) parentElement) .getType(new String(scope.enclosingSourceType().sourceName)); break; case IJavaElement.TYPE: newElement = ((IType) parentElement).getType(new String(scope.enclosingSourceType().sourceName)); break; case IJavaElement.FIELD: case IJavaElement.INITIALIZER: case IJavaElement.METHOD: IMember member = (IMember) parentElement; if (member.isBinary()) { return null; } else { newElement = member.getType(new String(scope.enclosingSourceType().sourceName), 1); // increment occurrence count if collision is detected if (newElement != null) { while (!existingElements.add(newElement)) ((SourceRefElement) newElement).occurrenceCount++; } } break; } if (newElement != null) { knownScopes.put(scope, newElement); } break; case Scope.METHOD_SCOPE: if (scope.isLambdaScope()) { parentElement = createElement(scope.parent, elementPosition, unit, existingElements, knownScopes); LambdaExpression expression = (LambdaExpression) scope.originalReferenceContext(); if (expression.resolvedType != null && expression.resolvedType.isValidBinding() && !(expression.descriptor instanceof ProblemMethodBinding)) { // chain in lambda element only if resolved properly. //newElement = new org.eclipse.jdt.internal.core.SourceLambdaExpression((JavaElement) parentElement, expression) // .getMethod(); newElement = LambdaFactory.createLambdaExpression((JavaElement) parentElement, expression) .getMethod(); knownScopes.put(scope, newElement); return newElement; } return parentElement; } IType parentType = (IType) createElement(scope.parent, elementPosition, unit, existingElements, knownScopes); MethodScope methodScope = (MethodScope) scope; if (methodScope.isInsideInitializer()) { // inside field or initializer, must find proper one TypeDeclaration type = methodScope.referenceType(); int occurenceCount = 1; int length = type.fields == null ? 0 : type.fields.length; for (int i = 0; i < length; i++) { FieldDeclaration field = type.fields[i]; if (field.declarationSourceStart <= elementPosition && elementPosition <= field.declarationSourceEnd) { switch (field.getKind()) { case AbstractVariableDeclaration.FIELD: case AbstractVariableDeclaration.ENUM_CONSTANT: newElement = parentType.getField(new String(field.name)); break; case AbstractVariableDeclaration.INITIALIZER: newElement = parentType.getInitializer(occurenceCount); break; } break; } else if (field.getKind() == AbstractVariableDeclaration.INITIALIZER) { occurenceCount++; } } } else { // method element AbstractMethodDeclaration method = methodScope.referenceMethod(); newElement = parentType.getMethod(new String(method.selector), Util.typeParameterSignatures(method)); if (newElement != null) { knownScopes.put(scope, newElement); } } break; case Scope.BLOCK_SCOPE: // standard block, no element per se newElement = createElement(scope.parent, elementPosition, unit, existingElements, knownScopes); break; } return newElement; }
From source file:org.eclipse.che.jdt.util.JavaModelUtil.java
License:Open Source License
/** * Evaluates if a member (possible from another package) is visible from * elements in a package.//from w w w . j a va 2 s . c o m * @param member The member to test the visibility for * @param pack The package in focus * @return returns <code>true</code> if the member is visible from the package * @throws JavaModelException thrown when the member can not be accessed */ public static boolean isVisible(IMember member, IPackageFragment pack) throws JavaModelException { int type = member.getElementType(); if (type == IJavaElement.INITIALIZER || (type == IJavaElement.METHOD && member.getElementName().startsWith("<"))) { //$NON-NLS-1$ return false; } int otherflags = member.getFlags(); IType declaringType = member.getDeclaringType(); if (Flags.isPublic(otherflags) || (declaringType != null && isInterfaceOrAnnotation(declaringType))) { return true; } else if (Flags.isPrivate(otherflags)) { return false; } IPackageFragment otherpack = (IPackageFragment) member.getAncestor(IJavaElement.PACKAGE_FRAGMENT); return (pack != null && otherpack != null && isSamePackage(pack, otherpack)); }
From source file:org.eclipse.e4.demo.simpleide.jdt.internal.editor.viewer.JavaElementLabelComposer.java
License:Open Source License
/** * Appends the label for a Java element with the flags as defined by this * class./*from w w w.j a va 2 s .c o m*/ * * @param element * the element to render * @param flags * the rendering flags. */ public void appendElementLabel(IJavaElement element, long flags) { int type = element.getElementType(); IPackageFragmentRoot root = null; if (type != IJavaElement.JAVA_MODEL && type != IJavaElement.JAVA_PROJECT && type != IJavaElement.PACKAGE_FRAGMENT_ROOT) root = JavaModelUtil.getPackageFragmentRoot(element); if (root != null && getFlag(flags, JavaElementLabels.PREPEND_ROOT_PATH)) { appendPackageFragmentRootLabel(root, JavaElementLabels.ROOT_QUALIFIED); fBuffer.append(JavaElementLabels.CONCAT_STRING); } switch (type) { case IJavaElement.METHOD: appendMethodLabel((IMethod) element, flags); break; case IJavaElement.FIELD: appendFieldLabel((IField) element, flags); break; case IJavaElement.LOCAL_VARIABLE: appendLocalVariableLabel((ILocalVariable) element, flags); break; case IJavaElement.TYPE_PARAMETER: appendTypeParameterLabel((ITypeParameter) element, flags); break; case IJavaElement.INITIALIZER: appendInitializerLabel((IInitializer) element, flags); break; case IJavaElement.TYPE: appendTypeLabel((IType) element, flags); break; case IJavaElement.CLASS_FILE: appendClassFileLabel((IClassFile) element, flags); break; case IJavaElement.COMPILATION_UNIT: appendCompilationUnitLabel((ICompilationUnit) element, flags); break; case IJavaElement.PACKAGE_FRAGMENT: appendPackageFragmentLabel((IPackageFragment) element, flags); break; case IJavaElement.PACKAGE_FRAGMENT_ROOT: appendPackageFragmentRootLabel((IPackageFragmentRoot) element, flags); break; case IJavaElement.IMPORT_CONTAINER: case IJavaElement.IMPORT_DECLARATION: case IJavaElement.PACKAGE_DECLARATION: appendDeclarationLabel(element, flags); break; case IJavaElement.JAVA_PROJECT: case IJavaElement.JAVA_MODEL: fBuffer.append(element.getElementName()); break; default: fBuffer.append(element.getElementName()); } if (root != null && getFlag(flags, JavaElementLabels.APPEND_ROOT_PATH)) { int offset = fBuffer.length(); fBuffer.append(JavaElementLabels.CONCAT_STRING); appendPackageFragmentRootLabel(root, JavaElementLabels.ROOT_QUALIFIED); if (getFlag(flags, JavaElementLabels.COLORIZE)) { fBuffer.setStyle(offset, fBuffer.length() - offset, QUALIFIER_STYLE); } } }
From source file:org.eclipse.e4.demo.simpleide.jdt.internal.editor.viewer.JavaElementLabelComposer.java
License:Open Source License
/** * Appends the label for a type. Considers the T_* flags. * // w ww . j a v a 2 s.c om * @param type * the element to render * @param flags * the rendering flags. Flags with names starting with 'T_' are * considered. */ public void appendTypeLabel(IType type, long flags) { if (getFlag(flags, JavaElementLabels.T_FULLY_QUALIFIED)) { IPackageFragment pack = type.getPackageFragment(); if (!pack.isDefaultPackage()) { appendPackageFragmentLabel(pack, (flags & QUALIFIER_FLAGS)); fBuffer.append('.'); } } if (getFlag(flags, JavaElementLabels.T_FULLY_QUALIFIED | JavaElementLabels.T_CONTAINER_QUALIFIED)) { IType declaringType = type.getDeclaringType(); if (declaringType != null) { appendTypeLabel(declaringType, JavaElementLabels.T_CONTAINER_QUALIFIED | (flags & QUALIFIER_FLAGS)); fBuffer.append('.'); } int parentType = type.getParent().getElementType(); if (parentType == IJavaElement.METHOD || parentType == IJavaElement.FIELD || parentType == IJavaElement.INITIALIZER) { // anonymous or // local appendElementLabel(type.getParent(), 0); fBuffer.append('.'); } } String typeName = getElementName(type); if (typeName.length() == 0) { // anonymous try { if (type.getParent() instanceof IField && type.isEnum()) { typeName = '{' + JavaElementLabels.ELLIPSIS_STRING + '}'; } else { String supertypeName; String[] superInterfaceSignatures = type.getSuperInterfaceTypeSignatures(); if (superInterfaceSignatures.length > 0) { supertypeName = getSimpleTypeName(type, superInterfaceSignatures[0]); } else { supertypeName = getSimpleTypeName(type, type.getSuperclassTypeSignature()); } typeName = messages.JavaElementLabels_anonym_type(supertypeName); } } catch (JavaModelException e) { // ignore typeName = messages.JavaElementLabels_anonym(); } } fBuffer.append(typeName); if (getFlag(flags, JavaElementLabels.T_TYPE_PARAMETERS)) { if (getFlag(flags, JavaElementLabels.USE_RESOLVED) && type.isResolved()) { BindingKey key = new BindingKey(type.getKey()); if (key.isParameterizedType()) { String[] typeArguments = key.getTypeArguments(); appendTypeArgumentSignaturesLabel(type, typeArguments, flags); } else { String[] typeParameters = Signature.getTypeParameters(key.toSignature()); appendTypeParameterSignaturesLabel(typeParameters, flags); } } else if (type.exists()) { try { appendTypeParametersLabels(type.getTypeParameters(), flags); } catch (JavaModelException e) { // ignore } } } // category if (getFlag(flags, JavaElementLabels.T_CATEGORY) && type.exists()) { try { appendCategoryLabel(type, flags); } catch (JavaModelException e) { // ignore } } // post qualification if (getFlag(flags, JavaElementLabels.T_POST_QUALIFIED)) { int offset = fBuffer.length(); fBuffer.append(JavaElementLabels.CONCAT_STRING); IType declaringType = type.getDeclaringType(); if (declaringType != null) { appendTypeLabel(declaringType, JavaElementLabels.T_FULLY_QUALIFIED | (flags & QUALIFIER_FLAGS)); int parentType = type.getParent().getElementType(); if (parentType == IJavaElement.METHOD || parentType == IJavaElement.FIELD || parentType == IJavaElement.INITIALIZER) { // anonymous // or // local fBuffer.append('.'); appendElementLabel(type.getParent(), 0); } } else { appendPackageFragmentLabel(type.getPackageFragment(), flags & QUALIFIER_FLAGS); } if (getFlag(flags, JavaElementLabels.COLORIZE)) { fBuffer.setStyle(offset, fBuffer.length() - offset, QUALIFIER_STYLE); } } }
From source file:org.eclipse.jst.jsf.common.ui.internal.utils.JavaModelUtil.java
License:Open Source License
/** * Evaluates if a member (possible from another package) is visible from * elements in a package.//from ww w. j av a2 s .co m * * @param member * The member to test the visibility for * @param pack * The package in focus * @return true if visible * @throws JavaModelException */ public static boolean isVisible(IMember member, IPackageFragment pack) throws JavaModelException { int type = member.getElementType(); if (type == IJavaElement.INITIALIZER || (type == IJavaElement.METHOD && member.getElementName().startsWith("<"))) { //$NON-NLS-1$ //$NON-NLS-1$ return false; } int otherflags = member.getFlags(); IType declaringType = member.getDeclaringType(); if (Flags.isPublic(otherflags) || (declaringType != null && declaringType.isInterface())) { return true; } else if (Flags.isPrivate(otherflags)) { return false; } IPackageFragment otherpack = (IPackageFragment) findParentOfKind(member, IJavaElement.PACKAGE_FRAGMENT); return (pack != null && otherpack != null && isSamePackage(pack, otherpack)); }
From source file:org.eclipse.jst.jsf.common.ui.internal.utils.JavaModelUtil.java
License:Open Source License
/** * Evaluates if a member in the focus' element hierarchy is visible from * elements in a package.//w ww . ja v a2s . co m * * @param member * The member to test the visibility for * @param pack * The package of the focus element focus * @return true if is visible in hiearchy * @throws JavaModelException */ public static boolean isVisibleInHierarchy(IMember member, IPackageFragment pack) throws JavaModelException { int type = member.getElementType(); if (type == IJavaElement.INITIALIZER || (type == IJavaElement.METHOD && member.getElementName().startsWith("<"))) { //$NON-NLS-1$ //$NON-NLS-1$ return false; } int otherflags = member.getFlags(); IType declaringType = member.getDeclaringType(); if (Flags.isPublic(otherflags) || Flags.isProtected(otherflags) || (declaringType != null && declaringType.isInterface())) { return true; } else if (Flags.isPrivate(otherflags)) { return false; } IPackageFragment otherpack = (IPackageFragment) findParentOfKind(member, IJavaElement.PACKAGE_FRAGMENT); return (pack != null && pack.equals(otherpack)); }
From source file:org.eclipse.linuxtools.changelog.parsers.java.JavaParser.java
License:Open Source License
/** * @see IParserChangeLogContrib#parseCurrentFunction(IEditorPart) *///from w ww .jav a 2 s .co m public String parseCurrentFunction(IEditorInput input, int offset) throws CoreException { String currentElementName; int elementType; // Get the working copy and connect to input. IWorkingCopyManager manager = JavaUI.getWorkingCopyManager(); manager.connect(input); // Retrieve the Java Element in question. // The following internal access is done because the getWorkingCopy() method // for the WorkingCopyManager returns null for StorageEditorInput, however, // there is a working copy available through the ICompilationUnitDocumentProvider. // ICompilationUnit workingCopy = manager.getWorkingCopy(input); ICompilationUnitDocumentProvider x = (ICompilationUnitDocumentProvider) JavaUI.getDocumentProvider(); // Retrieve the Java Element in question. ICompilationUnit workingCopy = x.getWorkingCopy(input); if (workingCopy == null) return ""; IJavaElement method = workingCopy.getElementAt(offset); manager.disconnect(input); // no element selected if (method == null) return ""; // Get the current element name, to test it. currentElementName = method.getElementName(); // Element doesn't have a name. Can go no further. if (currentElementName == null) return ""; // Get the Element Type to test. elementType = method.getElementType(); switch (elementType) { case IJavaElement.METHOD: case IJavaElement.FIELD: break; case IJavaElement.COMPILATION_UNIT: return ""; case IJavaElement.INITIALIZER: return STATIC_INITIALIZER_NAME; // So it's not a method, field, type, or static initializer. Where are we? default: IJavaElement tmpMethodType; if (((tmpMethodType = method.getAncestor(IJavaElement.METHOD)) == null) && ((tmpMethodType = method.getAncestor(IJavaElement.TYPE)) == null)) { return ""; } else { // In a class, but not in a method. Return class name instead. method = tmpMethodType; currentElementName = method.getElementName(); } } // Build all ancestor classes. // Append all ancestor class names to string IJavaElement tmpParent = method.getParent(); boolean firstLoop = true; while (tmpParent != null) { IJavaElement tmpParentClass = tmpParent.getAncestor(IJavaElement.TYPE); if (tmpParentClass != null) { String tmpParentClassName = tmpParentClass.getElementName(); if (tmpParentClassName == null) return ""; currentElementName = tmpParentClassName + "." + currentElementName; } else { // cut root class name int rootClassPos = currentElementName.indexOf("."); if (rootClassPos >= 0) currentElementName = currentElementName.substring(rootClassPos + 1); if (firstLoop) return ""; else return currentElementName; } tmpParent = tmpParentClass.getParent(); firstLoop = false; } return ""; }
From source file:org.eclipse.linuxtools.internal.changelog.parsers.java.JavaParser.java
License:Open Source License
@Override public String parseCurrentFunction(IEditorInput input, int offset) throws CoreException { String currentElementName;/*from w ww. ja v a 2 s. c o m*/ int elementType; // Get the working copy and connect to input. IWorkingCopyManager manager = JavaUI.getWorkingCopyManager(); manager.connect(input); // Retrieve the Java Element in question. // The following internal access is done because the getWorkingCopy() // method // for the WorkingCopyManager returns null for StorageEditorInput, // however, // there is a working copy available through the // ICompilationUnitDocumentProvider. ICompilationUnitDocumentProvider x = (ICompilationUnitDocumentProvider) JavaUI.getDocumentProvider(); // Retrieve the Java Element in question. ICompilationUnit workingCopy = x.getWorkingCopy(input); if (workingCopy == null) { return ""; } IJavaElement method = workingCopy.getElementAt(offset); manager.disconnect(input); // no element selected if (method == null) { return ""; } // Get the current element name, to test it. currentElementName = method.getElementName(); // Element doesn't have a name. Can go no further. if (currentElementName == null) { return ""; } // Get the Element Type to test. elementType = method.getElementType(); switch (elementType) { case IJavaElement.METHOD: case IJavaElement.FIELD: break; case IJavaElement.COMPILATION_UNIT: return ""; case IJavaElement.INITIALIZER: return STATIC_INITIALIZER_NAME; // So it's not a method, field, type, or static initializer. Where // are we? default: IJavaElement tmpMethodType; if (((tmpMethodType = method.getAncestor(IJavaElement.METHOD)) == null) && ((tmpMethodType = method.getAncestor(IJavaElement.TYPE)) == null)) { return ""; } else { // In a class, but not in a method. Return class name instead. method = tmpMethodType; currentElementName = method.getElementName(); } } // Build all ancestor classes. // Append all ancestor class names to string IJavaElement tmpParent = method.getParent(); boolean firstLoop = true; while (tmpParent != null) { IJavaElement tmpParentClass = tmpParent.getAncestor(IJavaElement.TYPE); if (tmpParentClass != null) { String tmpParentClassName = tmpParentClass.getElementName(); if (tmpParentClassName == null) { return ""; } currentElementName = tmpParentClassName + "." + currentElementName; } else { // cut root class name int rootClassPos = currentElementName.indexOf('.'); if (rootClassPos >= 0) { currentElementName = currentElementName.substring(rootClassPos + 1); } if (firstLoop) { return ""; } else { return currentElementName; } } tmpParent = tmpParentClass.getParent(); firstLoop = false; } return ""; }