Example usage for org.eclipse.jdt.core IJavaElementDelta F_CLASSPATH_CHANGED

List of usage examples for org.eclipse.jdt.core IJavaElementDelta F_CLASSPATH_CHANGED

Introduction

In this page you can find the example usage for org.eclipse.jdt.core IJavaElementDelta F_CLASSPATH_CHANGED.

Prototype

int F_CLASSPATH_CHANGED

To view the source code for org.eclipse.jdt.core IJavaElementDelta F_CLASSPATH_CHANGED.

Click Source Link

Document

Change flag indicating that the IJavaProject#getRawClasspath() raw classpath (or the IJavaProject#getOutputLocation() output folder ) of a project has changed.

Usage

From source file:com.blackducksoftware.integration.eclipseplugin.internal.listeners.ProjectDependenciesChangedListener.java

License:Apache License

private boolean isClasspathChanged(final int flags) {
    return 0 != (flags
            & (IJavaElementDelta.F_CLASSPATH_CHANGED | IJavaElementDelta.F_RESOLVED_CLASSPATH_CHANGED));
}

From source file:com.blackducksoftware.integration.eclipseplugin.internal.listeners.ProjectDependenciesChangedListenerTest.java

License:Apache License

@Test
public void testDependencyRemovedFromClasspath() throws CoreException, MalformedURLException {
    setUpAllStubs();//w w w .  j  a  v  a 2  s .co  m
    Mockito.when(projectDelta.getFlags()).thenReturn(IJavaElementDelta.F_CLASSPATH_CHANGED);
    Mockito.when(mavenRootDelta.getFlags()).thenReturn(IJavaElementDelta.F_REMOVED_FROM_CLASSPATH);
    Mockito.when(mavenRootDelta.getKind()).thenReturn(0);
    Mockito.when(gradleRootDelta.getFlags()).thenReturn(0);
    Mockito.when(gradleRootDelta.getKind()).thenReturn(IJavaElementDelta.ADDED);
    Mockito.when(nonBinaryRootDelta.getKind()).thenReturn(IJavaElementDelta.CHANGED);
    Mockito.when(nonBinaryRootDelta.getFlags()).thenReturn(0);
    final ProjectDependenciesChangedListener listener = new ProjectDependenciesChangedListener(information,
            extractor, depService);
    listener.elementChanged(e);
    Mockito.verify(information, Mockito.times(0)).addComponentToProject(PROJECT_NAME,
            new Gav("maven", mavenGav.getGroupId(), mavenGav.getArtifactId(), mavenGav.getVersion()));
    Mockito.verify(information, Mockito.times(1)).removeComponentFromProject(PROJECT_NAME, mavenGav);
    Mockito.verify(information, Mockito.times(1)).addComponentToProject(PROJECT_NAME,
            new Gav("maven", gradleGav.getGroupId(), gradleGav.getArtifactId(), gradleGav.getVersion()));
    Mockito.verify(information, Mockito.times(0)).removeComponentFromProject(PROJECT_NAME, gradleGav);
    Mockito.verify(extractor, Mockito.times(0)).getGradlePathGav(NON_BINARY_PATH_URL);
    Mockito.verify(extractor, Mockito.times(0)).getMavenPathGav(NON_BINARY_PATH_URL, MAVEN_REPO_PATH_URL);
    Mockito.verify(depService, Mockito.times(1)).isGradleDependency(NON_BINARY_PATH_URL);
    Mockito.verify(depService, Mockito.times(1)).isMavenDependency(NON_BINARY_PATH_URL);
}

From source file:com.codenvy.ide.ext.java.server.internal.core.JavaElementDelta.java

License:Open Source License

