Example usage for org.eclipse.jdt.core IJavaElement getElementName

List of usage examples for org.eclipse.jdt.core IJavaElement getElementName

Introduction

In this page you can find the example usage for org.eclipse.jdt.core IJavaElement getElementName.

Prototype

String getElementName();

Source Link

Document

Returns the name of this element.

Usage

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));
    }
}