Refactory: remove unused classes, imports, fields and methods.
[phpeclipse.git] / net.sourceforge.phpeclipse / src / net / sourceforge / phpdt / internal / core / ImportContainer.java
1 /*******************************************************************************
2  * Copyright (c) 2000, 2004 IBM Corporation and others.
3  * All rights reserved. This program and the accompanying materials 
4  * are made available under the terms of the Common Public License v1.0
5  * which accompanies this distribution, and is available at
6  * http://www.eclipse.org/legal/cpl-v10.html
7  * 
8  * Contributors:
9  *     IBM Corporation - initial API and implementation
10  *******************************************************************************/
11 package net.sourceforge.phpdt.internal.core;
12
13 import net.sourceforge.phpdt.core.IImportContainer;
14 import net.sourceforge.phpdt.core.IImportDeclaration;
15 import net.sourceforge.phpdt.core.IJavaElement;
16 import net.sourceforge.phpdt.core.IParent;
17 import net.sourceforge.phpdt.core.ISourceRange;
18 import net.sourceforge.phpdt.core.ISourceReference;
19 import net.sourceforge.phpdt.core.JavaModelException;
20 import net.sourceforge.phpdt.core.WorkingCopyOwner;
21 import net.sourceforge.phpdt.internal.core.util.MementoTokenizer;
22
23 // import net.sourceforge.phpdt.internal.core.util.MementoTokenizer;
24
25 /**
26  * @see IImportContainer
27  */
28 public class ImportContainer extends SourceRefElement implements
29                 IImportContainer {
30         protected ImportContainer(CompilationUnit parent) {
31                 super(parent, ""); //$NON-NLS-1$
32         }
33
34         public boolean equals(Object o) {
35                 if (!(o instanceof ImportContainer))
36                         return false;
37                 return super.equals(o);
38         }
39
40         /**
41          * @see IJavaElement
42          */
43         public int getElementType() {
44                 return IMPORT_CONTAINER;
45         }
46
47         /*
48          * @see JavaElement
49          */
50         public IJavaElement getHandleFromMemento(String token,
51                         MementoTokenizer memento, WorkingCopyOwner workingCopyOwner) {
52                 switch (token.charAt(0)) {
53                 case JEM_COUNT:
54                         return getHandleUpdatingCountFromMemento(memento, workingCopyOwner);
55                 case JEM_IMPORTDECLARATION:
56                         if (memento.hasMoreTokens()) {
57                                 String importName = memento.nextToken();
58                                 JavaElement importDecl = (JavaElement) getImport(importName);
59                                 return importDecl.getHandleFromMemento(memento,
60                                                 workingCopyOwner);
61                         } else {
62                                 return this;
63                         }
64                 }
65                 return null;
66         }
67
68         /**
69          * @see JavaElement#getHandleMemento()
70          */
71         protected char getHandleMementoDelimiter() {
72                 return JavaElement.JEM_IMPORTDECLARATION;
73         }
74
75         /**
76          * @see IImportContainer
77          */
78         public IImportDeclaration getImport(String importName) {
79                 return new ImportDeclaration(this, importName);
80         }
81
82         /*
83          * @see JavaElement#getPrimaryElement(boolean)
84          */
85         public IJavaElement getPrimaryElement(boolean checkOwner) {
86                 CompilationUnit cu = (CompilationUnit) this.parent;
87                 if (checkOwner && cu.isPrimary())
88                         return this;
89                 return cu.getImportContainer();
90         }
91
92         /**
93          * @see ISourceReference
94          */
95         public ISourceRange getSourceRange() throws JavaModelException {
96                 IJavaElement[] imports = getChildren();
97                 ISourceRange firstRange = ((ISourceReference) imports[0])
98                                 .getSourceRange();
99                 ISourceRange lastRange = ((ISourceReference) imports[imports.length - 1])
100                                 .getSourceRange();
101                 SourceRange range = new SourceRange(firstRange.getOffset(), lastRange
102                                 .getOffset()
103                                 + lastRange.getLength() - firstRange.getOffset());
104                 return range;
105         }
106
107         /**
108          * Import containers only exist if they have children.
109          * 
110          * @see IParent
111          */
112         public boolean hasChildren() {
113                 return true;
114         }
115
116         /**
117          */
118         public String readableName() {
119
120                 return null;
121         }
122
123         /**
124          * @private Debugging purposes
125          */
126         protected void toString(int tab, StringBuffer buffer) {
127                 Object info = JavaModelManager.getJavaModelManager().peekAtInfo(this);
128                 if (info == null || !(info instanceof JavaElementInfo))
129                         return;
130                 IJavaElement[] children = ((JavaElementInfo) info).getChildren();
131                 for (int i = 0; i < children.length; i++) {
132                         if (i > 0)
133                                 buffer.append("\n"); //$NON-NLS-1$
134                         ((JavaElement) children[i]).toString(tab, buffer);
135                 }
136         }
137
138         /**
139          * Debugging purposes
140          */
141         protected void toStringInfo(int tab, StringBuffer buffer, Object info) {
142                 buffer.append(this.tabString(tab));
143                 buffer.append("<import container>"); //$NON-NLS-1$
144                 if (info == null) {
145                         buffer.append(" (not open)"); //$NON-NLS-1$
146                 }
147         }
148 }