protected boolean toDebugString(StringBuffer buffer, int flags) {
    boolean prev = super.toDebugString(buffer, flags);

    if ((flags & IJavaElementDelta.F_CHILDREN) != 0) {
        if (prev)
            buffer.append(" | "); //$NON-NLS-1$
        buffer.append("CHILDREN"); //$NON-NLS-1$
        prev = true;// w  w  w . j  a v  a2  s  . c  o m
    }
    if ((flags & IJavaElementDelta.F_CONTENT) != 0) {
        if (prev)
            buffer.append(" | "); //$NON-NLS-1$
        buffer.append("CONTENT"); //$NON-NLS-1$
        prev = true;
    }
    if ((flags & IJavaElementDelta.F_MOVED_FROM) != 0) {
        if (prev)
            buffer.append(" | "); //$NON-NLS-1$
        buffer.append("MOVED_FROM(" + ((JavaElement) getMovedFromElement()).toStringWithAncestors() + ")"); //$NON-NLS-1$ //$NON-NLS-2$
        prev = true;
    }
    if ((flags & IJavaElementDelta.F_MOVED_TO) != 0) {
        if (prev)
            buffer.append(" | "); //$NON-NLS-1$
        buffer.append("MOVED_TO(" + ((JavaElement) getMovedToElement()).toStringWithAncestors() + ")"); //$NON-NLS-1$ //$NON-NLS-2$
        prev = true;
    }
    if ((flags & IJavaElementDelta.F_ADDED_TO_CLASSPATH) != 0) {
        if (prev)
            buffer.append(" | "); //$NON-NLS-1$
        buffer.append("ADDED TO CLASSPATH"); //$NON-NLS-1$
        prev = true;
    }
    if ((flags & IJavaElementDelta.F_REMOVED_FROM_CLASSPATH) != 0) {
        if (prev)
            buffer.append(" | "); //$NON-NLS-1$
        buffer.append("REMOVED FROM CLASSPATH"); //$NON-NLS-1$
        prev = true;
    }
    if ((flags & IJavaElementDelta.F_REORDER) != 0) {
        if (prev)
            buffer.append(" | "); //$NON-NLS-1$
        buffer.append("REORDERED"); //$NON-NLS-1$
        prev = true;
    }
    if ((flags & IJavaElementDelta.F_ARCHIVE_CONTENT_CHANGED) != 0) {
        if (prev)
            buffer.append(" | "); //$NON-NLS-1$
        buffer.append("ARCHIVE CONTENT CHANGED"); //$NON-NLS-1$
        prev = true;
    }
    if ((flags & IJavaElementDelta.F_SOURCEATTACHED) != 0) {
        if (prev)
            buffer.append(" | "); //$NON-NLS-1$
        buffer.append("SOURCE ATTACHED"); //$NON-NLS-1$
        prev = true;
    }
    if ((flags & IJavaElementDelta.F_SOURCEDETACHED) != 0) {
        if (prev)
            buffer.append(" | "); //$NON-NLS-1$
        buffer.append("SOURCE DETACHED"); //$NON-NLS-1$
        prev = true;
    }
    if ((flags & IJavaElementDelta.F_FINE_GRAINED) != 0) {
        if (prev)
            buffer.append(" | "); //$NON-NLS-1$
        buffer.append("FINE GRAINED"); //$NON-NLS-1$
        prev = true;
    }
    if ((flags & IJavaElementDelta.F_PRIMARY_WORKING_COPY) != 0) {
        if (prev)
            buffer.append(" | "); //$NON-NLS-1$
        buffer.append("PRIMARY WORKING COPY"); //$NON-NLS-1$
        prev = true;
    }
    if ((flags & IJavaElementDelta.F_CLASSPATH_CHANGED) != 0) {
        if (prev)
            buffer.append(" | "); //$NON-NLS-1$
        buffer.append("RAW CLASSPATH CHANGED"); //$NON-NLS-1$
        prev = true;
    }
    if ((flags & IJavaElementDelta.F_RESOLVED_CLASSPATH_CHANGED) != 0) {
        if (prev)
            buffer.append(" | "); //$NON-NLS-1$
        buffer.append("RESOLVED CLASSPATH CHANGED"); //$NON-NLS-1$
        prev = true;
    }
    if ((flags & IJavaElementDelta.F_PRIMARY_RESOURCE) != 0) {
        if (prev)
            buffer.append(" | "); //$NON-NLS-1$
        buffer.append("PRIMARY RESOURCE"); //$NON-NLS-1$
        prev = true;
    }
    if ((flags & IJavaElementDelta.F_OPENED) != 0) {
        if (prev)
            buffer.append(" | "); //$NON-NLS-1$
        buffer.append("OPENED"); //$NON-NLS-1$
        prev = true;
    }
    if ((flags & IJavaElementDelta.F_CLOSED) != 0) {
        if (prev)
            buffer.append(" | "); //$NON-NLS-1$
        buffer.append("CLOSED"); //$NON-NLS-1$
        prev = true;
    }
    if ((flags & IJavaElementDelta.F_AST_AFFECTED) != 0) {
        if (prev)
            buffer.append(" | "); //$NON-NLS-1$
        buffer.append("AST AFFECTED"); //$NON-NLS-1$
        prev = true;
    }
    if ((flags & IJavaElementDelta.F_CATEGORIES) != 0) {
        if (prev)
            buffer.append(" | "); //$NON-NLS-1$
        buffer.append("CATEGORIES"); //$NON-NLS-1$
        prev = true;
    }
    if ((flags & IJavaElementDelta.F_ANNOTATIONS) != 0) {
        if (prev)
            buffer.append(" | "); //$NON-NLS-1$
        buffer.append("ANNOTATIONS"); //$NON-NLS-1$
        prev = true;
    }
    return prev;
}

