com.sun.xml.internal.bind.v2.runtime.RuntimeUtil Java Examples

The following examples show how to use com.sun.xml.internal.bind.v2.runtime.RuntimeUtil. You can vote up the ones you like or vote down the ones you don't like, and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example #1
Source File: ArrayElementProperty.java    From TencentKona-8 with GNU General Public License v2.0 6 votes vote down vote up
protected ArrayElementProperty(JAXBContextImpl grammar, RuntimeElementPropertyInfo prop) {
    super(grammar, prop, prop.getXmlName(), prop.isCollectionNillable());
    this.prop = prop;

    List<? extends RuntimeTypeRef> types = prop.getTypes();

    Name n = null;

    for (RuntimeTypeRef typeRef : types) {
        Class type = (Class)typeRef.getTarget().getType();
        if(type.isPrimitive())
            type = RuntimeUtil.primitiveToBox.get(type);

        JaxBeanInfo beanInfo = grammar.getOrCreate(typeRef.getTarget());
        TagAndType tt = new TagAndType(
                            grammar.nameBuilder.createElementName(typeRef.getTagName()),
                            beanInfo);
        typeMap.put(type,tt);
        refs.put(typeRef,beanInfo);
        if(typeRef.isNillable() && n==null)
            n = tt.tagName;
    }

    nillableTagName = n;
}
 
Example #2
Source File: ArrayElementProperty.java    From openjdk-8 with GNU General Public License v2.0 6 votes vote down vote up
protected ArrayElementProperty(JAXBContextImpl grammar, RuntimeElementPropertyInfo prop) {
    super(grammar, prop, prop.getXmlName(), prop.isCollectionNillable());
    this.prop = prop;

    List<? extends RuntimeTypeRef> types = prop.getTypes();

    Name n = null;

    for (RuntimeTypeRef typeRef : types) {
        Class type = (Class)typeRef.getTarget().getType();
        if(type.isPrimitive())
            type = RuntimeUtil.primitiveToBox.get(type);

        JaxBeanInfo beanInfo = grammar.getOrCreate(typeRef.getTarget());
        TagAndType tt = new TagAndType(
                            grammar.nameBuilder.createElementName(typeRef.getTagName()),
                            beanInfo);
        typeMap.put(type,tt);
        refs.put(typeRef,beanInfo);
        if(typeRef.isNillable() && n==null)
            n = tt.tagName;
    }

    nillableTagName = n;
}
 
Example #3
Source File: TypeInfoSetImpl.java    From openjdk-8 with GNU General Public License v2.0 6 votes vote down vote up
public TypeInfoSetImpl(Navigator<T,C,F,M> nav,
                       AnnotationReader<T,C,F,M> reader,
                       Map<T,? extends BuiltinLeafInfoImpl<T,C>> leaves) {
    this.nav = nav;
    this.reader = reader;
    this.builtins.putAll(leaves);

    this.anyType = createAnyType();

    // register primitive types.
    for (Map.Entry<Class, Class> e : RuntimeUtil.primitiveToBox.entrySet()) {
        this.builtins.put( nav.getPrimitive(e.getKey()), leaves.get(nav.ref(e.getValue())) );
    }

    // make sure at lease we got a map for global ones.
    elementMappings.put(null,new LinkedHashMap<QName,ElementInfoImpl<T,C,F,M>>());
}
 
Example #4
Source File: ArrayElementProperty.java    From openjdk-8-source with GNU General Public License v2.0 6 votes vote down vote up
protected ArrayElementProperty(JAXBContextImpl grammar, RuntimeElementPropertyInfo prop) {
    super(grammar, prop, prop.getXmlName(), prop.isCollectionNillable());
    this.prop = prop;

    List<? extends RuntimeTypeRef> types = prop.getTypes();

    Name n = null;

    for (RuntimeTypeRef typeRef : types) {
        Class type = (Class)typeRef.getTarget().getType();
        if(type.isPrimitive())
            type = RuntimeUtil.primitiveToBox.get(type);

        JaxBeanInfo beanInfo = grammar.getOrCreate(typeRef.getTarget());
        TagAndType tt = new TagAndType(
                            grammar.nameBuilder.createElementName(typeRef.getTagName()),
                            beanInfo);
        typeMap.put(type,tt);
        refs.put(typeRef,beanInfo);
        if(typeRef.isNillable() && n==null)
            n = tt.tagName;
    }

    nillableTagName = n;
}
 
Example #5
Source File: TypeInfoSetImpl.java    From openjdk-8-source with GNU General Public License v2.0 6 votes vote down vote up
public TypeInfoSetImpl(Navigator<T,C,F,M> nav,
                       AnnotationReader<T,C,F,M> reader,
                       Map<T,? extends BuiltinLeafInfoImpl<T,C>> leaves) {
    this.nav = nav;
    this.reader = reader;
    this.builtins.putAll(leaves);

    this.anyType = createAnyType();

    // register primitive types.
    for (Map.Entry<Class, Class> e : RuntimeUtil.primitiveToBox.entrySet()) {
        this.builtins.put( nav.getPrimitive(e.getKey()), leaves.get(nav.ref(e.getValue())) );
    }

    // make sure at lease we got a map for global ones.
    elementMappings.put(null,new LinkedHashMap<QName,ElementInfoImpl<T,C,F,M>>());
}
 
Example #6
Source File: ArrayElementProperty.java    From hottub with GNU General Public License v2.0 6 votes vote down vote up
protected ArrayElementProperty(JAXBContextImpl grammar, RuntimeElementPropertyInfo prop) {
    super(grammar, prop, prop.getXmlName(), prop.isCollectionNillable());
    this.prop = prop;

    List<? extends RuntimeTypeRef> types = prop.getTypes();

    Name n = null;

    for (RuntimeTypeRef typeRef : types) {
        Class type = (Class)typeRef.getTarget().getType();
        if(type.isPrimitive())
            type = RuntimeUtil.primitiveToBox.get(type);

        JaxBeanInfo beanInfo = grammar.getOrCreate(typeRef.getTarget());
        TagAndType tt = new TagAndType(
                            grammar.nameBuilder.createElementName(typeRef.getTagName()),
                            beanInfo);
        typeMap.put(type,tt);
        refs.put(typeRef,beanInfo);
        if(typeRef.isNillable() && n==null)
            n = tt.tagName;
    }

    nillableTagName = n;
}
 
