X-Git-Url: http://git.phpeclipse.com diff --git a/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/core/PackageFragment.java b/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/core/PackageFragment.java index 2b559f5..3c275aa 100644 --- a/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/core/PackageFragment.java +++ b/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/core/PackageFragment.java @@ -10,357 +10,521 @@ *******************************************************************************/ package net.sourceforge.phpdt.internal.core; +import java.util.ArrayList; +import java.util.HashSet; +import java.util.Map; + import net.sourceforge.phpdt.core.ICompilationUnit; import net.sourceforge.phpdt.core.IJavaElement; -import net.sourceforge.phpdt.core.IJavaProject; import net.sourceforge.phpdt.core.IPackageFragment; import net.sourceforge.phpdt.core.IPackageFragmentRoot; import net.sourceforge.phpdt.core.JavaModelException; +import net.sourceforge.phpdt.core.WorkingCopyOwner; +import net.sourceforge.phpdt.internal.core.util.MementoTokenizer; +import net.sourceforge.phpdt.internal.core.util.Util; +import net.sourceforge.phpdt.internal.core.util.PHPFileUtil; import org.eclipse.core.resources.IContainer; import org.eclipse.core.resources.IResource; +import org.eclipse.core.runtime.CoreException; +import org.eclipse.core.runtime.IPath; import org.eclipse.core.runtime.IProgressMonitor; import org.eclipse.core.runtime.Path; - /** * @see IPackageFragment */ public class PackageFragment extends Openable implements IPackageFragment { - /** + /** * Constant empty list of compilation units */ - protected static ICompilationUnit[] fgEmptyCompilationUnitList= new ICompilationUnit[] {}; -/** - * Constructs a handle for a package fragment - * - * @see IPackageFragment - */ -protected PackageFragment(IPackageFragmentRoot root, String name) { - super(PACKAGE_FRAGMENT, null, name); -} -/** - * Compute the children of this package fragment. - * - *

Package fragments which are folders recognize files based on the - * type of the fragment - *