From source file:com.google.gdt.eclipse.core.java.ClasspathChangedListener.java

License:Open Source License

public void elementChanged(ElementChangedEvent event) {
    for (IJavaElementDelta delta : event.getDelta().getChangedChildren()) {
        int flags = delta.getFlags();
        if ((flags & IJavaElementDelta.F_CLASSPATH_CHANGED) != 0) {
            IJavaElement element = delta.getElement();
            if (element.getElementType() != IJavaElement.JAVA_PROJECT) {
                continue;
            }//from   w w  w.ja  va 2  s. c  om

            classpathChanged((IJavaProject) element);
        }
    }
}

From source file:com.google.gdt.eclipse.managedapis.impl.ManagedApiChangeListener.java

License:Open Source License

/**
 * Implements the standard elementChanged method defined by the
 * IElementChangedListener, this method identifies events of importance to a
 * specific ManagedApiProject and calls the appropriate abstract method on a
 * match./*from w w w.  jav a 2s .  co  m*/
 */
public void elementChanged(ElementChangedEvent event) {
    if (managedApiProject == null) {
        throw new IllegalStateException("managedApiProject must be set prior to registering the listener");
    }

    for (IJavaElementDelta delta : event.getDelta().getRemovedChildren()) {
        int flags = delta.getFlags();
        if (flags == 0) {
            IJavaElement element = delta.getElement();
            IJavaProject javaProject = (IJavaProject) element.getAdapter(IJavaProject.class);
            if (javaProject != null) {
                IProject project = javaProject.getProject();
                if (project.equals(managedApiProject.getJavaProject().getProject())) {
                    managedApiProjectRemoved();
                }
            }
        }
    }

    for (IJavaElementDelta delta : event.getDelta().getChangedChildren()) {
        int flags = delta.getFlags();
        if ((flags & IJavaElementDelta.F_CLASSPATH_CHANGED) != 0) {
            IJavaElement element = delta.getElement();
            if (element.getElementType() == IJavaElement.JAVA_PROJECT
                    && element.equals(managedApiProject.getJavaProject())) {
                Set<ManagedApi> managedApiRemovalSet = new HashSet<ManagedApi>(
                        delta.getChangedChildren().length);
                List<String> managedApiFolderNames = new ArrayList();
                for (IJavaElementDelta childDelta : delta.getChangedChildren()) {
                    if ((childDelta.getFlags() & IJavaElementDelta.F_REMOVED_FROM_CLASSPATH) != 0) {
                        IJavaElement childElement = childDelta.getElement();
                        if (childElement.getElementType() == IJavaElement.PACKAGE_FRAGMENT_ROOT
                                && managedApiProject.isPackageFragmentRootInManagedApi(
                                        (IPackageFragmentRoot) childElement)) {
                            String managedApiFolderName = managedApiProject
                                    .getPathRelativeToManagedApiRoot((IPackageFragmentRoot) childElement);
                            if (!managedApiFolderNames.contains(managedApiFolderName)) {
                                managedApiFolderNames.add(managedApiFolderName);
                                managedApiRemovalSet
                                        .add(managedApiProject.createManagedApi(managedApiFolderName));
                            }
                        }
                    }
                }
                if (managedApiRemovalSet.size() > 0) {
                    managedApiRemoved(
                            managedApiRemovalSet.toArray(new ManagedApiImpl[managedApiRemovalSet.size()]));
                }
            }
        } else if ((flags & IJavaElementDelta.F_CLOSED) != 0) {
            IJavaElement element = delta.getElement();
            if (element.getElementType() == IJavaElement.JAVA_PROJECT
                    && element.equals(managedApiProject.getJavaProject())) {
                managedApiProjectClosed();
            }
        }
    }
}