Example #7
Source File: TypeInfoSetImpl.java    From hottub with GNU General Public License v2.0 6 votes vote down vote up
public TypeInfoSetImpl(Navigator<T,C,F,M> nav,
                       AnnotationReader<T,C,F,M> reader,
                       Map<T,? extends BuiltinLeafInfoImpl<T,C>> leaves) {
    this.nav = nav;
    this.reader = reader;
    this.builtins.putAll(leaves);

    this.anyType = createAnyType();

    // register primitive types.
    for (Map.Entry<Class, Class> e : RuntimeUtil.primitiveToBox.entrySet()) {
        this.builtins.put( nav.getPrimitive(e.getKey()), leaves.get(nav.ref(e.getValue())) );
    }

    // make sure at lease we got a map for global ones.
    elementMappings.put(null,new LinkedHashMap<QName,ElementInfoImpl<T,C,F,M>>());
}
 
Example #8
Source File: ArrayElementProperty.java    From openjdk-jdk9 with GNU General Public License v2.0 6 votes vote down vote up
protected ArrayElementProperty(JAXBContextImpl grammar, RuntimeElementPropertyInfo prop) {
    super(grammar, prop, prop.getXmlName(), prop.isCollectionNillable());
    this.prop = prop;

    List<? extends RuntimeTypeRef> types = prop.getTypes();

    Name n = null;

    for (RuntimeTypeRef typeRef : types) {
        Class type = (Class)typeRef.getTarget().getType();
        if(type.isPrimitive())
            type = RuntimeUtil.primitiveToBox.get(type);

        JaxBeanInfo beanInfo = grammar.getOrCreate(typeRef.getTarget());
        TagAndType tt = new TagAndType(
                            grammar.nameBuilder.createElementName(typeRef.getTagName()),
                            beanInfo);
        typeMap.put(type,tt);
        refs.put(typeRef,beanInfo);
        if(typeRef.isNillable() && n==null)
            n = tt.tagName;
    }

    nillableTagName = n;
}
 
Example #9
Source File: TypeInfoSetImpl.java    From openjdk-jdk9 with GNU General Public License v2.0 6 votes vote down vote up
public TypeInfoSetImpl(Navigator<T,C,F,M> nav,
                       AnnotationReader<T,C,F,M> reader,
                       Map<T,? extends BuiltinLeafInfoImpl<T,C>> leaves) {
    this.nav = nav;
    this.reader = reader;
    this.builtins.putAll(leaves);

    this.anyType = createAnyType();

    // register primitive types.
    for (Map.Entry<Class, Class> e : RuntimeUtil.primitiveToBox.entrySet()) {
        this.builtins.put( nav.getPrimitive(e.getKey()), leaves.get(nav.ref(e.getValue())) );
    }

    // make sure at lease we got a map for global ones.
    elementMappings.put(null,new LinkedHashMap<QName,ElementInfoImpl<T,C,F,M>>());
}
 
Example #10
Source File: ArrayElementProperty.java    From openjdk-jdk8u-backup with GNU General Public License v2.0 6 votes vote down vote up
protected ArrayElementProperty(JAXBContextImpl grammar, RuntimeElementPropertyInfo prop) {
    super(grammar, prop, prop.getXmlName(), prop.isCollectionNillable());
    this.prop = prop;

    List<? extends RuntimeTypeRef> types = prop.getTypes();

    Name n = null;

    for (RuntimeTypeRef typeRef : types) {
        Class type = (Class)typeRef.getTarget().getType();
        if(type.isPrimitive())
            type = RuntimeUtil.primitiveToBox.get(type);

        JaxBeanInfo beanInfo = grammar.getOrCreate(typeRef.getTarget());
        TagAndType tt = new TagAndType(
                            grammar.nameBuilder.createElementName(typeRef.getTagName()),
                            beanInfo);
        typeMap.put(type,tt);
        refs.put(typeRef,beanInfo);
        if(typeRef.isNillable() && n==null)
            n = tt.tagName;
    }

    nillableTagName = n;
}
 
Example #11
Source File: TypeInfoSetImpl.java    From openjdk-jdk8u-backup with GNU General Public License v2.0 6 votes vote down vote up
public TypeInfoSetImpl(Navigator<T,C,F,M> nav,
                       AnnotationReader<T,C,F,M> reader,
                       Map<T,? extends BuiltinLeafInfoImpl<T,C>> leaves) {
    this.nav = nav;
    this.reader = reader;
    this.builtins.putAll(leaves);

    this.anyType = createAnyType();

    // register primitive types.
    for (Map.Entry<Class, Class> e : RuntimeUtil.primitiveToBox.entrySet()) {
        this.builtins.put( nav.getPrimitive(e.getKey()), leaves.get(nav.ref(e.getValue())) );
    }

    // make sure at lease we got a map for global ones.
    elementMappings.put(null,new LinkedHashMap<QName,ElementInfoImpl<T,C,F,M>>());
}
 
