1 19 20 package org.openide.src; 21 22 import java.io.*; 23 24 30 public abstract class MemberElement extends Element implements Cloneable { 31 32 private ClassElement declaringClass; 33 34 static final long serialVersionUID =7896378970641663987L; 35 36 40 protected MemberElement(MemberElement.Impl impl, ClassElement declaringClass) { 41 super(impl); 42 this.declaringClass = declaringClass; 43 } 44 45 46 final MemberElement.Impl getMemberImpl() { 47 return (MemberElement.Impl) impl; 48 } 49 50 54 58 public final int getModifiers() { 59 return getMemberImpl().getModifiers(); 60 } 61 62 66 public final void setModifiers(int mod) throws SourceException { 67 getMemberImpl().setModifiers(mod); 68 } 69 70 73 public abstract int getModifiersMask(); 74 75 78 boolean isDeclaredInInterface() { 79 return (declaringClass != null) && (declaringClass.isInterface()); 80 } 81 82 85 public final Identifier getName() { 86 return getMemberImpl().getName(); 87 } 88 89 93 public void setName(Identifier name) throws SourceException { 94 getMemberImpl().setName(name); 95 updateConstructorsNames(name); 96 } 97 98 100 void updateConstructorsNames(Identifier name) throws SourceException { 101 } 102 103 public Object clone() throws CloneNotSupportedException { 104 return super.clone(); 105 } 106 107 110 115 public final ClassElement getDeclaringClass () { 116 return declaringClass; 117 } 118 119 122 public interface Impl extends Element.Impl { 123 124 long serialVersionUID = 2037286733482347462L; 125 129 public int getModifiers(); 130 131 135 public void setModifiers(int mod) throws SourceException; 136 137 140 public Identifier getName(); 141 142 146 public void setName(Identifier name) throws SourceException; 147 } 148 149 152 static abstract class Memory extends Element.Memory implements MemberElement.Impl { 153 154 private int mod; 155 156 157 private Identifier name; 158 159 static final long serialVersionUID =1876531129266668488L; 160 161 public Memory () { 162 } 163 164 165 public Memory (MemberElement el) { 166 mod = el.getModifiers (); 167 name = el.getName (); 168 } 169 170 174 public int getModifiers() { 175 return mod; 176 } 177 178 182 public void setModifiers(int mod) { 183 int old = this.mod; 184 this.mod = mod; 185 firePropertyChange (PROP_MODIFIERS, new Integer (old), new Integer (mod)); 186 } 187 188 191 public synchronized Identifier getName() { 192 if (name == null) { 193 name = Identifier.create(""); } 196 return name; 197 } 198 199 202 public synchronized void setName(Identifier name) { 203 Identifier old = this.name; 204 this.name = name; 205 firePropertyChange (PROP_NAME, old, name); 206 } 207 208 public void markCurrent(boolean after) { 209 ClassElement decl = ((MemberElement)element).getDeclaringClass(); 210 if (decl == null) { 211 throw new IllegalStateException (); 212 } 213 ((ClassElement.Memory)decl.getCookie(ClassElement.Memory.class)).markCurrent(element, after); 214 } 215 } 216 } 217 | Popular Tags |