From source file:com.google.gdt.eclipse.suite.launch.processors.LaunchConfigAffectingChangesListener.java

License:Open Source License

public void elementChanged(ElementChangedEvent event) {
    for (IJavaElementDelta delta : event.getDelta().getAffectedChildren()) {
        int flags = delta.getFlags();
        if ((flags & IJavaElementDelta.F_CLASSPATH_CHANGED) != 0) {
            IJavaElement element = delta.getElement();
            if (element.getElementType() != IJavaElement.JAVA_PROJECT) {
                continue;
            }//from w w  w .j  a  v a  2  s  . c o  m

            updateLaunchConfigs((IJavaProject) element);
        }
    }
}

From source file:net.rim.ejde.internal.core.BasicClasspathElementChangedListener.java

License:Open Source License

public void elementChanged(ElementChangedEvent event) {
    IJavaElementDelta[] children = event.getDelta().getChangedChildren(); // children = IProjects
    for (IJavaElementDelta child : children) {
        IProject project = child.getElement().getJavaProject().getProject();
        int size = child.getAffectedChildren().length; // .getChangedElement() = JavaProject
        if (size == 1) {
            IJavaElementDelta elementDelta = child.getAffectedChildren()[0]; // if it is only 1, name is ".tmp"
            // and elementDelta.kind = 4
            // (CHANGED)
            IJavaElement changedElement = elementDelta.getElement();
            if (changedElement.getElementName()
                    .equals(ImportUtils.getImportPref(ResourceBuilder.LOCALE_INTERFACES_FOLDER_NAME))) {
                _changedBuildClasspath.put(project.getName(), Boolean.FALSE);
                break;
            }/* w  w  w  .java2  s. c  o  m*/
        }
        if (isClasspathChange(child)) {// adding classpath entries might induce reordering the classpath entries
            _changedBuildClasspath.put(project.getName(), Boolean.TRUE);
            // notify the listeners
            EJDEEventNotifier.getInstance().notifyClassPathChanged(child.getElement().getJavaProject(),
                    hasCPRemoved(child));
            // validate the project
            ValidationManager.getInstance().validateProjects(ProjectUtils.getAllReferencingProjects(
                    new IProject[] { child.getElement().getJavaProject().getProject() }), null);
        }
        if ((child.getFlags() & IJavaElementDelta.F_CLASSPATH_CHANGED) != 0
                || (child.getFlags() & IJavaElementDelta.F_RESOLVED_CLASSPATH_CHANGED) != 0) {
            IJavaElement javaElement = child.getElement();
            final IJavaProject javaProject = javaElement.getJavaProject();
            classPathChanged(javaProject, child);
        }
        checkSourceAttachement(child.getAffectedChildren());
    }

    for (final IJavaElementDelta addedElemDelta : event.getDelta().getAddedChildren()) {
        final IJavaProject javaProject = addedElemDelta.getElement().getJavaProject();
        try {
            if (javaProject.getProject().hasNature(BlackBerryProjectCoreNature.NATURE_ID)) {
                if (addedElemDelta.getAffectedChildren().length == 0) {
                    final IJavaElement addedElement = addedElemDelta.getElement();
                    if (addedElement instanceof IJavaProject) {
                        final IJavaProject addedJavaProj = (IJavaProject) addedElement;
                        if (addedJavaProj.equals(javaProject)) {
                            projectCreated(javaProject);
                        }
                    }
                }
            }
        } catch (final CoreException ce) {
            _log.error("", ce);
        }
    }
}