Example #12
Source File: ArrayElementProperty.java    From openjdk-jdk8u with GNU General Public License v2.0 6 votes vote down vote up
protected ArrayElementProperty(JAXBContextImpl grammar, RuntimeElementPropertyInfo prop) {
    super(grammar, prop, prop.getXmlName(), prop.isCollectionNillable());
    this.prop = prop;

    List<? extends RuntimeTypeRef> types = prop.getTypes();

    Name n = null;

    for (RuntimeTypeRef typeRef : types) {
        Class type = (Class)typeRef.getTarget().getType();
        if(type.isPrimitive())
            type = RuntimeUtil.primitiveToBox.get(type);

        JaxBeanInfo beanInfo = grammar.getOrCreate(typeRef.getTarget());
        TagAndType tt = new TagAndType(
                            grammar.nameBuilder.createElementName(typeRef.getTagName()),
                            beanInfo);
        typeMap.put(type,tt);
        refs.put(typeRef,beanInfo);
        if(typeRef.isNillable() && n==null)
            n = tt.tagName;
    }

    nillableTagName = n;
}
 
Example #13
Source File: TypeInfoSetImpl.java    From TencentKona-8 with GNU General Public License v2.0 6 votes vote down vote up
public TypeInfoSetImpl(Navigator<T,C,F,M> nav,
                       AnnotationReader<T,C,F,M> reader,
                       Map<T,? extends BuiltinLeafInfoImpl<T,C>> leaves) {
    this.nav = nav;
    this.reader = reader;
    this.builtins.putAll(leaves);

    this.anyType = createAnyType();

    // register primitive types.
    for (Map.Entry<Class, Class> e : RuntimeUtil.primitiveToBox.entrySet()) {
        this.builtins.put( nav.getPrimitive(e.getKey()), leaves.get(nav.ref(e.getValue())) );
    }

    // make sure at lease we got a map for global ones.
    elementMappings.put(null,new LinkedHashMap<QName,ElementInfoImpl<T,C,F,M>>());
}
 
Example #14
Source File: TypeInfoSetImpl.java    From openjdk-jdk8u with GNU General Public License v2.0 6 votes vote down vote up
public TypeInfoSetImpl(Navigator<T,C,F,M> nav,
                       AnnotationReader<T,C,F,M> reader,
                       Map<T,? extends BuiltinLeafInfoImpl<T,C>> leaves) {
    this.nav = nav;
    this.reader = reader;
    this.builtins.putAll(leaves);

    this.anyType = createAnyType();

    // register primitive types.
    for (Map.Entry<Class, Class> e : RuntimeUtil.primitiveToBox.entrySet()) {
        this.builtins.put( nav.getPrimitive(e.getKey()), leaves.get(nav.ref(e.getValue())) );
    }

    // make sure at lease we got a map for global ones.
    elementMappings.put(null,new LinkedHashMap<QName,ElementInfoImpl<T,C,F,M>>());
}
 
Example #15
Source File: ArrayElementProperty.java    From jdk8u60 with GNU General Public License v2.0 6 votes vote down vote up
protected ArrayElementProperty(JAXBContextImpl grammar, RuntimeElementPropertyInfo prop) {
    super(grammar, prop, prop.getXmlName(), prop.isCollectionNillable());
    this.prop = prop;

    List<? extends RuntimeTypeRef> types = prop.getTypes();

    Name n = null;

    for (RuntimeTypeRef typeRef : types) {
        Class type = (Class)typeRef.getTarget().getType();
        if(type.isPrimitive())
            type = RuntimeUtil.primitiveToBox.get(type);

        JaxBeanInfo beanInfo = grammar.getOrCreate(typeRef.getTarget());
        TagAndType tt = new TagAndType(
                            grammar.nameBuilder.createElementName(typeRef.getTagName()),
                            beanInfo);
        typeMap.put(type,tt);
        refs.put(typeRef,beanInfo);
        if(typeRef.isNillable() && n==null)
            n = tt.tagName;
    }

    nillableTagName = n;
}
 
Example #16
Source File: TypeInfoSetImpl.java    From jdk8u60 with GNU General Public License v2.0 6 votes vote down vote up
public TypeInfoSetImpl(Navigator<T,C,F,M> nav,
                       AnnotationReader<T,C,F,M> reader,
                       Map<T,? extends BuiltinLeafInfoImpl<T,C>> leaves) {
    this.nav = nav;
    this.reader = reader;
    this.builtins.putAll(leaves);

    this.anyType = createAnyType();

    // register primitive types.
    for (Map.Entry<Class, Class> e : RuntimeUtil.primitiveToBox.entrySet()) {
        this.builtins.put( nav.getPrimitive(e.getKey()), leaves.get(nav.ref(e.getValue())) );
    }

    // make sure at lease we got a map for global ones.
    elementMappings.put(null,new LinkedHashMap<QName,ElementInfoImpl<T,C,F,M>>());
}
 
Example #17
Source File: OptimizedAccessorFactory.java    From openjdk-8 with GNU General Public License v2.0 4 votes vote down vote up
/**
 * Gets the optimized {@link Accessor} that accesses the given field.
 *
 * @return null
 *      if for some reason it fails to create an optimized version.
 */
public static final <B,V> Accessor<B,V> get(Field field) {
    int mods = field.getModifiers();
    if(Modifier.isPrivate(mods) || Modifier.isFinal(mods))
        // we can't access private fields
        return null;

    String newClassName = toVMClassName(field.getDeclaringClass())+"$JaxbAccessorF_"+field.getName();

    Class opt;

    if(field.getType().isPrimitive())
        opt = AccessorInjector.prepare( field.getDeclaringClass(),
            fieldTemplateName+RuntimeUtil.primitiveToBox.get(field.getType()).getSimpleName(),
            newClassName,
            toVMClassName(Bean.class),
            toVMClassName(field.getDeclaringClass()),
            "f_"+field.getType().getName(),
            field.getName() );
    else
        opt = AccessorInjector.prepare( field.getDeclaringClass(),
            fieldTemplateName+"Ref",
            newClassName,
            toVMClassName(Bean.class),
            toVMClassName(field.getDeclaringClass()),
            toVMClassName(Ref.class),
            toVMClassName(field.getType()),
            toVMTypeName(Ref.class),
            toVMTypeName(field.getType()),
            "f_ref",
            field.getName() );

    if(opt==null)
        return null;

    Accessor<B,V> acc = instanciate(opt);
    if (acc!=null) {
        if (logger.isLoggable(Level.FINE)) {
            logger.log(Level.FINE, "Using optimized Accessor for {0}", field);
        }
    }
    return acc;
}
 
Example #18
Source File: OptimizedAccessorFactory.java    From openjdk-jdk8u with GNU General Public License v2.0 4 votes vote down vote up
/**
 * Gets the optimized {@link Accessor} that accesses the given field.
 *
 * @return null
 *      if for some reason it fails to create an optimized version.
 */
public static final <B,V> Accessor<B,V> get(Field field) {
    int mods = field.getModifiers();
    if(Modifier.isPrivate(mods) || Modifier.isFinal(mods))
        // we can't access private fields
        return null;

    String newClassName = toVMClassName(field.getDeclaringClass())+"$JaxbAccessorF_"+field.getName();

    Class opt;

    if(field.getType().isPrimitive())
        opt = AccessorInjector.prepare( field.getDeclaringClass(),
            fieldTemplateName+RuntimeUtil.primitiveToBox.get(field.getType()).getSimpleName(),
            newClassName,
            toVMClassName(Bean.class),
            toVMClassName(field.getDeclaringClass()),
            "f_"+field.getType().getName(),
            field.getName() );
    else
        opt = AccessorInjector.prepare( field.getDeclaringClass(),
            fieldTemplateName+"Ref",
            newClassName,
            toVMClassName(Bean.class),
            toVMClassName(field.getDeclaringClass()),
            toVMClassName(Ref.class),
            toVMClassName(field.getType()),
            toVMTypeName(Ref.class),
            toVMTypeName(field.getType()),
            "f_ref",
            field.getName() );

    if(opt==null)
        return null;

    Accessor<B,V> acc = instanciate(opt);
    if (acc!=null) {
        if (logger.isLoggable(Level.FINE)) {
            logger.log(Level.FINE, "Using optimized Accessor for {0}", field);
        }
    }
    return acc;
}
 
Example #19
Source File: OptimizedAccessorFactory.java    From openjdk-8 with GNU General Public License v2.0 4 votes vote down vote up
/**
 * Gets the optimized {@link Accessor} that accesses the given getter/setter.
 *
 * @return null
 *      if for some reason it fails to create an optimized version.
 */
public static final <B,V> Accessor<B,V> get(Method getter, Method setter) {
    // make sure the method signatures are what we expect
    if(getter.getParameterTypes().length!=0)
        return null;
    Class<?>[] sparams = setter.getParameterTypes();
    if(sparams.length!=1)
        return null;
    if(sparams[0]!=getter.getReturnType())
        return null;
    if(setter.getReturnType()!=Void.TYPE)
        return null;
    if(getter.getDeclaringClass()!=setter.getDeclaringClass())
        return null;
    if(Modifier.isPrivate(getter.getModifiers()) || Modifier.isPrivate(setter.getModifiers()))
        // we can't access private fields
        return null;

    Class t = sparams[0];
    String typeName = t.getName().replace('.','_');
    if (t.isArray()) {
        typeName = "AOf_";
        String compName = t.getComponentType().getName().replace('.','_');
        while (compName.startsWith("[L")) {
            compName = compName.substring(2);
            typeName += "AOf_";
        }
        typeName = typeName + compName;
    }

    String newClassName = toVMClassName(getter.getDeclaringClass())+"$JaxbAccessorM_"+getter.getName()+'_'+setter.getName()+'_'+typeName;
    Class opt;

    if(t.isPrimitive())
        opt = AccessorInjector.prepare( getter.getDeclaringClass(),
            methodTemplateName+RuntimeUtil.primitiveToBox.get(t).getSimpleName(),
            newClassName,
            toVMClassName(Bean.class),
            toVMClassName(getter.getDeclaringClass()),
            "get_"+t.getName(),
            getter.getName(),
            "set_"+t.getName(),
            setter.getName());
    else
        opt = AccessorInjector.prepare( getter.getDeclaringClass(),
            methodTemplateName+"Ref",
            newClassName,
            toVMClassName(Bean.class),
            toVMClassName(getter.getDeclaringClass()),
            toVMClassName(Ref.class),
            toVMClassName(t),
            "()"+toVMTypeName(Ref.class),
            "()"+toVMTypeName(t),
            '('+toVMTypeName(Ref.class)+")V",
            '('+toVMTypeName(t)+")V",
            "get_ref",
            getter.getName(),
            "set_ref",
            setter.getName());

    if(opt==null)
        return null;

    Accessor<B,V> acc = instanciate(opt);
    if (acc!=null) {
        if (logger.isLoggable(Level.FINE)) {
            logger.log(Level.FINE, "Using optimized Accessor for {0} and {1}", new Object[]{getter, setter});
        }
    }
    return acc;
}
 
Example #20
Source File: OptimizedAccessorFactory.java    From TencentKona-8 with GNU General Public License v2.0 4 votes vote down vote up
/**
 * Gets the optimized {@link Accessor} that accesses the given getter/setter.
 *
 * @return null
 *      if for some reason it fails to create an optimized version.
 */
