private static FieldDescriptor get0()

in yoko-rmi-impl/src/main/java/org/apache/yoko/rmi/impl/FieldDescriptor.java [148:198]


    private static FieldDescriptor get0(Class owner, Class type, String name,
            java.lang.reflect.Field f, TypeRepository repository) {

        if (type.isPrimitive()) {
            if (type == Boolean.TYPE) {
                return new BooleanFieldDescriptor(owner, type, name, f, repository);
            } else if (type == Byte.TYPE) {
                return new ByteFieldDescriptor(owner, type, name, f, repository);
            } else if (type == Short.TYPE) {
                return new ShortFieldDescriptor(owner, type, name, f, repository);
            } else if (type == Character.TYPE) {
                return new CharFieldDescriptor(owner, type, name, f, repository);
            } else if (type == Integer.TYPE) {
                return new IntFieldDescriptor(owner, type, name, f, repository);
            } else if (type == Long.TYPE) {
                return new LongFieldDescriptor(owner, type, name, f, repository);
            } else if (type == Float.TYPE) {
                return new FloatFieldDescriptor(owner, type, name, f, repository);
            } else if (type == Double.TYPE) {
                return new DoubleFieldDescriptor(owner, type, name, f, repository);
            } else {
                throw new RuntimeException("unknown field type " + type);
            }

        } else {
            if(org.omg.CORBA.Object.class.isAssignableFrom(type)) {
                return new CorbaObjectFieldDescriptor(owner, type, name, f, repository);
            }
            if (java.lang.Object.class.equals(type)
                    || java.io.Externalizable.class.equals(type)
                    || java.io.Serializable.class.equals(type)) {
                return new AnyFieldDescriptor(owner, type, name, f,repository);

            } else if (java.rmi.Remote.class.isAssignableFrom(type) 
                    || java.rmi.Remote.class.equals(type))
            {
                return new RemoteFieldDescriptor(owner, type, name, f, repository);

            } else if (String.class.equals(type)) {
                return new StringFieldDescriptor(owner, type, name, f, repository);

            } else if (java.io.Serializable.class.isAssignableFrom(type)) {
                return new ValueFieldDescriptor(owner, type, name, f, repository);
            } else if (type.isInterface() && type.getMethods().length > 0) {
                // interface classes that define methods 
                return new ValueFieldDescriptor(owner, type, name, f, repository);
            } else {
                return new ObjectFieldDescriptor(owner, type, name, f, repository);
            }
        }
    }