List of usage examples for org.eclipse.jdt.core IJavaElement getElementName
String getElementName();
From source file:org.eclipse.objectteams.otdt.internal.ui.packageview.PackageExplorerAdaptor.ContentProvider.java
License:Open Source License
@SuppressWarnings("nls") public static boolean isGenerated(IJavaElement elem) { // TODO (SH): check whether ViewerFilters can do the job better. // all kinds of generated features determined by name: String name = elem.getElementName(); final String[] patterns = new String[] { "_OT$", "TSuper__OT__", // general OT-prefix "class$", "access$", "val$", "this$" // std. java synthetics. };/*w w w . j av a 2 s. com*/ for (int i = 0; i < patterns.length; i++) { if (name.indexOf(patterns[i]) >= 0) return true; } switch (elem.getElementType()) { case IJavaElement.TYPE: case IOTJavaElement.ROLE: // Predifined role types (non-overridable)? final String[] fullPatterns = new String[] { "IConfined", "Confined", "__OT__Confined", "ILowerable", // special OT types }; for (int i = 0; i < fullPatterns.length; i++) { if (name.equals(fullPatterns[i])) return true; } break; case IJavaElement.METHOD: // tsuper-method? IMethod method = (IMethod) elem; String[] paramTypes = method.getParameterTypes(); if (paramTypes.length > 0) { String lastType = Signature.getSimpleName(Signature.toString(paramTypes[paramTypes.length - 1])); if (lastType.startsWith("TSuper__OT__")) return true; } break; } // Synthetic role interface? if (elem.getElementType() == IOTJavaElement.ROLE) { IType type = (IType) elem; try { if (Flags.isSynthetic(type.getFlags())) return true; } catch (JavaModelException ex) { // nop } } return false; }
From source file:org.eclipse.objectteams.otdt.internal.ui.viewsupport.TeamPackageUtil.java
License:Open Source License
/** * If aPackage is a team package answer the corresponding team compilation unit * //w ww. j a va 2 s. co m * @param aPackage * @return a team unit or null. * @throws JavaModelException */ public static ICompilationUnit getTeamUnit(IPackageFragment aPackage) throws JavaModelException { ICompilationUnit[] units = aPackage.getCompilationUnits(); if (units != null && units.length > 0) { IType firstType = JavaElementUtil.getMainType(units[0]); IOTType otType = OTModelManager.getOTElement(firstType); if (otType != null && otType.isRole()) { String unitName = aPackage.getPath().lastSegment() + ".java"; //$NON-NLS-1$ IPackageFragment enclosingPackage = JavaElementUtil.getParentSubpackage(aPackage); if (enclosingPackage != null) { return enclosingPackage.getCompilationUnit(unitName); } else { // if parent is already the root, then we have a team in the default package, yacks. // need to travel one up, two down: IPackageFragmentRoot root = (IPackageFragmentRoot) aPackage.getParent(); for (IJavaElement fragment : root.getChildren()) { if (fragment.getElementName() == IPackageFragment.DEFAULT_PACKAGE_NAME) for (IJavaElement element : ((IPackageFragment) fragment).getChildren()) if (element.getElementType() == IJavaElement.COMPILATION_UNIT) if (element.getElementName().equals(unitName)) return (ICompilationUnit) element; } } } } return null; }
From source file:org.eclipse.objectteams.otdt.internal.ui.wizards.listeners.NewRoleWizardPageListener.java
License:Open Source License
IStatus validateBaseClassName(IType enclosingType, String name) { IStatus warning = null;/*from w ww .ja v a 2 s . c o m*/ while (enclosingType != null) { if (name.equals(enclosingType.getElementName()) && warning == null) { warning = new StatusInfo(StatusInfo.WARNING, Messages.format(OTNewWizardMessages.NewRole_base_class_equals_enclosing, new Object[] { name, getObservedPage().getTypeName() })); } try { for (IJavaElement member : enclosingType.getChildren()) { if (member.getElementType() == OTJavaElement.ROLE && member.getElementName().equals(name)) return new StatusInfo(StatusInfo.ERROR, Messages.format(OTNewWizardMessages.NewRole_base_class_equals_member, name)); } } catch (JavaModelException e) { /* nop */ } enclosingType = enclosingType.getDeclaringType(); } return warning != null ? warning : StatusInfo.OK_STATUS; }
From source file:org.eclipse.objectteams.otdt.tests.otmodel.role.bound.torole.LayeredTeamsTests.java
License:Open Source License
public void testAnchoredCalloutSignature() throws Exception { getTestSetting().setTeamClass("Team_4"); getTestSetting().setUp();// ww w . ja v a 2s .c om performTest("TeamB.java", "TeamB", getTestSetting().getRoleJavaElement()); for (IJavaElement member : _roleOTElem.getChildren()) { if (member.getElementType() == IOTJavaElement.CALLOUT_MAPPING) { assertEquals("Callout signature not as expected", "isEqual(LowerRole<@teamB>) -> isEqual(LowerRole<@teamB>)", member.getElementName()); } } }
From source file:org.eclipse.objectteams.otdt.ui.tests.hierarchy.contentprovider.TreeNode.java
License:Open Source License
private void toString(StringBuffer buf, int indent) { for (int i = 0; i < indent; i++) buf.append(' '); IJavaElement element = (IJavaElement) this._element; buf.append(element.getParent().getElementName()).append('.').append(element.getElementName()).append('\n'); for (Entry<Object, TreeNode> e : this._children.entrySet()) e.getValue().toString(buf, 4);/*from ww w . j av a 2 s . c o m*/ }
From source file:org.eclipse.objectteams.otdt.ui.Util.java
License:Open Source License
/** * Is the given java element generated by the compiler (i.e., synthetic)? * This function operates on all kinds of java elements applying appropriate * heuristics (mostly name based). /*from w w w . jav a2 s. c o m*/ * @param elem * @return */ @SuppressWarnings("nls") public static boolean isGenerated(IJavaElement elem) { // TODO (SH): check whether ViewerFilters can do the job better. // all kinds of generated features determined by name: String name = elem.getElementName(); final String[] patterns = new String[] { "_OT$", "TSuper__OT__", // general OT-prefix "class$", "access$", "val$", "this$" // std. java synthetics. }; for (int i = 0; i < patterns.length; i++) { if (name.indexOf(patterns[i]) >= 0) return true; } switch (elem.getElementType()) { case IJavaElement.TYPE: case IOTJavaElement.ROLE: // Predefined role types (non-overridable)? final String[] fullPatterns = new String[] { "IConfined", "Confined", "__OT__Confined", "ILowerable", // special OT types }; for (int i = 0; i < fullPatterns.length; i++) { if (name.equals(fullPatterns[i])) return true; } break; case IJavaElement.METHOD: // tsuper-method? IMethod method = (IMethod) elem; String[] paramTypes = method.getParameterTypes(); if (paramTypes.length > 0) { String lastType = Signature.getSimpleName(Signature.toString(paramTypes[paramTypes.length - 1])); if (lastType.startsWith("TSuper__OT__")) return true; } break; } // Synthetic role interface? if (elem.getElementType() == IOTJavaElement.ROLE) { IType type = (IType) elem; try { if (Flags.isSynthetic(type.getFlags())) return true; } catch (JavaModelException ex) { // nop } } return false; }
From source file:org.eclipse.pde.api.tools.internal.ApiDescriptionManager.java
License:Open Source License
/** * Flushes the changed element from the model cache * //from w w w . j a v a 2 s . c om * @param element */ void flushElementCache(IJavaElement element) { switch (element.getElementType()) { case IJavaElement.COMPILATION_UNIT: { ICompilationUnit unit = (ICompilationUnit) element; IType type = unit.findPrimaryType(); if (type != null) { ApiModelCache.getCache().removeElementInfo(ApiBaselineManager.WORKSPACE_API_BASELINE_ID, element.getJavaProject().getElementName(), type.getFullyQualifiedName(), IApiElement.TYPE); } break; } case IJavaElement.JAVA_PROJECT: { ApiModelCache.getCache().removeElementInfo(ApiBaselineManager.WORKSPACE_API_BASELINE_ID, element.getElementName(), null, IApiElement.COMPONENT); break; } default: break; } }
From source file:org.eclipse.pde.api.tools.internal.ApiDescriptionManager.java
License:Open Source License
private void restoreNode(ProjectApiDescription apiDesc, Element element, ManifestNode parentNode, Map<IElementDescriptor, ManifestNode> childrenMap) throws CoreException { ManifestNode node = null;//www.j av a2 s . c o m IElementDescriptor elementDesc = null; if (element.getTagName().equals(IApiXmlConstants.ELEMENT_PACKAGE)) { int vis = getInt(element, IApiXmlConstants.ATTR_VISIBILITY); int res = getInt(element, IApiXmlConstants.ATTR_RESTRICTIONS); // collect fragments List<IJavaElement> fragments = new ArrayList<IJavaElement>(); NodeList childNodes = element.getChildNodes(); String pkgName = null; for (int i = 0; i < childNodes.getLength(); i++) { Node child = childNodes.item(i); if (child.getNodeType() == Node.ELEMENT_NODE) { if (((Element) child).getTagName().equals(IApiXmlConstants.ELEMENT_PACKAGE_FRAGMENT)) { Element fragment = (Element) child; String handle = fragment.getAttribute(IApiXmlConstants.ATTR_HANDLE); IJavaElement je = JavaCore.create(handle); if (je.getElementType() != IJavaElement.PACKAGE_FRAGMENT) { abort(ScannerMessages.ApiDescriptionManager_2 + handle, null); } pkgName = je.getElementName(); fragments.add(je); } } } if (!fragments.isEmpty()) { elementDesc = Factory.packageDescriptor(pkgName); node = apiDesc.newPackageNode(fragments.toArray(new IPackageFragment[fragments.size()]), parentNode, elementDesc, vis, res); } else { abort(ScannerMessages.ApiDescriptionManager_2, null); } } else if (element.getTagName().equals(IApiXmlConstants.ELEMENT_PACKAGE_FRAGMENT)) { return; // nothing to do } else if (element.getTagName().equals(IApiXmlConstants.ELEMENT_TYPE)) { String handle = element.getAttribute(IApiXmlConstants.ATTR_HANDLE); int vis = getInt(element, IApiXmlConstants.ATTR_VISIBILITY); int res = getInt(element, IApiXmlConstants.ATTR_RESTRICTIONS); IJavaElement je = JavaCore.create(handle); if (je.getElementType() != IJavaElement.TYPE) { abort(ScannerMessages.ApiDescriptionManager_3 + handle, null); } IType type = (IType) je; elementDesc = Factory.typeDescriptor(type.getFullyQualifiedName('$')); TypeNode tn = apiDesc.newTypeNode(type, parentNode, elementDesc, vis, res); node = tn; tn.fTimeStamp = getLong(element, IApiXmlConstants.ATTR_MODIFICATION_STAMP); } else if (element.getTagName().equals(IApiXmlConstants.ELEMENT_FIELD)) { if (parentNode.element instanceof IReferenceTypeDescriptor) { IReferenceTypeDescriptor type = (IReferenceTypeDescriptor) parentNode.element; int vis = getInt(element, IApiXmlConstants.ATTR_VISIBILITY); int res = getInt(element, IApiXmlConstants.ATTR_RESTRICTIONS); String name = element.getAttribute(IApiXmlConstants.ATTR_NAME); elementDesc = type.getField(name); node = apiDesc.newNode(parentNode, elementDesc, vis, res); } } else if (element.getTagName().equals(IApiXmlConstants.ELEMENT_METHOD)) { if (parentNode.element instanceof IReferenceTypeDescriptor) { IReferenceTypeDescriptor type = (IReferenceTypeDescriptor) parentNode.element; int vis = getInt(element, IApiXmlConstants.ATTR_VISIBILITY); int res = getInt(element, IApiXmlConstants.ATTR_RESTRICTIONS); String name = element.getAttribute(IApiXmlConstants.ATTR_NAME); String sig = element.getAttribute(IApiXmlConstants.ATTR_SIGNATURE); if (sig.indexOf('.') != -1) { // old files might use '.' instead of '/' sig = sig.replace('.', '/'); } elementDesc = type.getMethod(name, sig); node = apiDesc.newNode(parentNode, elementDesc, vis, res); } } if (node != null) { childrenMap.put(elementDesc, node); restoreChildren(apiDesc, element, node, node.children); } else { abort(ScannerMessages.ApiDescriptionManager_4, null); } }
From source file:org.eclipse.pde.api.tools.internal.ProjectApiDescription.java
License:Open Source License
private IElementDescriptor getElementDescriptor(IJavaElement element) { switch (element.getElementType()) { case IJavaElement.PACKAGE_FRAGMENT: return Factory.packageDescriptor(element.getElementName()); case IJavaElement.TYPE: return Factory.typeDescriptor(((IType) element).getFullyQualifiedName('$')); default:// w w w . jav a 2 s .co m return null; } }
From source file:org.eclipse.pde.ds.internal.annotations.AnnotationProcessor.java
License:Open Source License
@Override public void acceptAST(ICompilationUnit source, CompilationUnit ast) { // determine CU key String cuKey;//from w w w . j ava 2 s . co m IJavaElement parent = source.getParent(); if (parent == null) cuKey = source.getElementName(); else cuKey = String.format("%s/%s", parent.getElementName().replace('.', '/'), source.getElementName()); //$NON-NLS-1$ context.getUnprocessed().remove(cuKey); ProjectState state = context.getState(); HashMap<String, String> dsKeys = new HashMap<>(); HashSet<DSAnnotationProblem> problems = new HashSet<>(); ast.accept(new AnnotationVisitor(this, state, dsKeys, problems)); // track abandoned files (may be garbage) Collection<String> oldDSKeys = state.updateMappings(cuKey, dsKeys); if (oldDSKeys != null) { oldDSKeys.removeAll(dsKeys.values()); context.getAbandoned().addAll(oldDSKeys); } if (!problems.isEmpty()) { char[] filename = source.getResource().getFullPath().toString().toCharArray(); for (DSAnnotationProblem problem : problems) { problem.setOriginatingFileName(filename); if (problem.getSourceStart() >= 0) problem.setSourceLineNumber(ast.getLineNumber(problem.getSourceStart())); } BuildContext buildContext = fileMap.get(source); if (buildContext != null) buildContext.recordNewProblems(problems.toArray(new CategorizedProblem[problems.size()])); } }