public static final <B,V> Accessor<B,V> get(Method getter, Method setter) {
    // make sure the method signatures are what we expect
    if(getter.getParameterTypes().length!=0)
        return null;
    Class<?>[] sparams = setter.getParameterTypes();
    if(sparams.length!=1)
        return null;
    if(sparams[0]!=getter.getReturnType())
        return null;
    if(setter.getReturnType()!=Void.TYPE)
        return null;
    if(getter.getDeclaringClass()!=setter.getDeclaringClass())
        return null;
    if(Modifier.isPrivate(getter.getModifiers()) || Modifier.isPrivate(setter.getModifiers()))
        // we can't access private fields
        return null;

    Class t = sparams[0];
    String typeName = t.getName().replace('.','_');
    if (t.isArray()) {
        typeName = "AOf_";
        String compName = t.getComponentType().getName().replace('.','_');
        while (compName.startsWith("[L")) {
            compName = compName.substring(2);
            typeName += "AOf_";
        }
        typeName = typeName + compName;
    }

    String newClassName = toVMClassName(getter.getDeclaringClass())+"$JaxbAccessorM_"+getter.getName()+'_'+setter.getName()+'_'+typeName;
    Class opt;

    if(t.isPrimitive())
        opt = AccessorInjector.prepare( getter.getDeclaringClass(),
            methodTemplateName+RuntimeUtil.primitiveToBox.get(t).getSimpleName(),
            newClassName,
            toVMClassName(Bean.class),
            toVMClassName(getter.getDeclaringClass()),
            "get_"+t.getName(),
            getter.getName(),
            "set_"+t.getName(),
            setter.getName());
    else
        opt = AccessorInjector.prepare( getter.getDeclaringClass(),
            methodTemplateName+"Ref",
            newClassName,
            toVMClassName(Bean.class),
            toVMClassName(getter.getDeclaringClass()),
            toVMClassName(Ref.class),
            toVMClassName(t),
            "()"+toVMTypeName(Ref.class),
            "()"+toVMTypeName(t),
            '('+toVMTypeName(Ref.class)+")V",
            '('+toVMTypeName(t)+")V",
            "get_ref",
            getter.getName(),
            "set_ref",
            setter.getName());

    if(opt==null)
        return null;

    Accessor<B,V> acc = instanciate(opt);
    if (acc!=null) {
        if (logger.isLoggable(Level.FINE)) {
            logger.log(Level.FINE, "Using optimized Accessor for {0} and {1}", new Object[]{getter, setter});
        }
    }
    return acc;
}
 
Example #21
Source File: OptimizedAccessorFactory.java    From openjdk-8-source with GNU General Public License v2.0 4 votes vote down vote up
/**
 * Gets the optimized {@link Accessor} that accesses the given field.
 *
 * @return null
 *      if for some reason it fails to create an optimized version.
 */
public static final <B,V> Accessor<B,V> get(Field field) {
    int mods = field.getModifiers();
    if(Modifier.isPrivate(mods) || Modifier.isFinal(mods))
        // we can't access private fields
        return null;

    String newClassName = toVMClassName(field.getDeclaringClass())+"$JaxbAccessorF_"+field.getName();

    Class opt;

    if(field.getType().isPrimitive())
        opt = AccessorInjector.prepare( field.getDeclaringClass(),
            fieldTemplateName+RuntimeUtil.primitiveToBox.get(field.getType()).getSimpleName(),
            newClassName,
            toVMClassName(Bean.class),
            toVMClassName(field.getDeclaringClass()),
            "f_"+field.getType().getName(),
            field.getName() );
    else
        opt = AccessorInjector.prepare( field.getDeclaringClass(),
            fieldTemplateName+"Ref",
            newClassName,
            toVMClassName(Bean.class),
            toVMClassName(field.getDeclaringClass()),
            toVMClassName(Ref.class),
            toVMClassName(field.getType()),
            toVMTypeName(Ref.class),
            toVMTypeName(field.getType()),
            "f_ref",
            field.getName() );

    if(opt==null)
        return null;

    Accessor<B,V> acc = instanciate(opt);
    if (acc!=null) {
        if (logger.isLoggable(Level.FINE)) {
            logger.log(Level.FINE, "Using optimized Accessor for {0}", field);
        }
    }
    return acc;
}
 
Example #22
Source File: OptimizedAccessorFactory.java    From openjdk-8-source with GNU General Public License v2.0 4 votes vote down vote up
/**
 * Gets the optimized {@link Accessor} that accesses the given getter/setter.
 *
 * @return null
 *      if for some reason it fails to create an optimized version.
 */
public static final <B,V> Accessor<B,V> get(Method getter, Method setter) {
    // make sure the method signatures are what we expect
    if(getter.getParameterTypes().length!=0)
        return null;
    Class<?>[] sparams = setter.getParameterTypes();
    if(sparams.length!=1)
        return null;
    if(sparams[0]!=getter.getReturnType())
        return null;
    if(setter.getReturnType()!=Void.TYPE)
        return null;
    if(getter.getDeclaringClass()!=setter.getDeclaringClass())
        return null;
    if(Modifier.isPrivate(getter.getModifiers()) || Modifier.isPrivate(setter.getModifiers()))
        // we can't access private fields
        return null;

    Class t = sparams[0];
    String typeName = t.getName().replace('.','_');
    if (t.isArray()) {
        typeName = "AOf_";
        String compName = t.getComponentType().getName().replace('.','_');
        while (compName.startsWith("[L")) {
            compName = compName.substring(2);
            typeName += "AOf_";
        }
        typeName = typeName + compName;
    }

    String newClassName = toVMClassName(getter.getDeclaringClass())+"$JaxbAccessorM_"+getter.getName()+'_'+setter.getName()+'_'+typeName;
    Class opt;

    if(t.isPrimitive())
        opt = AccessorInjector.prepare( getter.getDeclaringClass(),
            methodTemplateName+RuntimeUtil.primitiveToBox.get(t).getSimpleName(),
            newClassName,
            toVMClassName(Bean.class),
            toVMClassName(getter.getDeclaringClass()),
            "get_"+t.getName(),
            getter.getName(),
            "set_"+t.getName(),
            setter.getName());
    else
        opt = AccessorInjector.prepare( getter.getDeclaringClass(),
            methodTemplateName+"Ref",
            newClassName,
            toVMClassName(Bean.class),
            toVMClassName(getter.getDeclaringClass()),
            toVMClassName(Ref.class),
            toVMClassName(t),
            "()"+toVMTypeName(Ref.class),
            "()"+toVMTypeName(t),
            '('+toVMTypeName(Ref.class)+")V",
            '('+toVMTypeName(t)+")V",
            "get_ref",
            getter.getName(),
            "set_ref",
            setter.getName());

    if(opt==null)
        return null;

    Accessor<B,V> acc = instanciate(opt);
    if (acc!=null) {
        if (logger.isLoggable(Level.FINE)) {
            logger.log(Level.FINE, "Using optimized Accessor for {0} and {1}", new Object[]{getter, setter});
        }
    }
    return acc;
}
 
