All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.apache.xmlbeans.impl.jam.internal.elements.BuiltinClassImpl Maven / Gradle / Ivy

Go to download

The Apache Commons Codec package contains simple encoder and decoders for various formats such as Base64 and Hexadecimal. In addition to these widely used encoders and decoders, the codec package also maintains a collection of phonetic encoding utilities.

The newest version!
/*   Copyright 2004 The Apache Software Foundation
 *
 *   Licensed under the Apache License, Version 2.0 (the "License");
 *   you may not use this file except in compliance with the License.
 *   You may obtain a copy of the License at
 *
 *       http://www.apache.org/licenses/LICENSE-2.0
 *
 *   Unless required by applicable law or agreed to in writing, software
 *   distributed under the License is distributed on an "AS IS" BASIS,
 *   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *   See the License for the specific language governing permissions and
 *  limitations under the License.
 */

package org.apache.xmlbeans.impl.jam.internal.elements;


import org.apache.xmlbeans.impl.jam.JClass;
import org.apache.xmlbeans.impl.jam.JConstructor;
import org.apache.xmlbeans.impl.jam.JField;
import org.apache.xmlbeans.impl.jam.JMethod;
import org.apache.xmlbeans.impl.jam.JPackage;
import org.apache.xmlbeans.impl.jam.JProperty;
import org.apache.xmlbeans.impl.jam.JSourcePosition;
import org.apache.xmlbeans.impl.jam.mutable.MClass;
import org.apache.xmlbeans.impl.jam.mutable.MConstructor;
import org.apache.xmlbeans.impl.jam.mutable.MField;
import org.apache.xmlbeans.impl.jam.mutable.MMethod;
import org.apache.xmlbeans.impl.jam.visitor.JVisitor;
import org.apache.xmlbeans.impl.jam.visitor.MVisitor;

/**
 * 

Base class for types that are 'built in' to the VM. This includes * void, primitives (but not their wrappers like Integer), and array types. * Note that java.lang.Object is not considered a Builtin.

* *

Note that while builtin classes cannot be modified, they can * be annotated and commented.

* * I think this is going to include generics as well. * * @author Patrick Calahan <email: pcal-at-bea-dot-com> */ public abstract class BuiltinClassImpl extends AnnotatedElementImpl implements MClass { // ======================================================================== // Constructors protected BuiltinClassImpl(ElementContext ctx) { super(ctx); } // ======================================================================== // JElement implementation public void accept(MVisitor visitor) { visitor.visit(this); } public void accept(JVisitor visitor) { visitor.visit(this); } public String getQualifiedName() { return mSimpleName; } public String getFieldDescriptor() { return mSimpleName; } // ======================================================================== // JMember implementation public int getModifiers() { return Object.class.getModifiers(); } public boolean isPublic() { return true; } public boolean isPackagePrivate() { return false; } public boolean isProtected() { return false; } public boolean isPrivate() { return false; } public JSourcePosition getSourcePosition() { return null; } public JClass getContainingClass() { return null; } // ======================================================================== // JClass implementation public JClass forName(String fd) { return getClassLoader().loadClass(fd); } public JClass getArrayComponentType() { return null; } public int getArrayDimensions() { return 0; } public JClass getSuperclass() { return null; } public JClass[] getInterfaces() { return NO_CLASS; } public JField[] getFields() { return NO_FIELD; } public JField[] getDeclaredFields() { return NO_FIELD; } public JConstructor[] getConstructors() { return NO_CONSTRUCTOR;} public JMethod[] getMethods() { return NO_METHOD; } public JMethod[] getDeclaredMethods() { return NO_METHOD; } public JPackage getContainingPackage() { return null; } public boolean isInterface() { return false; } public boolean isArrayType() { return false; } public boolean isAnnotationType() { return false; } public boolean isPrimitiveType() { return false; } public boolean isBuiltinType() { return true; } public boolean isUnresolvedType() { return false; } public boolean isObjectType() { return false; } public boolean isVoidType() { return false; } public boolean isEnumType() { return false; } public Class getPrimitiveClass() { return null; } public boolean isAbstract() { return false; } public boolean isFinal() { return false; } public boolean isStatic() { return false; } public JClass[] getClasses() { return NO_CLASS; } public JProperty[] getProperties() { return NO_PROPERTY; } public JProperty[] getDeclaredProperties() { return NO_PROPERTY; } public JPackage[] getImportedPackages() { return NO_PACKAGE; } public JClass[] getImportedClasses() { return NO_CLASS; } // ======================================================================== // MClass implementation public MField[] getMutableFields() { return NO_FIELD; } public MConstructor[] getMutableConstructors() { return NO_CONSTRUCTOR; } public MMethod[] getMutableMethods() { return NO_METHOD; } // can't do any of this stuff public void setSimpleName(String s) { nocando(); } public void setIsAnnotationType(boolean b) { nocando(); } public void setIsInterface(boolean b) { nocando(); } public void setIsUnresolvedType(boolean b) { nocando(); } public void setIsEnumType(boolean b) { nocando(); } public void setSuperclass(String qualifiedClassName) { nocando(); } public void setSuperclassUnqualified(String unqualifiedClassName) { nocando(); } public void setSuperclass(JClass clazz) { nocando(); } public void addInterface(String className) { nocando(); } public void addInterfaceUnqualified(String unqualifiedClassName) { nocando(); } public void addInterface(JClass interf) { nocando(); } public void removeInterface(String className) { nocando(); } public void removeInterface(JClass interf) { nocando(); } public MConstructor addNewConstructor() { nocando(); return null; } public void removeConstructor(MConstructor constr) { nocando(); } public MField addNewField() { nocando(); return null; } public void removeField(MField field) { nocando(); } public MMethod addNewMethod() { nocando(); return null; } public void removeMethod(MMethod method) { nocando(); } public void setModifiers(int modifiers) { nocando(); } public MClass addNewInnerClass(String named) { nocando(); return null; } public void removeInnerClass(MClass inner) { nocando(); } public JProperty addNewProperty(String name, JMethod m, JMethod x) { nocando(); return null; } public void removeProperty(JProperty prop) { nocando(); } public JProperty addNewDeclaredProperty(String name, JMethod m, JMethod x) { nocando(); return null; } public void removeDeclaredProperty(JProperty prop) { nocando(); } // ======================================================================== // Object implementation public boolean equals(Object o) { if (o instanceof JClass) { return ((JClass)o).getFieldDescriptor().equals(getFieldDescriptor()); } else { return false; } } public int hashCode() { return getFieldDescriptor().hashCode(); } // ======================================================================== // Protected methods protected void reallySetSimpleName(String name) { super.setSimpleName(name); } // ======================================================================== // Private methods private void nocando() { throw new UnsupportedOperationException("Cannot alter builtin types"); } }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy