1 11 package org.eclipse.jdt.internal.core.jdom; 12 13 import org.eclipse.jdt.core.Flags; 14 import org.eclipse.jdt.core.ICompilationUnit; 15 import org.eclipse.jdt.core.IJavaElement; 16 import org.eclipse.jdt.core.jdom.*; 17 import org.eclipse.jdt.internal.core.util.Messages; 18 import org.eclipse.jdt.internal.core.util.CharArrayBuffer; 19 import org.eclipse.jdt.internal.core.util.Util; 20 21 30 class DOMImport extends DOMNode implements IDOMImport { 32 33 36 protected boolean fOnDemand; 37 38 42 protected int fFlags = Flags.AccDefault; 43 44 47 DOMImport() { 48 fName = "java.lang.*"; setMask(MASK_DETAILED_SOURCE_INDEXES, true); 50 } 51 69 DOMImport(char[] document, int[] sourceRange, String name, int[] nameRange, boolean onDemand, int modifiers) { 70 super(document, sourceRange, name, nameRange); 71 fOnDemand = onDemand; 72 fFlags = modifiers; 73 setMask(MASK_DETAILED_SOURCE_INDEXES, true); 74 } 75 89 DOMImport(char[] document, int[] sourceRange, String name, boolean onDemand, int modifiers) { 90 this(document, sourceRange, name, new int[] {-1, -1}, onDemand, modifiers); 91 fOnDemand = onDemand; 92 setMask(MASK_DETAILED_SOURCE_INDEXES, false); 93 } 94 97 protected void appendFragmentedContents(CharArrayBuffer buffer) { 98 if (fNameRange[0] < 0) { 99 buffer 100 .append("import ") .append(fName) 102 .append(';') 103 .append(Util.getLineSeparator(buffer.toString(), null)); 104 } else { 105 buffer.append(fDocument, fSourceRange[0], fNameRange[0] - fSourceRange[0]); 106 buffer.append(fName); 108 buffer.append(fDocument, fNameRange[1] + 1, fSourceRange[1] - fNameRange[1]); 109 } 110 } 111 114 public String getContents() { 115 if (fName == null) { 116 return null; 117 } else { 118 return super.getContents(); 119 } 120 } 121 124 protected DOMNode getDetailedNode() { 125 return (DOMNode)getFactory().createImport(getContents()); 126 } 127 130 public IJavaElement getJavaElement(IJavaElement parent) throws IllegalArgumentException { 131 if (parent.getElementType() == IJavaElement.COMPILATION_UNIT) { 132 return ((ICompilationUnit)parent).getImport(getName()); 133 } else { 134 throw new IllegalArgumentException (Messages.element_illegalParent); 135 } 136 } 137 140 public int getNodeType() { 141 return IDOMNode.IMPORT; 142 } 143 146 public boolean isOnDemand() { 147 return fOnDemand; 148 } 149 152 protected DOMNode newDOMNode() { 153 return new DOMImport(); 154 } 155 158 public void setName(String name) { 159 if (name == null) { 160 throw new IllegalArgumentException (Messages.element_nullName); 161 } 162 becomeDetailed(); 163 super.setName(name); 164 fOnDemand = name.endsWith(".*"); } 166 169 public String toString() { 170 return "IMPORT: " + getName(); } 172 173 177 public int getFlags() { 178 return this.fFlags; 179 } 180 181 185 public void setFlags(int flags) { 186 this.fFlags = flags; 187 } 188 } 189 | Popular Tags |