Example #23
Source File: OptimizedAccessorFactory.java    From TencentKona-8 with GNU General Public License v2.0 4 votes vote down vote up
/**
 * Gets the optimized {@link Accessor} that accesses the given field.
 *
 * @return null
 *      if for some reason it fails to create an optimized version.
 */
public static final <B,V> Accessor<B,V> get(Field field) {
    int mods = field.getModifiers();
    if(Modifier.isPrivate(mods) || Modifier.isFinal(mods))
        // we can't access private fields
        return null;

    String newClassName = toVMClassName(field.getDeclaringClass())+"$JaxbAccessorF_"+field.getName();

    Class opt;

    if(field.getType().isPrimitive())
        opt = AccessorInjector.prepare( field.getDeclaringClass(),
            fieldTemplateName+RuntimeUtil.primitiveToBox.get(field.getType()).getSimpleName(),
            newClassName,
            toVMClassName(Bean.class),
            toVMClassName(field.getDeclaringClass()),
            "f_"+field.getType().getName(),
            field.getName() );
    else
        opt = AccessorInjector.prepare( field.getDeclaringClass(),
            fieldTemplateName+"Ref",
            newClassName,
            toVMClassName(Bean.class),
            toVMClassName(field.getDeclaringClass()),
            toVMClassName(Ref.class),
            toVMClassName(field.getType()),
            toVMTypeName(Ref.class),
            toVMTypeName(field.getType()),
            "f_ref",
            field.getName() );

    if(opt==null)
        return null;

    Accessor<B,V> acc = instanciate(opt);
    if (acc!=null) {
        if (logger.isLoggable(Level.FINE)) {
            logger.log(Level.FINE, "Using optimized Accessor for {0}", field);
        }
    }
    return acc;
}
 
Example #24
Source File: OptimizedAccessorFactory.java    From hottub with GNU General Public License v2.0 4 votes vote down vote up
/**
 * Gets the optimized {@link Accessor} that accesses the given field.
 *
 * @return null
 *      if for some reason it fails to create an optimized version.
 */
public static final <B,V> Accessor<B,V> get(Field field) {
    int mods = field.getModifiers();
    if(Modifier.isPrivate(mods) || Modifier.isFinal(mods))
        // we can't access private fields
        return null;

    String newClassName = toVMClassName(field.getDeclaringClass())+"$JaxbAccessorF_"+field.getName();

    Class opt;

    if(field.getType().isPrimitive())
        opt = AccessorInjector.prepare( field.getDeclaringClass(),
            fieldTemplateName+RuntimeUtil.primitiveToBox.get(field.getType()).getSimpleName(),
            newClassName,
            toVMClassName(Bean.class),
            toVMClassName(field.getDeclaringClass()),
            "f_"+field.getType().getName(),
            field.getName() );
    else
        opt = AccessorInjector.prepare( field.getDeclaringClass(),
            fieldTemplateName+"Ref",
            newClassName,
            toVMClassName(Bean.class),
            toVMClassName(field.getDeclaringClass()),
            toVMClassName(Ref.class),
            toVMClassName(field.getType()),
            toVMTypeName(Ref.class),
            toVMTypeName(field.getType()),
            "f_ref",
            field.getName() );

    if(opt==null)
        return null;

    Accessor<B,V> acc = instanciate(opt);
    if (acc!=null) {
        if (logger.isLoggable(Level.FINE)) {
            logger.log(Level.FINE, "Using optimized Accessor for {0}", field);
        }
    }
    return acc;
}
 
Example #25
Source File: OptimizedAccessorFactory.java    From hottub with GNU General Public License v2.0 4 votes vote down vote up
/**
 * Gets the optimized {@link Accessor} that accesses the given getter/setter.
 *
 * @return null
 *      if for some reason it fails to create an optimized version.
 */
public static final <B,V> Accessor<B,V> get(Method getter, Method setter) {
    // make sure the method signatures are what we expect
    if(getter.getParameterTypes().length!=0)
        return null;
    Class<?>[] sparams = setter.getParameterTypes();
    if(sparams.length!=1)
        return null;
    if(sparams[0]!=getter.getReturnType())
        return null;
    if(setter.getReturnType()!=Void.TYPE)
        return null;
    if(getter.getDeclaringClass()!=setter.getDeclaringClass())
        return null;
    if(Modifier.isPrivate(getter.getModifiers()) || Modifier.isPrivate(setter.getModifiers()))
        // we can't access private fields
        return null;

    Class t = sparams[0];
    String typeName = t.getName().replace('.','_');
    if (t.isArray()) {
        typeName = "AOf_";
        String compName = t.getComponentType().getName().replace('.','_');
        while (compName.startsWith("[L")) {
            compName = compName.substring(2);
            typeName += "AOf_";
        }
        typeName = typeName + compName;
    }

    String newClassName = toVMClassName(getter.getDeclaringClass())+"$JaxbAccessorM_"+getter.getName()+'_'+setter.getName()+'_'+typeName;
    Class opt;

    if(t.isPrimitive())
        opt = AccessorInjector.prepare( getter.getDeclaringClass(),
            methodTemplateName+RuntimeUtil.primitiveToBox.get(t).getSimpleName(),
            newClassName,
            toVMClassName(Bean.class),
            toVMClassName(getter.getDeclaringClass()),
            "get_"+t.getName(),
            getter.getName(),
            "set_"+t.getName(),
            setter.getName());
    else
        opt = AccessorInjector.prepare( getter.getDeclaringClass(),
            methodTemplateName+"Ref",
            newClassName,
            toVMClassName(Bean.class),
            toVMClassName(getter.getDeclaringClass()),
            toVMClassName(Ref.class),
            toVMClassName(t),
            "()"+toVMTypeName(Ref.class),
            "()"+toVMTypeName(t),
            '('+toVMTypeName(Ref.class)+")V",
            '('+toVMTypeName(t)+")V",
            "get_ref",
            getter.getName(),
            "set_ref",
            setter.getName());

    if(opt==null)
        return null;

    Accessor<B,V> acc = instanciate(opt);
    if (acc!=null) {
        if (logger.isLoggable(Level.FINE)) {
            logger.log(Level.FINE, "Using optimized Accessor for {0} and {1}", new Object[]{getter, setter});
        }
    }
    return acc;
}
 