Package fragments which are in a jar only recognize .class files ( - * @see JarPackageFragment). - */ -//protected boolean computeChildren(OpenableElementInfo info, IResource resource) throws JavaModelException { -// ArrayList vChildren = new ArrayList(); -// int kind = getKind(); -// String extType; -// if (kind == IPackageFragmentRoot.K_SOURCE) { -// extType = "java"; //$NON-NLS-1$ -// } else { -// extType = "class"; //$NON-NLS-1$ -// } -// try { -// char[][] exclusionPatterns = ((PackageFragmentRoot)getPackageFragmentRoot()).fullExclusionPatternChars(); -// IResource[] members = ((IContainer) resource).members(); -// for (int i = 0, max = members.length; i < max; i++) { -// IResource child = members[i]; -// if (child.getType() != IResource.FOLDER -// && !Util.isExcluded(child, exclusionPatterns)) { -// String extension = child.getProjectRelativePath().getFileExtension(); -// if (extension != null) { -// if (extension.equalsIgnoreCase(extType)) { -// IJavaElement childElement; -// if (kind == IPackageFragmentRoot.K_SOURCE && Util.isValidCompilationUnitName(child.getName())) { -// childElement = getCompilationUnit(child.getName()); -// vChildren.add(childElement); -// } else if (Util.isValidClassFileName(child.getName())) { -// childElement = getClassFile(child.getName()); -// vChildren.add(childElement); -// } -// } -// } -// } -// } -// } catch (CoreException e) { -// throw new JavaModelException(e); -// } -// IJavaElement[] children = new IJavaElement[vChildren.size()]; -// vChildren.toArray(children); -// info.setChildren(children); -// return true; -//} -/** - * Returns true if this fragment contains at least one java resource. - * Returns false otherwise. - */ -//public boolean containsJavaResources() throws JavaModelException { -// return ((PackageFragmentInfo) getElementInfo()).containsJavaResources(); -//} -/** - * @see ISourceManipulation - */ -//public void copy(IJavaElement container, IJavaElement sibling, String rename, boolean force, IProgressMonitor monitor) throws JavaModelException { -// if (container == null) { -// throw new IllegalArgumentException(Util.bind("operation.nullContainer")); //$NON-NLS-1$ -// } -// IJavaElement[] elements= new IJavaElement[] {this}; -// IJavaElement[] containers= new IJavaElement[] {container}; -// IJavaElement[] siblings= null; -// if (sibling != null) { -// siblings= new IJavaElement[] {sibling}; -// } -// String[] renamings= null; -// if (rename != null) { -// renamings= new String[] {rename}; -// } -// getJavaModel().copy(elements, containers, siblings, renamings, force, monitor); -//} -/** - * @see IPackageFragment - */ -public ICompilationUnit createCompilationUnit(String name, String contents, boolean force, IProgressMonitor monitor) throws JavaModelException { -// CreateCompilationUnitOperation op= new CreateCompilationUnitOperation(this, name, contents, force); -// runOperation(op, monitor); -// return getCompilationUnit(name); - return null; -} -/** - * @see JavaElement - */ -//protected OpenableElementInfo createElementInfo() { -// return new PackageFragmentInfo(); -//} -/** - * @see ISourceManipulation - */ -//public void delete(boolean force, IProgressMonitor monitor) throws JavaModelException { -// IJavaElement[] elements = new IJavaElement[] {this}; -// getJavaModel().delete(elements, force, monitor); -//} -/** - * @see Openable - */ -//protected boolean generateInfos(OpenableElementInfo info, IProgressMonitor pm, Map newElements, IResource underlyingResource) throws JavaModelException { -// -// return computeChildren(info, underlyingResource); -//} -///** -// * @see IPackageFragment#getClassFile(String) -// */ -//public IClassFile getClassFile(String name) { -// return new ClassFile(this, name); -//} -/** - * Returns a the collection of class files in this - a folder package fragment which has a root - * that has its kind set to IPackageFragmentRoot.K_Source does not - * recognize class files. - * - * @see IPackageFragment#getClassFiles() - */ -//public IClassFile[] getClassFiles() throws JavaModelException { -// if (getKind() == IPackageFragmentRoot.K_SOURCE) { -// return fgEmptyClassFileList; -// } -// -// ArrayList list = getChildrenOfType(CLASS_FILE); -// IClassFile[] array= new IClassFile[list.size()]; -// list.toArray(array); -// return array; -//} -/** - * @see IPackageFragment#getCompilationUnit(String) - */ -public ICompilationUnit getCompilationUnit(String name) { - return new CompilationUnit(this, name); -} -/** - * @see IPackageFragment#getCompilationUnits() - */ -//public ICompilationUnit[] getCompilationUnits() throws JavaModelException { -// if (getKind() == IPackageFragmentRoot.K_BINARY) { -// return fgEmptyCompilationUnitList; -// } -// -// ArrayList list = getChildrenOfType(COMPILATION_UNIT); -// ICompilationUnit[] array= new ICompilationUnit[list.size()]; -// list.toArray(array); -// return array; -//} -/** - * @see JavaElement#getHandleMementoDelimiter() - */ -protected char getHandleMementoDelimiter() { - return JavaElement.JEM_PACKAGEFRAGMENT; -} -/** - * @see IPackageFragment#getKind() - */ -//public int getKind() throws JavaModelException { -// return ((IPackageFragmentRoot)getParent()).getKind(); -//} -/** - * Returns an array of non-java resources contained in the receiver. - */ -//public Object[] getNonJavaResources() throws JavaModelException { -// if (this.isDefaultPackage()) { -// // We don't want to show non java resources of the default package (see PR #1G58NB8) -// return JavaElementInfo.NO_NON_JAVA_RESOURCES; -// } else { -// return ((PackageFragmentInfo) getElementInfo()).getNonJavaResources(getResource(), (PackageFragmentRoot)getPackageFragmentRoot()); -// } -//} -/** - * @see IJavaElement#getPath() - */ -//public IPath getPath() { -// PackageFragmentRoot root = this.getPackageFragmentRoot(); -// if (root.isArchive()) { -// return root.getPath(); -// } else { -// return root.getPath().append(this.getElementName().replace('.', '/')); -// } -//} -/** - * @see IJavaElement#getResource() - */ -public IResource getResource() { - PackageFragmentRoot root = this.getPackageFragmentRoot(); - if (root.isArchive()) { - return root.getResource(); - } else { - String elementName = this.getElementName(); - if (elementName.length() == 0) { - return root.getResource(); - } else { - return ((IContainer)root.getResource()).getFolder(new Path(this.getElementName().replace('.', '/'))); + protected static ICompilationUnit[] fgEmptyCompilationUnitList = new ICompilationUnit[] {}; + + /** + * Constructs a handle for a package fragment + * + * @see IPackageFragment + */ + protected PackageFragment(PackageFragmentRoot root, String name) { + super(root, name); + } + + /** + * @see Openable + */ + protected boolean buildStructure(OpenableElementInfo info, + IProgressMonitor pm, Map newElements, IResource underlyingResource) + throws JavaModelException { + + // check whether this pkg can be opened + if (!underlyingResource.isAccessible()) + throw newNotPresentException(); + + //int kind = getKind(); + String extType; + // if (kind == IPackageFragmentRoot.K_SOURCE) { + extType = "php"; // EXTENSION_java; + // } else { + // extType = EXTENSION_class; + // } + + // add compilation units/class files from resources + HashSet vChildren = new HashSet(); + try { + PackageFragmentRoot root = getPackageFragmentRoot(); + // char[][] inclusionPatterns = root.fullInclusionPatternChars(); + char[][] exclusionPatterns = root.fullExclusionPatternChars(); + IResource[] members = ((IContainer) underlyingResource).members(); + for (int i = 0, max = members.length; i < max; i++) { + IResource child = members[i]; + if (child.getType() != IResource.FOLDER + && !Util.isExcluded(child, exclusionPatterns)) { + String extension = child.getProjectRelativePath() + .getFileExtension(); + if (extension != null) { + if (extension.equalsIgnoreCase(extType)) { + //IJavaElement childElement; + // if (kind == IPackageFragmentRoot.K_SOURCE && + // ProjectPrefUtil.isValidCompilationUnitName(child.getName())) + // { + // childElement = new CompilationUnit(this, + // child.getName(), + // DefaultWorkingCopyOwner.PRIMARY); + // vChildren.add(childElement); + // } else if + // (ProjectPrefUtil.isValidClassFileName(child.getName())) + // { + // childElement = getClassFile(child.getName()); + // vChildren.add(childElement); + // } + } + } + } + } + } catch (CoreException e) { + throw new JavaModelException(e); } + + // if (kind == IPackageFragmentRoot.K_SOURCE) { + // // add primary compilation units + // ICompilationUnit[] primaryCompilationUnits = + // getCompilationUnits(DefaultWorkingCopyOwner.PRIMARY); + // for (int i = 0, length = primaryCompilationUnits.length; i < length; + // i++) { + // ICompilationUnit primary = primaryCompilationUnits[i]; + // vChildren.add(primary); + // } + // } + + IJavaElement[] children = new IJavaElement[vChildren.size()]; + vChildren.toArray(children); + info.setChildren(children); + return true; } -} -/** - * @see IJavaElement#getUnderlyingResource() - */ -public IResource getUnderlyingResource() throws JavaModelException { - IResource rootResource = fParent.getUnderlyingResource(); - if (rootResource == null) { - //jar package fragment root that has no associated resource + + // /** + // * Compute the children of this package fragment. + // * + // *

