List of usage examples for org.eclipse.jdt.core IJavaElement getElementName
String getElementName();
From source file:org.jboss.tools.common.model.ui.editors.dnd.LoadBundleBaseNameAttributeValueLoader.java
License:Open Source License
public void fillTagAttributes(IDropWizardModel model) { String baseName = ""; //$NON-NLS-1$ String fileName = ""; //$NON-NLS-1$ IFile file = DropUtils.getResourceForMimeData(model.getDropData()); IJavaElement javaElement = null; if (file == null || !file.exists() || file.getParent() == null) { String s = model.getDropData().getMimeData(); if (s == null) return; s = s.replace('\\', '/'); int l = s.lastIndexOf('.'); if (l >= 0) s = s.substring(0, l);/*from ww w .j a va 2 s . c om*/ int k = s.indexOf("/JavaSource/"); //$NON-NLS-1$ if (k >= 0) { baseName = s.substring(k + "/JavaSource/".length()); //$NON-NLS-1$ } else { baseName = s.substring(s.lastIndexOf('/') + 1); } baseName = baseName.replace('/', '.'); fileName = baseName.substring(baseName.lastIndexOf('.') + 1); } else { XModelObject o = EclipseResourceUtil.getObjectByResource(file); if (o != null) { String path = XModelObjectLoaderUtil.getResourcePath(o); if (path.startsWith("/")) //$NON-NLS-1$ path = path.substring(1); int i = path.lastIndexOf('.'); if (i >= 0) path = path.substring(0, i); baseName = path.replace('/', '.'); fileName = baseName.substring(baseName.lastIndexOf('.') + 1); } else { //incorrect javaElement = JavaCore.create((IFolder) file.getParent()); fileName = file.getName(); int i = fileName.lastIndexOf('.'); if (i >= 0) fileName = fileName.substring(0, i); if (javaElement != null) { baseName = javaElement.getElementName() + "." + fileName; //$NON-NLS-1$ } else { baseName = fileName; } } } // TODO Eskimo - Think about how reject drop id properties file is not under java source model.setAttributeValue(ATTR_BASENAME, baseName); model.setAttributeValue(ATTR_VAR, fileName.toLowerCase()); if (model instanceof DefaultDropWizardModel) { ((DefaultDropWizardModel) model).setPreferable(ATTR_BASENAME); ((DefaultDropWizardModel) model).setPreferable(ATTR_VAR); } }
From source file:org.jboss.tools.common.ui.marker.AddSuppressWarningsMarkerResolution.java
License:Open Source License
public AddSuppressWarningsMarkerResolution(IFile file, IJavaElement element, String preferenceKey) { this.file = file; this.element = getAnnatatableElement(element); String[] names = WarningNameManager.getInstance().getWarningNames(preferenceKey); if (names != null && names.length > 0) { this.preferenceKey = names[0]; } else {//ww w . j a va2s . c o m this.preferenceKey = null; } label = NLS.bind(CommonUIMessages.ADD_SUPPRESS_WARNINGS_TITLE, this.preferenceKey, element.getElementName()); if (element instanceof IMethod) { label += "()"; } description = getPreview(); }
From source file:org.jboss.tools.jst.web.kb.refactoring.ELReferencesQueryParticipant.java
License:Open Source License
public void search(ISearchRequestor requestor, QuerySpecification querySpecification, IProgressMonitor monitor) throws CoreException { if (querySpecification instanceof ElementQuerySpecification && isSearchForReferences(querySpecification.getLimitTo())) { IJavaElement element = ((ElementQuerySpecification) querySpecification).getElement(); if (element instanceof IField || element instanceof IMethod || element instanceof IType) { IFile file = (IFile) element.getResource(); if (file != null) { String name = element.getElementName(); searcher = new ELSearcher(requestor, element, file, name); searcher.setSearchScope(querySpecification.getScope()); searcher.findELReferences(monitor); }/*from w ww. j av a2 s. c o m*/ } } }
From source file:org.jboss.tools.seam.core.test.refactoring.SeamPropertyRefactoringTest.java
License:Open Source License
private IPackageFragment findPackage(IPackageFragmentRoot root, String packageName) { IJavaElement[] packages = null;/* www . j av a 2 s . c om*/ try { packages = root.getChildren(); } catch (JavaModelException e) { JUnitUtils.fail("Can't find package: " + packageName, e); } for (IJavaElement javaElement : packages) { if (javaElement instanceof IPackageFragment && javaElement.getElementName().equals(packageName)) { return (IPackageFragment) javaElement; } } return null; }
From source file:org.jboss.tools.seam.ui.wizard.SelectJavaPackageAction.java
License:Open Source License
@Override public void run() { String projectName = (String) getFieldEditor().getData(ISeamParameter.SEAM_PROJECT_NAME); if (projectName == null) { return;/*w ww . j a va 2s . c o m*/ } IProject project = ResourcesPlugin.getWorkspace().getRoot().getProject(projectName); if (project == null) { SeamGuiPlugin.getPluginLog().logError("Can't find java project with name: " + projectName); return; } SeamProjectsSet seamPrjSet = new SeamProjectsSet(project); IProject ejbProject = seamPrjSet.getEjbProject(); if (ejbProject != null) { project = ejbProject; } IJavaProject javaProject = EclipseResourceUtil.getJavaProject(project); if (javaProject == null) { SeamGuiPlugin.getPluginLog().logError("Can't find java project with name: " + projectName); return; } IPackageFragmentRoot packageFragmentRoot = null; IPackageFragmentRoot[] roots; try { roots = javaProject.getPackageFragmentRoots(); for (int i = 0; i < roots.length; i++) { if (roots[i].getKind() == IPackageFragmentRoot.K_SOURCE) { packageFragmentRoot = roots[i]; break; } } } catch (JavaModelException e) { SeamGuiPlugin.getPluginLog().logError(e); } if (packageFragmentRoot == null) { packageFragmentRoot = javaProject.getPackageFragmentRoot(javaProject.getResource()); } if (packageFragmentRoot == null) { SeamGuiPlugin.getPluginLog().logError("Can't find src folder for project " + projectName); return; } IJavaElement[] packages = null; try { packages = packageFragmentRoot.getChildren(); } catch (JavaModelException e) { SeamGuiPlugin.getPluginLog().logError(e); } if (packages == null) { packages = new IJavaElement[0]; } String initialValue = getFieldEditor().getValue().toString(); IJavaElement initialElement = null; ArrayList<IJavaElement> packagesWithoutDefaultPackage = new ArrayList<IJavaElement>(); for (IJavaElement packageElement : packages) { String packageName = packageElement.getElementName(); if (packageName.length() > 0) { packagesWithoutDefaultPackage.add(packageElement); if (packageName.equals(initialValue)) { initialElement = packageElement; } } } packages = packagesWithoutDefaultPackage.toArray(new IJavaElement[packagesWithoutDefaultPackage.size()]); ElementListSelectionDialog dialog = new ElementListSelectionDialog(Display.getCurrent().getActiveShell(), new JavaElementLabelProvider(JavaElementLabelProvider.SHOW_DEFAULT)); dialog.setTitle(J2EEUIMessages.PACKAGE_SELECTION_DIALOG_TITLE); dialog.setMessage(J2EEUIMessages.PACKAGE_SELECTION_DIALOG_DESC); dialog.setEmptyListMessage(J2EEUIMessages.PACKAGE_SELECTION_DIALOG_MSG_NONE); dialog.setElements(packages); if (initialElement != null) { dialog.setInitialSelections(new Object[] { initialElement }); } if (dialog.open() == Window.OK) { IPackageFragment fragment = (IPackageFragment) dialog.getFirstResult(); if (fragment != null) { getFieldEditor().setValue(fragment.getElementName()); } else { getFieldEditor().setValue(""); } } }
From source file:org.jboss.tools.vscode.java.internal.handlers.DocumentSymbolHandler.java
License:Open Source License
private void collectChildren(ITypeRoot unit, IJavaElement[] elements, ArrayList<SymbolInformation> symbols) throws JavaModelException { for (IJavaElement element : elements) { if (element.getElementType() == IJavaElement.TYPE) { collectChildren(unit, ((IType) element).getChildren(), symbols); }//w ww . j ava2 s . c o m if (element.getElementType() != IJavaElement.FIELD && element.getElementType() != IJavaElement.METHOD) { continue; } SymbolInformation si = new SymbolInformation(); si.setName(element.getElementName()); si.setKind(new Double(mapKind(element))); if (element.getParent() != null) si.setContainerName(element.getParent().getElementName()); si.setLocation(JDTUtils.toLocation(element)); symbols.add(si); } }
From source file:org.jboss.tools.ws.jaxrs.core.internal.metamodel.builder.JavaElementChangedBuildJob.java
License:Open Source License
protected IStatus run(final IProgressMonitor progressMonitor) { final long startTime = new Date().getTime(); IJavaElement element = null; try {/*from w w w.j a v a2 s .c o m*/ progressMonitor.beginTask("Building JAX-RS Metamodel", 3 * SCALE); progressMonitor.worked(SCALE); Logger.debug("Building JAX-RS Metamodel after: {}", event); if (progressMonitor.isCanceled()) { return Status.CANCEL_STATUS; } // scan and filter delta, retrieve a list of java changes final List<JavaElementChangedEvent> affectedJavaElements = new JavaElementDeltaScanner() .scanAndFilterEvent(event, new SubProgressMonitor(progressMonitor, SCALE)); if (affectedJavaElements.isEmpty()) { Logger.debug("* No relevant affected element to process *"); return Status.OK_STATUS; } if (progressMonitor.isCanceled()) { return Status.CANCEL_STATUS; } for (JavaElementChangedEvent delta : affectedJavaElements) { element = delta.getElement(); final IJavaProject javaProject = element.getJavaProject(); final JaxrsMetamodel metamodel = JaxrsMetamodelLocator.get(javaProject, true); // prevent NPE when opening a closed project (ie, there's no metamodel yet). if (metamodel != null) { try { metamodel.processJavaElementChange(delta, progressMonitor); if (progressMonitor.isCanceled()) { return Status.CANCEL_STATUS; } } catch (Exception e) { final IStatus status = Logger.error("Failed to build or refresh the JAX-RS metamodel", e); metamodel.setBuildStatus(status); return status; } finally { if (Logger.isDebugEnabled()) { Logger.debug(metamodel.getStatus()); } } } } } catch (Exception e) { Logger.error("Failed to process Java element change", e); if (element != null) { return new Status(IStatus.ERROR, JBossJaxrsCorePlugin.PLUGIN_ID, "Failed to build or refresh the JAX-RS metamodel while processing " + element.getElementName() + " in project " + element.getAncestor(IJavaElement.JAVA_PROJECT).getElementName(), e); } else { return new Status(IStatus.ERROR, JBossJaxrsCorePlugin.PLUGIN_ID, "Failed to build or refresh the JAX-RS metamodel while processing a change in the Java Model", e); } } finally { progressMonitor.done(); long endTime = new Date().getTime(); if (Logger.isDebugEnabled()) { Logger.debug("Java element changes processed in {} ms.", (endTime - startTime)); } } return Status.OK_STATUS; }
From source file:org.jboss.tools.ws.jaxrs.core.internal.metamodel.builder.JavaElementChangedBuildTask.java
License:Open Source License
public IStatus execute(final IProgressMonitor progressMonitor) { final long startTime = new Date().getTime(); IJavaElement element = null; try {/*from w ww . j av a2 s . c o m*/ progressMonitor.beginTask("Building JAX-RS Metamodel", 3 * SCALE); progressMonitor.worked(SCALE); Logger.debug("Building JAX-RS Metamodel after: {}", event); if (progressMonitor.isCanceled()) { return Status.CANCEL_STATUS; } // scan and filter delta, retrieve a list of java changes final List<JavaElementChangedEvent> affectedJavaElements = new JavaElementDeltaScanner() .scanAndFilterEvent(event, new SubProgressMonitor(progressMonitor, SCALE)); if (affectedJavaElements.isEmpty()) { Logger.debug("* No relevant affected element to process *"); return Status.OK_STATUS; } if (progressMonitor.isCanceled()) { return Status.CANCEL_STATUS; } for (JavaElementChangedEvent delta : affectedJavaElements) { element = delta.getElement(); final IJavaProject javaProject = element.getJavaProject(); final JaxrsMetamodel metamodel = JaxrsMetamodelLocator.get(javaProject, true); // prevent NPE when opening a closed project (ie, there's no metamodel yet). if (metamodel != null) { try { metamodel.processJavaElementChange(delta, progressMonitor); if (progressMonitor.isCanceled()) { return Status.CANCEL_STATUS; } } catch (Throwable e) { final IStatus status = Logger.error("Failed to build or refresh the JAX-RS metamodel", e); metamodel.setBuildStatus(status); return status; } finally { if (Logger.isDebugEnabled()) { Logger.debug(metamodel.getStatus()); } } } } } catch (Exception e) { if (element != null) { return new Status(IStatus.ERROR, JBossJaxrsCorePlugin.PLUGIN_ID, "Failed to build or refresh the JAX-RS metamodel while processing " + element.getElementName() + " in project " + element.getAncestor(IJavaElement.JAVA_PROJECT).getElementName(), e); } else { return new Status(IStatus.ERROR, JBossJaxrsCorePlugin.PLUGIN_ID, "Failed to build or refresh the JAX-RS metamodel while processing a change in the Java Model", e); } } finally { progressMonitor.done(); long endTime = new Date().getTime(); if (Logger.isDebugEnabled()) { Logger.debug("Java element changes processed in {} ms.", (endTime - startTime)); } } return Status.OK_STATUS; }
From source file:org.jboss.tools.ws.jaxrs.core.internal.metamodel.domain.JaxrsElementFactory.java
License:Open Source License
private static Set<IJaxrsElement> internalCreateElements(final IJavaElement scope, final CompilationUnit ast, final JaxrsMetamodel metamodel, final IProgressMonitor progressMonitor) throws CoreException { if (scope.getElementType() == IJavaElement.PACKAGE_FRAGMENT_ROOT && ((IPackageFragmentRoot) scope).isArchive()) { Logger.debug("Ignoring archive {}", scope.getElementName()); return Collections.emptySet(); }/*from w w w .ja v a2s . c o m*/ final Set<IJaxrsElement> elements = new HashSet<IJaxrsElement>(); // let's see if the given scope contains JAX-RS Application final Set<IType> matchingApplicationTypes = JavaElementsSearcher.findApplicationTypes(scope, progressMonitor); for (IType type : matchingApplicationTypes) { final JaxrsJavaApplication application = JaxrsJavaApplication.from(type).withMetamodel(metamodel) .build(); if (application != null) { elements.add(application); } } // let's see if the given scope contains JAX-RS HTTP Methods final Set<IType> matchingHttpMethodTypes = JavaElementsSearcher.findHttpMethodTypes(scope, progressMonitor); for (IType type : matchingHttpMethodTypes) { final JaxrsHttpMethod httpMethod = JaxrsHttpMethod.from(type).withMetamodel(metamodel).build(); if (httpMethod != null) { elements.add(httpMethod); } } // let's see if the given scope contains JAX-RS Name Bindings final Set<IType> matchingNameBindingsTypes = JavaElementsSearcher.findNameBindingTypes(scope, progressMonitor); for (IType type : matchingNameBindingsTypes) { final JaxrsNameBinding nameBinding = JaxrsNameBinding.from(type).withMetamodel(metamodel).build(); if (nameBinding != null) { elements.add(nameBinding); } } // let's see if the given scope contains JAX-RS Resources final Set<IType> matchingResourceTypes = JavaElementsSearcher.findResourceTypes(scope, progressMonitor); for (IType type : matchingResourceTypes) { final JaxrsResource resource = JaxrsResource.from(type, metamodel.findAllHttpMethodNames()) .withMetamodel(metamodel).build(); if (resource != null) { elements.add(resource); elements.addAll(resource.getAllMethods()); elements.addAll(resource.getAllFields()); } } // now,let's see if the given type can be a ParamConverterProvider final Set<IType> matchingParamConverterProviderTypes = JavaElementsSearcher .findParamConverterProviderTypes(scope, progressMonitor); for (IType type : matchingParamConverterProviderTypes) { final JaxrsParamConverterProvider paramConverterProvider = JaxrsParamConverterProvider.from(type) .withMetamodel(metamodel).build(); if (paramConverterProvider != null) { elements.add(paramConverterProvider); } } // now,let's see if the given type can be a Parameter Aggregator final Set<IType> matchingParameterAggregatorTypes = JavaElementsSearcher.findParameterAggregatorTypes(scope, progressMonitor); for (IType type : matchingParameterAggregatorTypes) { final JaxrsParameterAggregator parameterAggregator = JaxrsParameterAggregator.from(type) .buildInMetamodel(metamodel); if (parameterAggregator != null) { elements.add(parameterAggregator); elements.addAll(parameterAggregator.getAllProperties()); elements.addAll(parameterAggregator.getAllFields()); } } // let's see if the given scope contains JAX-RS Providers final Set<IType> matchingProviderTypes = JavaElementsSearcher.findProviderTypes(scope, progressMonitor); for (IType type : matchingProviderTypes) { final JaxrsProvider provider = JaxrsProvider.from(type).withMetamodel(metamodel).build(); if (provider != null) { elements.add(provider); } } return elements; }
From source file:org.jboss.tools.ws.jaxrs.core.internal.metamodel.search.JavaElementsSearcher.java
License:Open Source License
/** * Returns all JAX-RS Applications types in the given scope (ex. : javaProject), ie., types annotated with * <code>javax.ws.rs.ApplicationPath</code> annotation and subtypes of * {@link javax.ws.rs.Application} (even if type hierarchy or annotation is missing). * // w w w . ja v a2 s . c om * * @param scope * the search scope (project, compilation unit, type, etc.) * @param progressMonitor * the progress monitor * @return the JAX-RS Application types * @throws CoreException * in case of exception */ public static Set<IType> findApplicationTypes(final IJavaElement scope, final IProgressMonitor progressMonitor) throws CoreException { final long start = System.currentTimeMillis(); try { // FIXME: need correct usage of progressmonitor/subprogress monitor // first, search for type annotated with // <code>javax.ws.rs.ApplicationPath</code> final IJavaSearchScope searchScope = createSearchScope(scope); final Set<IType> applicationTypes = searchForAnnotatedTypes(APPLICATION_PATH, searchScope, progressMonitor); // the search result also includes all subtypes of // javax.ws.rs.core.Application (while avoiding duplicate results) final List<IType> applicationSubtypes = findSubtypes(scope, APPLICATION, progressMonitor); applicationTypes.addAll(CollectionUtils.difference(applicationSubtypes, applicationTypes)); return applicationTypes; } finally { final long end = System.currentTimeMillis(); Logger.tracePerf("Found Application types in scope {} in {}ms", scope.getElementName(), (end - start)); } }