Example #26
Source File: OptimizedAccessorFactory.java    From jdk8u60 with GNU General Public License v2.0 4 votes vote down vote up
/**
 * Gets the optimized {@link Accessor} that accesses the given getter/setter.
 *
 * @return null
 *      if for some reason it fails to create an optimized version.
 */
public static final <B,V> Accessor<B,V> get(Method getter, Method setter) {
    // make sure the method signatures are what we expect
    if(getter.getParameterTypes().length!=0)
        return null;
    Class<?>[] sparams = setter.getParameterTypes();
    if(sparams.length!=1)
        return null;
    if(sparams[0]!=getter.getReturnType())
        return null;
    if(setter.getReturnType()!=Void.TYPE)
        return null;
    if(getter.getDeclaringClass()!=setter.getDeclaringClass())
        return null;
    if(Modifier.isPrivate(getter.getModifiers()) || Modifier.isPrivate(setter.getModifiers()))
        // we can't access private fields
        return null;

    Class t = sparams[0];
    String typeName = t.getName().replace('.','_');
    if (t.isArray()) {
        typeName = "AOf_";
        String compName = t.getComponentType().getName().replace('.','_');
        while (compName.startsWith("[L")) {
            compName = compName.substring(2);
            typeName += "AOf_";
        }
        typeName = typeName + compName;
    }

    String newClassName = toVMClassName(getter.getDeclaringClass())+"$JaxbAccessorM_"+getter.getName()+'_'+setter.getName()+'_'+typeName;
    Class opt;

    if(t.isPrimitive())
        opt = AccessorInjector.prepare( getter.getDeclaringClass(),
            methodTemplateName+RuntimeUtil.primitiveToBox.get(t).getSimpleName(),
            newClassName,
            toVMClassName(Bean.class),
            toVMClassName(getter.getDeclaringClass()),
            "get_"+t.getName(),
            getter.getName(),
            "set_"+t.getName(),
            setter.getName());
    else
        opt = AccessorInjector.prepare( getter.getDeclaringClass(),
            methodTemplateName+"Ref",
            newClassName,
            toVMClassName(Bean.class),
            toVMClassName(getter.getDeclaringClass()),
            toVMClassName(Ref.class),
            toVMClassName(t),
            "()"+toVMTypeName(Ref.class),
            "()"+toVMTypeName(t),
            '('+toVMTypeName(Ref.class)+")V",
            '('+toVMTypeName(t)+")V",
            "get_ref",
            getter.getName(),
            "set_ref",
            setter.getName());

    if(opt==null)
        return null;

    Accessor<B,V> acc = instanciate(opt);
    if (acc!=null) {
        if (logger.isLoggable(Level.FINE)) {
            logger.log(Level.FINE, "Using optimized Accessor for {0} and {1}", new Object[]{getter, setter});
        }
    }
    return acc;
}
 
Example #27
Source File: OptimizedAccessorFactory.java    From openjdk-jdk9 with GNU General Public License v2.0 4 votes vote down vote up
/**
 * Gets the optimized {@link Accessor} that accesses the given field.
 *
 * @return null
 *      if for some reason it fails to create an optimized version.
 */
public static final <B,V> Accessor<B,V> get(Field field) {
    int mods = field.getModifiers();
    if(Modifier.isPrivate(mods) || Modifier.isFinal(mods))
        // we can't access private fields
        return null;

    String newClassName = toVMClassName(field.getDeclaringClass())+"$JaxbAccessorF_"+field.getName();

    Class opt;

    if(field.getType().isPrimitive())
        opt = AccessorInjector.prepare( field.getDeclaringClass(),
            fieldTemplateName+RuntimeUtil.primitiveToBox.get(field.getType()).getSimpleName(),
            newClassName,
            toVMClassName(Bean.class),
            toVMClassName(field.getDeclaringClass()),
            "f_"+field.getType().getName(),
            field.getName() );
    else
        opt = AccessorInjector.prepare( field.getDeclaringClass(),
            fieldTemplateName+"Ref",
            newClassName,
            toVMClassName(Bean.class),
            toVMClassName(field.getDeclaringClass()),
            toVMClassName(Ref.class),
            toVMClassName(field.getType()),
            toVMTypeName(Ref.class),
            toVMTypeName(field.getType()),
            "f_ref",
            field.getName() );

    if(opt==null)
        return null;

    Accessor<B,V> acc = instanciate(opt);
    if (acc!=null) {
        if (logger.isLoggable(Level.FINE)) {
            logger.log(Level.FINE, "Using optimized Accessor for {0}", field);
        }
    }
    return acc;
}
 
Example #28
Source File: OptimizedAccessorFactory.java    From openjdk-jdk9 with GNU General Public License v2.0 4 votes vote down vote up
/**
 * Gets the optimized {@link Accessor} that accesses the given getter/setter.
 *
 * @return null
 *      if for some reason it fails to create an optimized version.
 */