From source file:org.codehaus.groovy.eclipse.dsl.DSLDElementListener.java

License:Apache License

private boolean isResolvedClasspathChangeNotRawClasspath(IJavaElementDelta delta) {
    return (delta.getFlags() & IJavaElementDelta.F_RESOLVED_CLASSPATH_CHANGED) != 0
            && (delta.getFlags() & IJavaElementDelta.F_CLASSPATH_CHANGED) == 0;
}

From source file:org.eclipse.fx.ide.jdt.core.internal.JavaFXClasspathContainerInitializer.java

License:Open Source License

@Override
public void initialize(IPath containerPath, IJavaProject project) throws CoreException {
    if (isValidJUnitContainerPath(containerPath)) {
        final JavaFXContainer container = getNewContainer(containerPath, project);
        JavaCore.setClasspathContainer(containerPath, new IJavaProject[] { project },
                new IClasspathContainer[] { container }, null);
    }//from   w w  w .j a v  a 2s  .c  o m

    // register update hook
    IElementChangedListener listener = new IElementChangedListener() {

        @Override
        public void elementChanged(ElementChangedEvent event) {
            if (event.getDelta().getKind() == IJavaElementDelta.CHANGED && (event.getDelta().getFlags()
                    & IJavaElementDelta.F_CHILDREN) == IJavaElementDelta.F_CHILDREN) {
                // change on JavaModel
                for (IJavaElementDelta delta : event.getDelta().getAffectedChildren()) {
                    if ((delta.getFlags()
                            & IJavaElementDelta.F_CLASSPATH_CHANGED) == IJavaElementDelta.F_CLASSPATH_CHANGED) {
                        // classpath change on ??
                        if (delta.getElement().getElementType() == IJavaElement.JAVA_PROJECT
                                && delta.getElement().getJavaProject().equals(project)) {
                            // classpath change
                            try {
                                requestClasspathContainerUpdate(containerPath, project, null);
                            } catch (CoreException e) {
                                e.printStackTrace();
                            }
                        }

                    }
                }

            }
        }
    };
    JavaCore.addElementChangedListener(listener);
    // TODO remove listener

}

From source file:org.eclipse.jem.workbench.utility.JavaModelListener.java

License:Open Source License

/**
 * Answer whether the change is this is a raw classpath change, or if a file that is in the root of the project was changed that also can mean a
 * raw classpath change. This must only be called for a delta that is for an {@link IJavaProject}.
 * <p>/*  w w w .ja  v  a  2  s  . c o m*/
 * See {@link IJavaElementDelta.#F_CLASSPATH_CHANGED} and {@link #isAlsoClasspathChange(IPath)} for details.
 * 
 * @param delta
 * @return
 * 
 * @since 1.2.0
 */
protected boolean isClasspathResourceChange(IJavaElementDelta delta) {
    if ((delta.getFlags() & IJavaElementDelta.F_CLASSPATH_CHANGED) != 0)
        return true;
    IResourceDelta[] resources = delta.getResourceDeltas();
    if (resources == null)
        return false;
    IPath path = null;
    for (int i = 0; i < resources.length; i++) {
        if (resources[i].getKind() == IResourceDelta.CHANGED) {
            path = resources[i].getProjectRelativePath();
            if (isAlsoClasspathChange(path))
                return true;
        }
    }
    return false;
}