Package fragments which are folders recognize files based on the + // * type of the fragment + // *

Package fragments which are in a jar only recognize .class files ( + // * @see JarPackageFragment). + // */ + // protected boolean computeChildren(OpenableElementInfo info, IResource + // resource) throws JavaModelException { + // ArrayList vChildren = new ArrayList(); + // // int kind = getKind(); + // String extType; + // // if (kind == IPackageFragmentRoot.K_SOURCE) { + // extType = "php"; //$NON-NLS-1$ + // // } else { + // // extType = "class"; //$NON-NLS-1$ + // // } + // try { + // char[][] exclusionPatterns = + // ((PackageFragmentRoot)getPackageFragmentRoot()).fullExclusionPatternChars(); + // IResource[] members = ((IContainer) resource).members(); + // for (int i = 0, max = members.length; i < max; i++) { + // IResource child = members[i]; + // if (child.getType() != IResource.FOLDER + // && !ProjectPrefUtil.isExcluded(child, exclusionPatterns)) { + // String extension = child.getProjectRelativePath().getFileExtension(); + // if (extension != null) { + // if (extension.equalsIgnoreCase(extType)) { + // IJavaElement childElement; + // // if (kind == IPackageFragmentRoot.K_SOURCE && + // ProjectPrefUtil.isValidCompilationUnitName(child.getName())) { + // // childElement = getCompilationUnit(child.getName()); + // // vChildren.add(childElement); + // // } else if (ProjectPrefUtil.isValidClassFileName(child.getName())) { + // // childElement = getClassFile(child.getName()); + // // vChildren.add(childElement); + // // } + // } + // } + // } + // } + // } catch (CoreException e) { + // throw new JavaModelException(e); + // } + // IJavaElement[] children = new IJavaElement[vChildren.size()]; + // vChildren.toArray(children); + // info.setChildren(children); + // return true; + // } + /** + * Returns true if this fragment contains at least one java resource. + * Returns false otherwise. + */ + // public boolean containsJavaResources() throws JavaModelException { + // return ((PackageFragmentInfo) getElementInfo()).containsJavaResources(); + // } + /** + * @see ISourceManipulation + */ + // public void copy(IJavaElement container, IJavaElement sibling, String + // rename, boolean force, IProgressMonitor monitor) throws + // JavaModelException { + // if (container == null) { + // throw new + // IllegalArgumentException(ProjectPrefUtil.bind("operation.nullContainer")); + // //$NON-NLS-1$ + // } + // IJavaElement[] elements= new IJavaElement[] {this}; + // IJavaElement[] containers= new IJavaElement[] {container}; + // IJavaElement[] siblings= null; + // if (sibling != null) { + // siblings= new IJavaElement[] {sibling}; + // } + // String[] renamings= null; + // if (rename != null) { + // renamings= new String[] {rename}; + // } + // getJavaModel().copy(elements, containers, siblings, renamings, force, + // monitor); + // } + /** + * @see IPackageFragment + */ + public ICompilationUnit createCompilationUnit(String name, String contents, + boolean force, IProgressMonitor monitor) throws JavaModelException { + // CreateCompilationUnitOperation op= new + // CreateCompilationUnitOperation(this, name, contents, force); + // runOperation(op, monitor); + // return getCompilationUnit(name); return null; } - // the underlying resource may be a folder or a project (in the case that the project folder - // is atually the package fragment root) -// if (rootResource.getType() == IResource.FOLDER || rootResource.getType() == IResource.PROJECT) { -// IContainer folder = (IContainer) rootResource; -// String[] segs = Signature.getSimpleNames(fName); -// for (int i = 0; i < segs.length; ++i) { -// IResource child = folder.findMember(segs[i]); -// if (child == null || child.getType() != IResource.FOLDER) { -// throw newNotPresentException(); -// } -// folder = (IFolder) child; -// } -// return folder; -// } else { + + /** + * @see JavaElement + */ + protected Object createElementInfo() { + return new PackageFragmentInfo(); + } + + /** + * @see ISourceManipulation + */ + // public void delete(boolean force, IProgressMonitor monitor) throws + // JavaModelException { + // IJavaElement[] elements = new IJavaElement[] {this}; + // getJavaModel().delete(elements, force, monitor); + // } + // /** + // * @see Openable + // */ + // protected boolean generateInfos(OpenableElementInfo info, + // IProgressMonitor pm, Map newElements, IResource underlyingResource) + // throws JavaModelException { + // + // return computeChildren(info, underlyingResource); + // } + // /** + // * @see IPackageFragment#getClassFile(String) + // */ + // public IClassFile getClassFile(String name) { + // return new ClassFile(this, name); + // } + /** + * Returns a the collection of class files in this - a folder package + * fragment which has a root that has its kind set to + * IPackageFragmentRoot.K_Source does not recognize class + * files. + * + * @see IPackageFragment#getClassFiles() + */ + // public IClassFile[] getClassFiles() throws JavaModelException { + // if (getKind() == IPackageFragmentRoot.K_SOURCE) { + // return fgEmptyClassFileList; + // } + // + // ArrayList list = getChildrenOfType(CLASS_FILE); + // IClassFile[] array= new IClassFile[list.size()]; + // list.toArray(array); + // return array; + // } + /** + * @see IPackageFragment#getCompilationUnit(String) + * @exception IllegalArgumentExcpetion + * if the name does not end with a php file extension + */ + public ICompilationUnit getCompilationUnit(String cuName) { + if (!PHPFileUtil.isValidPHPUnitName(cuName)) { + throw new IllegalArgumentException(Util + .bind("convention.unit.notJavaName")); //$NON-NLS-1$ + } + return new CompilationUnit(this, cuName, + DefaultWorkingCopyOwner.PRIMARY); + } + + /** + * @see IPackageFragment#getCompilationUnits() + */ + public ICompilationUnit[] getCompilationUnits() throws JavaModelException { + if (getKind() == IPackageFragmentRoot.K_BINARY) { + return fgEmptyCompilationUnitList; + } + + ArrayList list = getChildrenOfType(COMPILATION_UNIT); + ICompilationUnit[] array = new ICompilationUnit[list.size()]; + list.toArray(array); + return array; + } + + /** + * @see IJavaElement + */ + public int getElementType() { + return PACKAGE_FRAGMENT; + } + + /* + * @see JavaElement + */ + public IJavaElement getHandleFromMemento(String token, + MementoTokenizer memento, WorkingCopyOwner owner) { + switch (token.charAt(0)) { + case JEM_COUNT: + return getHandleUpdatingCountFromMemento(memento, owner); + // case JEM_CLASSFILE: + // String classFileName = memento.nextToken(); + // JavaElement classFile = (JavaElement)getClassFile(classFileName); + // return classFile.getHandleFromMemento(memento, owner); + case JEM_COMPILATIONUNIT: + String cuName = memento.nextToken(); + JavaElement cu = new CompilationUnit(this, cuName, owner); + return cu.getHandleFromMemento(memento, owner); + } + return null; + } + + /** + * @see JavaElement#getHandleMementoDelimiter() + */ + protected char getHandleMementoDelimiter() { + return JavaElement.JEM_PACKAGEFRAGMENT; + } + + /** + * @see IPackageFragment#getKind() + */ + public int getKind() throws JavaModelException { + return ((IPackageFragmentRoot) getParent()).getKind(); + } + + /** + * Returns an array of non-java resources contained in the receiver. + */ + // public Object[] getNonJavaResources() throws JavaModelException { + // if (this.isDefaultPackage()) { + // // We don't want to show non java resources of the default package (see + // PR #1G58NB8) + // return JavaElementInfo.NO_NON_JAVA_RESOURCES; + // } else { + // return ((PackageFragmentInfo) + // getElementInfo()).getNonJavaResources(getResource(), + // (PackageFragmentRoot)getPackageFragmentRoot()); + // } + // } + /** + * @see IJavaElement#getPath() + */ + public IPath getPath() { + PackageFragmentRoot root = this.getPackageFragmentRoot(); + if (root.isArchive()) { + return root.getPath(); + } else { + // return root.getPath().append(this.getElementName().replace('.', + // '/')); + return root.getPath().append(this.getElementName()); + } + } + + /** + * @see IJavaElement#getResource() + */ + public IResource getResource() { + PackageFragmentRoot root = this.getPackageFragmentRoot(); + if (root.isArchive()) { + return root.getResource(); + } else { + String elementName = this.getElementName(); + if (elementName.length() == 0) { + return root.getResource(); + } else { + // return ((IContainer)root.getResource()).getFolder(new + // Path(this.getElementName().replace('.', '/'))); + return ((IContainer) root.getResource()).getFolder(new Path( + this.getElementName())); + } + } + } + + /** + * @see IJavaElement#getUnderlyingResource() + */ + public IResource getUnderlyingResource() throws JavaModelException { + IResource rootResource = parent.getUnderlyingResource(); + if (rootResource == null) { + // jar package fragment root that has no associated resource + return null; + } + // the underlying resource may be a folder or a project (in the case + // that the project folder + // is atually the package fragment root) + // if (rootResource.getType() == IResource.FOLDER || + // rootResource.getType() == IResource.PROJECT) { + // IContainer folder = (IContainer) rootResource; + // String[] segs = Signature.getSimpleNames(fName); + // for (int i = 0; i < segs.length; ++i) { + // IResource child = folder.findMember(segs[i]); + // if (child == null || child.getType() != IResource.FOLDER) { + // throw newNotPresentException(); + // } + // folder = (IFolder) child; + // } + // return folder; + // } else { return rootResource; -// } -} -/** - * @see IPackageFragment#hasSubpackages() - */ -//public boolean hasSubpackages() throws JavaModelException { -// IJavaElement[] packages= ((IPackageFragmentRoot)getParent()).getChildren(); -// String name = getElementName(); -// int nameLength = name.length(); -// String packageName = isDefaultPackage() ? name : name+"."; //$NON-NLS-1$ -// for (int i= 0; i < packages.length; i++) { -// String otherName = packages[i].getElementName(); -// if (otherName.length() > nameLength && otherName.startsWith(packageName)) { -// return true; -// } -// } -// return false; -//} -/** - * @see IPackageFragment#isDefaultPackage() - */ -public boolean isDefaultPackage() { - return this.getElementName().length() == 0; -} -/** - * @see ISourceManipulation#move(IJavaElement, IJavaElement, String, boolean, IProgressMonitor) - */ -//public void move(IJavaElement container, IJavaElement sibling, String rename, boolean force, IProgressMonitor monitor) throws JavaModelException { -// if (container == null) { -// throw new IllegalArgumentException(Util.bind("operation.nullContainer")); //$NON-NLS-1$ -// } -// IJavaElement[] elements= new IJavaElement[] {this}; -// IJavaElement[] containers= new IJavaElement[] {container}; -// IJavaElement[] siblings= null; -// if (sibling != null) { -// siblings= new IJavaElement[] {sibling}; -// } -// String[] renamings= null; -// if (rename != null) { -// renamings= new String[] {rename}; -// } -// getJavaModel().move(elements, containers, siblings, renamings, force, monitor); -//} -//protected void openWhenClosed(IProgressMonitor pm) throws JavaModelException { -// if (!this.resourceExists()) throw newNotPresentException(); -// super.openWhenClosed(pm); -//} -/** - * Recomputes the children of this element, based on the current state - * of the workbench. - */ -//public void refreshChildren() { -// try { -// OpenableElementInfo info= (OpenableElementInfo)getElementInfo(); -// computeChildren(info, getResource()); -// } catch (JavaModelException e) { -// // do nothing. -// } -//} -/** - * @see ISourceManipulation#rename(String, boolean, IProgressMonitor) - */ -//public void rename(String name, boolean force, IProgressMonitor monitor) throws JavaModelException { -// if (name == null) { -// throw new IllegalArgumentException(Util.bind("element.nullName")); //$NON-NLS-1$ -// } -// IJavaElement[] elements= new IJavaElement[] {this}; -// IJavaElement[] dests= new IJavaElement[] {this.getParent()}; -// String[] renamings= new String[] {name}; -// getJavaModel().rename(elements, dests, renamings, force, monitor); -//} -/* - * @see JavaElement#rootedAt(IJavaProject) - */ -public IJavaElement rootedAt(IJavaProject project) { - return - new PackageFragment( - (IPackageFragmentRoot)((JavaElement)fParent).rootedAt(project), - fName); -} -/** - * Debugging purposes - */ -protected void toStringChildren(int tab, StringBuffer buffer, Object info) { - if (tab == 0) { - super.toStringChildren(tab, buffer, info); + // } } -} -/** - * Debugging purposes - */ -protected void toStringInfo(int tab, StringBuffer buffer, Object info) { - buffer.append(this.tabString(tab)); - if (getElementName().length() == 0) { - buffer.append("[default]"); //$NON-NLS-1$ - } else { - buffer.append(getElementName()); + + /** + * @see IPackageFragment#hasSubpackages() + */ + // public boolean hasSubpackages() throws JavaModelException { + // IJavaElement[] packages= + // ((IPackageFragmentRoot)getParent()).getChildren(); + // String name = getElementName(); + // int nameLength = name.length(); + // String packageName = isDefaultPackage() ? name : name+"."; //$NON-NLS-1$ + // for (int i= 0; i < packages.length; i++) { + // String otherName = packages[i].getElementName(); + // if (otherName.length() > nameLength && otherName.startsWith(packageName)) + // { + // return true; + // } + // } + // return false; + // } + /** + * @see IPackageFragment#isDefaultPackage() + */ + public boolean isDefaultPackage() { + return this.getElementName().length() == 0; } - if (info == null) { - buffer.append(" (not open)"); //$NON-NLS-1$ - } else { - if (tab > 0) { - buffer.append(" (...)"); //$NON-NLS-1$ + + /** + * @see ISourceManipulation#move(IJavaElement, IJavaElement, String, + * boolean, IProgressMonitor) + */ + // public void move(IJavaElement container, IJavaElement sibling, String + // rename, boolean force, IProgressMonitor monitor) throws + // JavaModelException { + // if (container == null) { + // throw new + // IllegalArgumentException(ProjectPrefUtil.bind("operation.nullContainer")); + // //$NON-NLS-1$ + // } + // IJavaElement[] elements= new IJavaElement[] {this}; + // IJavaElement[] containers= new IJavaElement[] {container}; + // IJavaElement[] siblings= null; + // if (sibling != null) { + // siblings= new IJavaElement[] {sibling}; + // } + // String[] renamings= null; + // if (rename != null) { + // renamings= new String[] {rename}; + // } + // getJavaModel().move(elements, containers, siblings, renamings, force, + // monitor); + // } + // protected void openWhenClosed(IProgressMonitor pm) throws + // JavaModelException { + // if (!this.resourceExists()) throw newNotPresentException(); + // super.openWhenClosed(pm); + // } + /** + * Recomputes the children of this element, based on the current state of + * the workbench. + */ + // public void refreshChildren() { + // try { + // OpenableElementInfo info= (OpenableElementInfo)getElementInfo(); + // computeChildren(info, getResource()); + // } catch (JavaModelException e) { + // // do nothing. + // } + // } + /** + * @see ISourceManipulation#rename(String, boolean, IProgressMonitor) + */ + // public void rename(String name, boolean force, IProgressMonitor monitor) + // throws JavaModelException { + // if (name == null) { + // throw new + // IllegalArgumentException(ProjectPrefUtil.bind("element.nullName")); + // //$NON-NLS-1$ + // } + // IJavaElement[] elements= new IJavaElement[] {this}; + // IJavaElement[] dests= new IJavaElement[] {this.getParent()}; + // String[] renamings= new String[] {name}; + // getJavaModel().rename(elements, dests, renamings, force, monitor); + // } + // /* + // * @see JavaElement#rootedAt(IJavaProject) + // */ + // public IJavaElement rootedAt(IJavaProject project) { + // return + // new PackageFragment( + // (IPackageFragmentRoot)((JavaElement)parent).rootedAt(project), + // name); + // } + /** + * Debugging purposes + */ + protected void toStringChildren(int tab, StringBuffer buffer, Object info) { + if (tab == 0) { + super.toStringChildren(tab, buffer, info); + } + } + + /** + * Debugging purposes + */ + protected void toStringInfo(int tab, StringBuffer buffer, Object info) { + buffer.append(this.tabString(tab)); + if (getElementName().length() == 0) { + buffer.append("[default]"); //$NON-NLS-1$ + } else { + buffer.append(getElementName()); + } + if (info == null) { + buffer.append(" (not open)"); //$NON-NLS-1$ + } else { + if (tab > 0) { + buffer.append(" (...)"); //$NON-NLS-1$ + } } } -} }