public static final <B,V> Accessor<B,V> get(Method getter, Method setter) {
    // make sure the method signatures are what we expect
    if(getter.getParameterTypes().length!=0)
        return null;
    Class<?>[] sparams = setter.getParameterTypes();
    if(sparams.length!=1)
        return null;
    if(sparams[0]!=getter.getReturnType())
        return null;
    if(setter.getReturnType()!=Void.TYPE)
        return null;
    if(getter.getDeclaringClass()!=setter.getDeclaringClass())
        return null;
    if(Modifier.isPrivate(getter.getModifiers()) || Modifier.isPrivate(setter.getModifiers()))
        // we can't access private fields
        return null;

    Class t = sparams[0];
    String typeName = t.getName().replace('.','_');
    if (t.isArray()) {
        typeName = "AOf_";
        String compName = t.getComponentType().getName().replace('.','_');
        while (compName.startsWith("[L")) {
            compName = compName.substring(2);
            typeName += "AOf_";
        }
        typeName = typeName + compName;
    }

    String newClassName = toVMClassName(getter.getDeclaringClass())+"$JaxbAccessorM_"+getter.getName()+'_'+setter.getName()+'_'+typeName;
    Class opt;

    if(t.isPrimitive())
        opt = AccessorInjector.prepare( getter.getDeclaringClass(),
            methodTemplateName+RuntimeUtil.primitiveToBox.get(t).getSimpleName(),
            newClassName,
            toVMClassName(Bean.class),
            toVMClassName(getter.getDeclaringClass()),
            "get_"+t.getName(),
            getter.getName(),
            "set_"+t.getName(),
            setter.getName());
    else
        opt = AccessorInjector.prepare( getter.getDeclaringClass(),
            methodTemplateName+"Ref",
            newClassName,
            toVMClassName(Bean.class),
            toVMClassName(getter.getDeclaringClass()),
            toVMClassName(Ref.class),
            toVMClassName(t),
            "()"+toVMTypeName(Ref.class),
            "()"+toVMTypeName(t),
            '('+toVMTypeName(Ref.class)+")V",
            '('+toVMTypeName(t)+")V",
            "get_ref",
            getter.getName(),
            "set_ref",
            setter.getName());

    if(opt==null)
        return null;

    Accessor<B,V> acc = instanciate(opt);
    if (acc!=null) {
        if (logger.isLoggable(Level.FINE)) {
            logger.log(Level.FINE, "Using optimized Accessor for {0} and {1}", new Object[]{getter, setter});
        }
    }
    return acc;
}
 
Example #29
Source File: OptimizedAccessorFactory.java    From jdk8u60 with GNU General Public License v2.0 4 votes vote down vote up
/**
 * Gets the optimized {@link Accessor} that accesses the given field.
 *
 * @return null
 *      if for some reason it fails to create an optimized version.
 */
public static final <B,V> Accessor<B,V> get(Field field) {
    int mods = field.getModifiers();
    if(Modifier.isPrivate(mods) || Modifier.isFinal(mods))
        // we can't access private fields
        return null;

    String newClassName = toVMClassName(field.getDeclaringClass())+"$JaxbAccessorF_"+field.getName();

    Class opt;

    if(field.getType().isPrimitive())
        opt = AccessorInjector.prepare( field.getDeclaringClass(),
            fieldTemplateName+RuntimeUtil.primitiveToBox.get(field.getType()).getSimpleName(),
            newClassName,
            toVMClassName(Bean.class),
            toVMClassName(field.getDeclaringClass()),
            "f_"+field.getType().getName(),
            field.getName() );
    else
        opt = AccessorInjector.prepare( field.getDeclaringClass(),
            fieldTemplateName+"Ref",
            newClassName,
            toVMClassName(Bean.class),
            toVMClassName(field.getDeclaringClass()),
            toVMClassName(Ref.class),
            toVMClassName(field.getType()),
            toVMTypeName(Ref.class),
            toVMTypeName(field.getType()),
            "f_ref",
            field.getName() );

    if(opt==null)
        return null;

    Accessor<B,V> acc = instanciate(opt);
    if (acc!=null) {
        if (logger.isLoggable(Level.FINE)) {
            logger.log(Level.FINE, "Using optimized Accessor for {0}", field);
        }
    }
    return acc;
}
 
Example #30
Source File: OptimizedAccessorFactory.java    From openjdk-jdk8u-backup with GNU General Public License v2.0 4 votes vote down vote up
/**
 * Gets the optimized {@link Accessor} that accesses the given field.
 *
 * @return null
 *      if for some reason it fails to create an optimized version.
 */
public static final <B,V> Accessor<B,V> get(Field field) {
    int mods = field.getModifiers();
    if(Modifier.isPrivate(mods) || Modifier.isFinal(mods))
        // we can't access private fields
        return null;

    String newClassName = toVMClassName(field.getDeclaringClass())+"$JaxbAccessorF_"+field.getName();

    Class opt;

    if(field.getType().isPrimitive())
        opt = AccessorInjector.prepare( field.getDeclaringClass(),
            fieldTemplateName+RuntimeUtil.primitiveToBox.get(field.getType()).getSimpleName(),
            newClassName,
            toVMClassName(Bean.class),
            toVMClassName(field.getDeclaringClass()),
            "f_"+field.getType().getName(),
            field.getName() );
    else
        opt = AccessorInjector.prepare( field.getDeclaringClass(),
            fieldTemplateName+"Ref",
            newClassName,
            toVMClassName(Bean.class),
            toVMClassName(field.getDeclaringClass()),
            toVMClassName(Ref.class),
            toVMClassName(field.getType()),
            toVMTypeName(Ref.class),
            toVMTypeName(field.getType()),
            "f_ref",
            field.getName() );

    if(opt==null)
        return null;

    Accessor<B,V> acc = instanciate(opt);
    if (acc!=null) {
        if (logger.isLoggable(Level.FINE)) {
            logger.log(Level.FINE, "Using optimized Accessor for {0}", field);
        }
    }
    return acc;
}