1 11 package org.eclipse.jdt.internal.core.jdom; 12 13 import org.eclipse.jdt.core.ICompilationUnit; 14 import org.eclipse.jdt.core.IJavaElement; 15 import org.eclipse.jdt.core.jdom.*; 16 import org.eclipse.jdt.internal.core.util.Messages; 17 import org.eclipse.jdt.internal.core.util.CharArrayBuffer; 18 import org.eclipse.jdt.internal.core.util.Util; 19 20 29 class DOMPackage extends DOMNode implements IDOMPackage { 30 31 34 DOMPackage() { 35 setMask(MASK_DETAILED_SOURCE_INDEXES, true); 36 } 37 50 DOMPackage(char[] document, int[] sourceRange, String name) { 51 super(document, sourceRange, name, new int[] {-1, -1}); 52 setMask(MASK_DETAILED_SOURCE_INDEXES, false); 53 } 54 71 DOMPackage(char[] document, int[] sourceRange, String name, int[] nameRange) { 72 super(document, sourceRange, name, nameRange); 73 setMask(MASK_DETAILED_SOURCE_INDEXES, true); 74 } 75 78 protected void appendFragmentedContents(CharArrayBuffer buffer) { 79 if (fNameRange[0] < 0) { 80 String lineSeparator = Util.getLineSeparator(buffer.toString(), null); 81 buffer 82 .append("package ") .append(fName) 84 .append(';') 85 .append(lineSeparator) 86 .append(lineSeparator); 87 } else { 88 buffer 89 .append(fDocument, fSourceRange[0], fNameRange[0] - fSourceRange[0]) 90 .append(fName) 91 .append(fDocument, fNameRange[1] + 1, fSourceRange[1] - fNameRange[1]); 92 } 93 } 94 97 public String getContents() { 98 if (fName == null) { 99 return null; 100 } else { 101 return super.getContents(); 102 } 103 } 104 107 protected DOMNode getDetailedNode() { 108 return (DOMNode)getFactory().createPackage(getContents()); 109 } 110 113 public IJavaElement getJavaElement(IJavaElement parent) throws IllegalArgumentException { 114 if (parent.getElementType() == IJavaElement.COMPILATION_UNIT) { 115 return ((ICompilationUnit)parent).getPackageDeclaration(getName()); 116 } else { 117 throw new IllegalArgumentException (Messages.element_illegalParent); 118 } 119 } 120 123 public int getNodeType() { 124 return IDOMNode.PACKAGE; 125 } 126 129 protected DOMNode newDOMNode() { 130 return new DOMPackage(); 131 } 132 135 public void setName(String name) { 136 becomeDetailed(); 137 super.setName(name); 138 } 139 142 public String toString() { 143 return "PACKAGE: " + getName(); } 145 } 146 | Popular Tags |