Cleanup StandardModelElementContentProvider
Change-Id: I082fc398031f93e333275bc29c3fbc6e664e2234
Signed-off-by: Dawid Pakuła <zulus@w3des.net>
diff --git a/core/plugins/org.eclipse.dltk.ui/src/org/eclipse/dltk/internal/ui/StandardModelElementContentProvider.java b/core/plugins/org.eclipse.dltk.ui/src/org/eclipse/dltk/internal/ui/StandardModelElementContentProvider.java
index 2d3f895..7135124 100644
--- a/core/plugins/org.eclipse.dltk.ui/src/org/eclipse/dltk/internal/ui/StandardModelElementContentProvider.java
+++ b/core/plugins/org.eclipse.dltk.ui/src/org/eclipse/dltk/internal/ui/StandardModelElementContentProvider.java
@@ -3,7 +3,7 @@
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License v. 2.0 which is available at
* http://www.eclipse.org/legal/epl-2.0.
- *
+ *
* SPDX-License-Identifier: EPL-2.0
*
* Contributors:
@@ -12,6 +12,7 @@
package org.eclipse.dltk.internal.ui;
import java.util.ArrayList;
+import java.util.Arrays;
import java.util.Collections;
import java.util.List;
@@ -89,16 +90,15 @@
* </p>
*
*/
-public class StandardModelElementContentProvider
- implements ITreeContentProvider, IWorkingCopyProvider {
+public class StandardModelElementContentProvider implements ITreeContentProvider, IWorkingCopyProvider {
protected static final Object[] NO_CHILDREN = new Object[0];
protected boolean fProvideMembers;
protected boolean fProvideWorkingCopy;
/**
- * Creates a new content provider. The content provider does not provide
- * members of compilation units or class files.
+ * Creates a new content provider. The content provider does not provide members
+ * of compilation units or class files.
*/
public StandardModelElementContentProvider() {
this(false);
@@ -107,9 +107,8 @@
/**
* Creates a new <code>StandardJavaElementContentProvider</code>.
*
- * @param provideMembers
- * if <code>true</code> members below compilation
- * units and class files are provided.
+ * @param provideMembers if <code>true</code> members below compilation units
+ * and class files are provided.
*/
public StandardModelElementContentProvider(boolean provideMembers) {
fProvideMembers = provideMembers;
@@ -117,24 +116,23 @@
}
/**
- * Returns whether members are provided when asking for a compilation units
- * or class file for its children.
+ * Returns whether members are provided when asking for a compilation units or
+ * class file for its children.
*
- * @return <code>true</code> if the content provider provides members;
- * otherwise <code>false</code> is returned
+ * @return <code>true</code> if the content provider provides members; otherwise
+ * <code>false</code> is returned
*/
public boolean getProvideMembers() {
return fProvideMembers;
}
/**
- * Sets whether the content provider is supposed to return members when
- * asking a compilation unit or class file for its children.
+ * Sets whether the content provider is supposed to return members when asking a
+ * compilation unit or class file for its children.
*
- * @param b
- * if <code>true</code> then members are provided. If
- * <code>false</code> compilation units and class files are the
- * leaves provided by this content provider.
+ * @param b if <code>true</code> then members are provided. If
+ * <code>false</code> compilation units and class files are the leaves
+ * provided by this content provider.
*/
public void setProvideMembers(boolean b) {
fProvideMembers = b;
@@ -159,13 +157,12 @@
}
public Object[] getExtendedChildren(Object element, Object[] children) {
- final IModelContentProvider[] providers = UIModelProviderManager
- .getContentProviders(getToolkitID(element));
+ final IModelContentProvider[] providers = UIModelProviderManager.getContentProviders(getToolkitID(element));
if (providers.length > 0) {
final List<Object> elements = new ArrayList<>(children.length + 2);
Collections.addAll(elements, children);
- for (int i = 0; i < providers.length; i++) {
- providers[i].provideModelChanges(element, elements, this);
+ for (IModelContentProvider provider : providers) {
+ provider.provideModelChanges(element, elements, this);
}
return elements.toArray();
}
@@ -174,8 +171,7 @@
private String getToolkitID(Object element) {
if (element instanceof IModelElement) {
- IDLTKLanguageToolkit toolkit = DLTKLanguageManager
- .getLanguageToolkit((IModelElement) element);
+ IDLTKLanguageToolkit toolkit = DLTKLanguageManager.getLanguageToolkit((IModelElement) element);
if (toolkit != null) {
return toolkit.getNatureId();
}
@@ -184,11 +180,10 @@
}
public Object getExtendedParent(Object element) {
- IModelContentProvider[] providers = UIModelProviderManager
- .getContentProviders(getToolkitID(element));
+ IModelContentProvider[] providers = UIModelProviderManager.getContentProviders(getToolkitID(element));
if (providers.length > 0) {
- for (int i = 0; i < providers.length; i++) {
- Object parent = providers[i].getParentElement(element, this);
+ for (IModelContentProvider provider : providers) {
+ Object parent = provider.getParentElement(element, this);
if (parent != null) {
return parent;
}
@@ -197,9 +192,6 @@
return null;
}
- /*
- * (non-Javadoc) Method declared on ITreeContentProvider.
- */
@Override
public Object[] getChildren(Object element) {
if (!exists(element))
@@ -207,33 +199,21 @@
try {
if (element instanceof IScriptModel)
- return getExtendedChildren(element,
- getScriptProjects((IScriptModel) element));
+ return getExtendedChildren(element, getScriptProjects((IScriptModel) element));
if (element instanceof IScriptProject)
- return getExtendedChildren(element,
- getProjectFragments((IScriptProject) element));
+ return getExtendedChildren(element, getProjectFragments((IScriptProject) element));
if (element instanceof IProjectFragment)
- return getExtendedChildren(element,
- getProjectFragmentContent((IProjectFragment) element));
+ return getExtendedChildren(element, getProjectFragmentContent((IProjectFragment) element));
if (element instanceof IScriptFolder)
- return getExtendedChildren(element,
- getScriptFolderContent((IScriptFolder) element));
+ return getExtendedChildren(element, getScriptFolderContent((IScriptFolder) element));
if (element instanceof IFolder)
- return getExtendedChildren(element,
- getFolderContent((IFolder) element));
- //
- // if (element instanceof IJarEntryResource) {
- // return ((IJarEntryResource) element).getChildren();
- // }
- //
- if (getProvideMembers() && element instanceof ISourceReference
- && element instanceof IParent) {
- return getExtendedChildren(element,
- ((IParent) element).getChildren());
+ return getExtendedChildren(element, getFolderContent((IFolder) element));
+ if (getProvideMembers() && element instanceof ISourceReference && element instanceof IParent) {
+ return getExtendedChildren(element, ((IParent) element).getChildren());
}
} catch (CoreException e) {
if (DLTKCore.DEBUG) {
@@ -244,11 +224,6 @@
return getExtendedChildren(element, NO_CHILDREN);
}
- /*
- * (non-Javadoc)
- *
- * @see ITreeContentProvider
- */
@Override
public boolean hasChildren(Object element) {
if (getProvideMembers()) {
@@ -283,9 +258,6 @@
return (children != null) && children.length > 0;
}
- /*
- * (non-Javadoc) Method declared on ITreeContentProvider.
- */
@Override
public Object getParent(Object element) {
if (!exists(element))
@@ -298,38 +270,32 @@
}
/**
- * Evaluates all children of a given {@link IPackageFragmentRoot}. Clients
- * can override this method.
+ * Evaluates all children of a given {@link IPackageFragmentRoot}. Clients can
+ * override this method.
*
- * @param root
- * The root to evaluate the children for.
+ * @param root The root to evaluate the children for.
* @return The children of the root
- * @exception JavaModelException
- * if the package fragment root does not
- * exist or if an exception occurs while
- * accessing its corresponding resource
+ * @exception JavaModelException if the package fragment root does not exist or
+ * if an exception occurs while accessing its
+ * corresponding resource
*
*/
- protected Object[] getProjectFragmentContent(IProjectFragment root)
- throws ModelException {
+ protected Object[] getProjectFragmentContent(IProjectFragment root) throws ModelException {
IModelElement[] fragments = root.getChildren();
List<IModelElement> newFragments = new ArrayList<>();
- for (int i = 0; i < fragments.length; ++i) {
- if (fragments[i] instanceof IScriptFolder) {
- IScriptFolder scriptFolder = ((IScriptFolder) fragments[i]);
+ for (IModelElement modelElement : fragments) {
+ if (modelElement instanceof IScriptFolder) {
+ IScriptFolder scriptFolder = ((IScriptFolder) modelElement);
if (scriptFolder.isRootFolder()) {
IModelElement[] children = scriptFolder.getChildren();
- for (int j = 0; j < children.length; ++j) {
- newFragments.add(children[j]);
- }
+ newFragments.addAll(Arrays.asList(children));
continue;
}
}
- newFragments.add(fragments[i]);
+ newFragments.add(modelElement);
}
- fragments = newFragments
- .toArray(new IModelElement[newFragments.size()]);
+ fragments = newFragments.toArray(new IModelElement[0]);
if (isProjectProjectFragment(root)) {
return fragments;
@@ -341,20 +307,17 @@
}
/**
- * Evaluates all children of a given {@link IJavaProject}. Clients can
- * override this method.
+ * Evaluates all children of a given {@link IJavaProject}. Clients can override
+ * this method.
*
- * @param project
- * The Java project to evaluate the children for.
+ * @param project The Java project to evaluate the children for.
* @return The children of the project. Typically these are package fragment
* roots but can also be other elements.
- * @exception JavaModelException
- * if the Java project does not exist or
- * if an exception occurs while accessing
- * its corresponding resource
+ * @exception JavaModelException if the Java project does not exist or if an
+ * exception occurs while accessing its
+ * corresponding resource
*/
- protected Object[] getProjectFragments(IScriptProject project)
- throws ModelException {
+ protected Object[] getProjectFragments(IScriptProject project) throws ModelException {
if (!project.getProject().isOpen())
return NO_CHILDREN;
@@ -362,21 +325,17 @@
List<Object> list = new ArrayList<>(roots.length);
// filter out package fragments that correspond to projects and
// replace them with the package fragments directly
- for (int i = 0; i < roots.length; i++) {
- IProjectFragment root = roots[i];
+ for (IProjectFragment root : roots) {
if (isProjectProjectFragment(root)) {
Object[] fragments = getProjectFragmentContent(root);
- for (int j = 0; j < fragments.length; j++) {
- list.add(fragments[j]);
- }
+
+ list.addAll(Arrays.asList(fragments));
} else {
list.add(root);
}
}
Object[] resources = project.getForeignResources();
- for (int i = 0; i < resources.length; i++) {
- list.add(resources[i]);
- }
+ list.addAll(Arrays.asList(resources));
return list.toArray();
}
@@ -384,8 +343,7 @@
* Note: This method is for internal use only. Clients should not call this
* method.
*/
- protected Object[] getScriptProjects(IScriptModel jm)
- throws ModelException {
+ protected Object[] getScriptProjects(IScriptModel jm) throws ModelException {
return jm.getScriptProjects();
}
@@ -393,35 +351,29 @@
* Evaluates all children of a given {@link IPackageFragment}. Clients can
* override this method.
*
- * @param fragment
- * The fragment to evaluate the children for.
+ * @param fragment The fragment to evaluate the children for.
* @return The children of the given package fragment.
- * @exception JavaModelException
- * if the package fragment does not exist
- * or if an exception occurs while
- * accessing its corresponding resource
+ * @exception JavaModelException if the package fragment does not exist or if an
+ * exception occurs while accessing its
+ * corresponding resource
*
* @since 3.3
*/
- protected Object[] getScriptFolderContent(IScriptFolder fragment)
- throws ModelException {
+ protected Object[] getScriptFolderContent(IScriptFolder fragment) throws ModelException {
// if (fragment.getKind() == IProjectFragment.K_SOURCE) {
- return concatenate(fragment.getSourceModules(),
- fragment.getForeignResources());
+ return concatenate(fragment.getSourceModules(), fragment.getForeignResources());
// }
// return concatenate(fragment.getClassFiles(),
// fragment.getForeignResources());
}
/**
- * Evaluates all children of a given {@link IFolder}. Clients can override
- * this method.
+ * Evaluates all children of a given {@link IFolder}. Clients can override this
+ * method.
*
- * @param folder
- * The folder to evaluate the children for.
+ * @param folder The folder to evaluate the children for.
* @return The children of the given package fragment.
- * @exception CoreException
- * if the folder does not exist.
+ * @exception CoreException if the folder does not exist.
*
*/
protected Object[] getFolderContent(IFolder folder) throws CoreException {
@@ -439,8 +391,7 @@
// We therefore exclude Java elements from the list
// of non-Java resources.
if (isFolderOnClasspath) {
- if (javaProject
- .findProjectFragment(member.getFullPath()) == null) {
+ if (javaProject.findProjectFragment(member.getFullPath()) == null) {
nonJavaResources.add(member);
}
} else if (!javaProject.isOnBuildpath(member)) {
@@ -457,8 +408,7 @@
protected boolean isBuildPathChange(IModelElementDelta delta) {
// need to test the flags only for package fragment roots
- if (delta.getElement()
- .getElementType() != IModelElement.PROJECT_FRAGMENT)
+ if (delta.getElement().getElementType() != IModelElement.PROJECT_FRAGMENT)
return false;
int flags = delta.getFlags();
@@ -482,13 +432,10 @@
* Note: This method is for internal use only. Clients should not call this
* method.
*/
- protected boolean isScriptFolderEmpty(IModelElement element)
- throws ModelException {
+ protected boolean isScriptFolderEmpty(IModelElement element) throws ModelException {
if (element instanceof IScriptFolder) {
IScriptFolder fragment = (IScriptFolder) element;
- if (fragment.exists()
- && !(fragment.hasChildren()
- || fragment.getForeignResources().length > 0)
+ if (fragment.exists() && !(fragment.hasChildren() || fragment.getForeignResources().length > 0)
&& fragment.hasSubfolders())
return true;
}
@@ -501,8 +448,7 @@
*/
protected boolean isProjectProjectFragment(IProjectFragment root) {
IScriptProject javaProject = root.getScriptProject();
- return javaProject != null
- && javaProject.getPath().equals(root.getPath());
+ return javaProject != null && javaProject.getPath().equals(root.getPath());
}
/**
@@ -546,17 +492,15 @@
}
// for ISourceModule in <default> IScriptFolders, tree parent is
// actually IProjectFragment
- if (parent instanceof IScriptFolder
- && parent.getPath().equals(parent.getParent().getPath())
- // unless source path is root of project path
- && !parent.getPath()
- .equals(parent.getScriptProject().getPath())) {
+ if (parent instanceof IScriptFolder && parent.getPath().equals(parent.getParent().getPath())
+ // unless source path is root of project path
+ && !parent.getPath().equals(parent.getScriptProject().getPath())) {
return parent.getParent();
}
return parent;
} /*
- * else if (element instanceof IJarEntryResource) { return
- * ((IJarEntryResource) element).getParent(); }
+ * else if (element instanceof IJarEntryResource) { return ((IJarEntryResource)
+ * element).getParent(); }
*/
return null;
}