Java源码示例:com.sun.xml.internal.bind.v2.model.runtime.RuntimeClassInfo

示例1
protected ClassBeanInfoImpl getOrCreate( RuntimeClassInfo ci ) {
    ClassBeanInfoImpl bi = (ClassBeanInfoImpl)beanInfos.get(ci);
    if(bi!=null)    return bi;
    bi = new ClassBeanInfoImpl(this,ci);
    beanInfoMap.put(bi.jaxbType,bi);
    return bi;
}
 
示例2
private XmlSchemaGenerator<Type,Class,Field,Method> createSchemaGenerator() {
    RuntimeTypeInfoSet tis;
    try {
        tis = getTypeInfoSet();
    } catch (IllegalAnnotationsException e) {
        // this shouldn't happen because we've already
        throw new AssertionError(e);
    }

    XmlSchemaGenerator<Type,Class,Field,Method> xsdgen =
            new XmlSchemaGenerator<Type,Class,Field,Method>(tis.getNavigator(),tis);

    // JAX-RPC uses Bridge objects that collide with
    // @XmlRootElement.
    // we will avoid collision here
    Set<QName> rootTagNames = new HashSet<QName>();
    for (RuntimeElementInfo ei : tis.getAllElements()) {
        rootTagNames.add(ei.getElementName());
    }
    for (RuntimeClassInfo ci : tis.beans().values()) {
        if(ci.isElement())
            rootTagNames.add(ci.asElement().getElementName());
    }

    for (TypeReference tr : bridges.keySet()) {
        if(rootTagNames.contains(tr.tagName))
            continue;

        if(tr.type==void.class || tr.type==Void.class) {
            xsdgen.add(tr.tagName,false,null);
        } else
        if(tr.type==CompositeStructure.class) {
            // this is a special class we introduced for JAX-WS that we *don't* want in the schema
        } else {
            NonElement<Type,Class> typeInfo = getXmlType(tis,tr);
            xsdgen.add(tr.tagName, !tis.getNavigator().isPrimitive(tr.type),typeInfo);
        }
    }
    return xsdgen;
}
 
示例3
protected ClassBeanInfoImpl getOrCreate( RuntimeClassInfo ci ) {
    ClassBeanInfoImpl bi = (ClassBeanInfoImpl)beanInfos.get(ci);
    if(bi!=null)    return bi;
    bi = new ClassBeanInfoImpl(this,ci);
    beanInfoMap.put(bi.jaxbType,bi);
    return bi;
}
 
示例4
private XmlSchemaGenerator<Type,Class,Field,Method> createSchemaGenerator() {
    RuntimeTypeInfoSet tis;
    try {
        tis = getTypeInfoSet();
    } catch (IllegalAnnotationsException e) {
        // this shouldn't happen because we've already
        throw new AssertionError(e);
    }

    XmlSchemaGenerator<Type,Class,Field,Method> xsdgen =
            new XmlSchemaGenerator<Type,Class,Field,Method>(tis.getNavigator(),tis);

    // JAX-RPC uses Bridge objects that collide with
    // @XmlRootElement.
    // we will avoid collision here
    Set<QName> rootTagNames = new HashSet<QName>();
    for (RuntimeElementInfo ei : tis.getAllElements()) {
        rootTagNames.add(ei.getElementName());
    }
    for (RuntimeClassInfo ci : tis.beans().values()) {
        if(ci.isElement())
            rootTagNames.add(ci.asElement().getElementName());
    }

    for (TypeReference tr : bridges.keySet()) {
        if(rootTagNames.contains(tr.tagName))
            continue;

        if(tr.type==void.class || tr.type==Void.class) {
            xsdgen.add(tr.tagName,false,null);
        } else
        if(tr.type==CompositeStructure.class) {
            // this is a special class we introduced for JAX-WS that we *don't* want in the schema
        } else {
            NonElement<Type,Class> typeInfo = getXmlType(tis,tr);
            xsdgen.add(tr.tagName, !tis.getNavigator().isPrimitive(tr.type),typeInfo);
        }
    }
    return xsdgen;
}
 
示例5
protected ClassBeanInfoImpl getOrCreate( RuntimeClassInfo ci ) {
    ClassBeanInfoImpl bi = (ClassBeanInfoImpl)beanInfos.get(ci);
    if(bi!=null)    return bi;
    bi = new ClassBeanInfoImpl(this,ci);
    beanInfoMap.put(bi.jaxbType,bi);
    return bi;
}
 
示例6
private XmlSchemaGenerator<Type,Class,Field,Method> createSchemaGenerator() {
    RuntimeTypeInfoSet tis;
    try {
        tis = getTypeInfoSet();
    } catch (IllegalAnnotationsException e) {
        // this shouldn't happen because we've already
        throw new AssertionError(e);
    }

    XmlSchemaGenerator<Type,Class,Field,Method> xsdgen =
            new XmlSchemaGenerator<Type,Class,Field,Method>(tis.getNavigator(),tis);

    // JAX-RPC uses Bridge objects that collide with
    // @XmlRootElement.
    // we will avoid collision here
    Set<QName> rootTagNames = new HashSet<QName>();
    for (RuntimeElementInfo ei : tis.getAllElements()) {
        rootTagNames.add(ei.getElementName());
    }
    for (RuntimeClassInfo ci : tis.beans().values()) {
        if(ci.isElement())
            rootTagNames.add(ci.asElement().getElementName());
    }

    for (TypeReference tr : bridges.keySet()) {
        if(rootTagNames.contains(tr.tagName))
            continue;

        if(tr.type==void.class || tr.type==Void.class) {
            xsdgen.add(tr.tagName,false,null);
        } else
        if(tr.type==CompositeStructure.class) {
            // this is a special class we introduced for JAX-WS that we *don't* want in the schema
        } else {
            NonElement<Type,Class> typeInfo = getXmlType(tis,tr);
            xsdgen.add(tr.tagName, !tis.getNavigator().isPrimitive(tr.type),typeInfo);
        }
    }
    return xsdgen;
}
 
示例7
protected ClassBeanInfoImpl getOrCreate( RuntimeClassInfo ci ) {
    ClassBeanInfoImpl bi = (ClassBeanInfoImpl)beanInfos.get(ci);
    if(bi!=null)    return bi;
    bi = new ClassBeanInfoImpl(this,ci);
    beanInfoMap.put(bi.jaxbType,bi);
    return bi;
}
 
示例8
private XmlSchemaGenerator<Type,Class,Field,Method> createSchemaGenerator() {
    RuntimeTypeInfoSet tis;
    try {
        tis = getTypeInfoSet();
    } catch (IllegalAnnotationsException e) {
        // this shouldn't happen because we've already
        throw new AssertionError(e);
    }

    XmlSchemaGenerator<Type,Class,Field,Method> xsdgen =
            new XmlSchemaGenerator<Type,Class,Field,Method>(tis.getNavigator(),tis);

    // JAX-RPC uses Bridge objects that collide with
    // @XmlRootElement.
    // we will avoid collision here
    Set<QName> rootTagNames = new HashSet<QName>();
    for (RuntimeElementInfo ei : tis.getAllElements()) {
        rootTagNames.add(ei.getElementName());
    }
    for (RuntimeClassInfo ci : tis.beans().values()) {
        if(ci.isElement())
            rootTagNames.add(ci.asElement().getElementName());
    }

    for (TypeReference tr : bridges.keySet()) {
        if(rootTagNames.contains(tr.tagName))
            continue;

        if(tr.type==void.class || tr.type==Void.class) {
            xsdgen.add(tr.tagName,false,null);
        } else
        if(tr.type==CompositeStructure.class) {
            // this is a special class we introduced for JAX-WS that we *don't* want in the schema
        } else {
            NonElement<Type,Class> typeInfo = getXmlType(tis,tr);
            xsdgen.add(tr.tagName, !tis.getNavigator().isPrimitive(tr.type),typeInfo);
        }
    }
    return xsdgen;
}
 
示例9
protected ClassBeanInfoImpl getOrCreate( RuntimeClassInfo ci ) {
    ClassBeanInfoImpl bi = (ClassBeanInfoImpl)beanInfos.get(ci);
    if(bi!=null)    return bi;
    bi = new ClassBeanInfoImpl(this,ci);
    beanInfoMap.put(bi.jaxbType,bi);
    return bi;
}
 
示例10
private XmlSchemaGenerator<Type,Class,Field,Method> createSchemaGenerator() {
    RuntimeTypeInfoSet tis;
    try {
        tis = getTypeInfoSet();
    } catch (IllegalAnnotationsException e) {
        // this shouldn't happen because we've already
        throw new AssertionError(e);
    }

    XmlSchemaGenerator<Type,Class,Field,Method> xsdgen =
            new XmlSchemaGenerator<Type,Class,Field,Method>(tis.getNavigator(),tis);

    // JAX-RPC uses Bridge objects that collide with
    // @XmlRootElement.
    // we will avoid collision here
    Set<QName> rootTagNames = new HashSet<QName>();
    for (RuntimeElementInfo ei : tis.getAllElements()) {
        rootTagNames.add(ei.getElementName());
    }
    for (RuntimeClassInfo ci : tis.beans().values()) {
        if(ci.isElement())
            rootTagNames.add(ci.asElement().getElementName());
    }

    for (TypeReference tr : bridges.keySet()) {
        if(rootTagNames.contains(tr.tagName))
            continue;

        if(tr.type==void.class || tr.type==Void.class) {
            xsdgen.add(tr.tagName,false,null);
        } else
        if(tr.type==CompositeStructure.class) {
            // this is a special class we introduced for JAX-WS that we *don't* want in the schema
        } else {
            NonElement<Type,Class> typeInfo = getXmlType(tis,tr);
            xsdgen.add(tr.tagName, !tis.getNavigator().isPrimitive(tr.type),typeInfo);
        }
    }
    return xsdgen;
}
 
示例11
protected ClassBeanInfoImpl getOrCreate( RuntimeClassInfo ci ) {
    ClassBeanInfoImpl bi = (ClassBeanInfoImpl)beanInfos.get(ci);
    if(bi!=null)    return bi;
    bi = new ClassBeanInfoImpl(this,ci);
    beanInfoMap.put(bi.jaxbType,bi);
    return bi;
}
 
示例12
private XmlSchemaGenerator<Type,Class,Field,Method> createSchemaGenerator() {
    RuntimeTypeInfoSet tis;
    try {
        tis = getTypeInfoSet();
    } catch (IllegalAnnotationsException e) {
        // this shouldn't happen because we've already
        throw new AssertionError(e);
    }

    XmlSchemaGenerator<Type,Class,Field,Method> xsdgen =
            new XmlSchemaGenerator<Type,Class,Field,Method>(tis.getNavigator(),tis);

    // JAX-RPC uses Bridge objects that collide with
    // @XmlRootElement.
    // we will avoid collision here
    Set<QName> rootTagNames = new HashSet<QName>();
    for (RuntimeElementInfo ei : tis.getAllElements()) {
        rootTagNames.add(ei.getElementName());
    }
    for (RuntimeClassInfo ci : tis.beans().values()) {
        if(ci.isElement())
            rootTagNames.add(ci.asElement().getElementName());
    }

    for (TypeReference tr : bridges.keySet()) {
        if(rootTagNames.contains(tr.tagName))
            continue;

        if(tr.type==void.class || tr.type==Void.class) {
            xsdgen.add(tr.tagName,false,null);
        } else
        if(tr.type==CompositeStructure.class) {
            // this is a special class we introduced for JAX-WS that we *don't* want in the schema
        } else {
            NonElement<Type,Class> typeInfo = getXmlType(tis,tr);
            xsdgen.add(tr.tagName, !tis.getNavigator().isPrimitive(tr.type),typeInfo);
        }
    }
    return xsdgen;
}
 
示例13
protected ClassBeanInfoImpl getOrCreate( RuntimeClassInfo ci ) {
    ClassBeanInfoImpl bi = (ClassBeanInfoImpl)beanInfos.get(ci);
    if(bi!=null)    return bi;
    bi = new ClassBeanInfoImpl(this,ci);
    beanInfoMap.put(bi.jaxbType,bi);
    return bi;
}
 
示例14
private XmlSchemaGenerator<Type,Class,Field,Method> createSchemaGenerator() {
    RuntimeTypeInfoSet tis;
    try {
        tis = getTypeInfoSet();
    } catch (IllegalAnnotationsException e) {
        // this shouldn't happen because we've already
        throw new AssertionError(e);
    }

    XmlSchemaGenerator<Type,Class,Field,Method> xsdgen =
            new XmlSchemaGenerator<Type,Class,Field,Method>(tis.getNavigator(),tis);

    // JAX-RPC uses Bridge objects that collide with
    // @XmlRootElement.
    // we will avoid collision here
    Set<QName> rootTagNames = new HashSet<QName>();
    for (RuntimeElementInfo ei : tis.getAllElements()) {
        rootTagNames.add(ei.getElementName());
    }
    for (RuntimeClassInfo ci : tis.beans().values()) {
        if(ci.isElement())
            rootTagNames.add(ci.asElement().getElementName());
    }

    for (TypeReference tr : bridges.keySet()) {
        if(rootTagNames.contains(tr.tagName))
            continue;

        if(tr.type==void.class || tr.type==Void.class) {
            xsdgen.add(tr.tagName,false,null);
        } else
        if(tr.type==CompositeStructure.class) {
            // this is a special class we introduced for JAX-WS that we *don't* want in the schema
        } else {
            NonElement<Type,Class> typeInfo = getXmlType(tis,tr);
            xsdgen.add(tr.tagName, !tis.getNavigator().isPrimitive(tr.type),typeInfo);
        }
    }
    return xsdgen;
}
 
示例15
protected ClassBeanInfoImpl getOrCreate( RuntimeClassInfo ci ) {
    ClassBeanInfoImpl bi = (ClassBeanInfoImpl)beanInfos.get(ci);
    if(bi!=null)    return bi;
    bi = new ClassBeanInfoImpl(this,ci);
    beanInfoMap.put(bi.jaxbType,bi);
    return bi;
}
 
示例16
private XmlSchemaGenerator<Type,Class,Field,Method> createSchemaGenerator() {
    RuntimeTypeInfoSet tis;
    try {
        tis = getTypeInfoSet();
    } catch (IllegalAnnotationsException e) {
        // this shouldn't happen because we've already
        throw new AssertionError(e);
    }

    XmlSchemaGenerator<Type,Class,Field,Method> xsdgen =
            new XmlSchemaGenerator<Type,Class,Field,Method>(tis.getNavigator(),tis);

    // JAX-RPC uses Bridge objects that collide with
    // @XmlRootElement.
    // we will avoid collision here
    Set<QName> rootTagNames = new HashSet<QName>();
    for (RuntimeElementInfo ei : tis.getAllElements()) {
        rootTagNames.add(ei.getElementName());
    }
    for (RuntimeClassInfo ci : tis.beans().values()) {
        if(ci.isElement())
            rootTagNames.add(ci.asElement().getElementName());
    }

    for (TypeReference tr : bridges.keySet()) {
        if(rootTagNames.contains(tr.tagName))
            continue;

        if(tr.type==void.class || tr.type==Void.class) {
            xsdgen.add(tr.tagName,false,null);
        } else
        if(tr.type==CompositeStructure.class) {
            // this is a special class we introduced for JAX-WS that we *don't* want in the schema
        } else {
            NonElement<Type,Class> typeInfo = getXmlType(tis,tr);
            xsdgen.add(tr.tagName, !tis.getNavigator().isPrimitive(tr.type),typeInfo);
        }
    }
    return xsdgen;
}
 
示例17
public RuntimeClassInfo getScope() {
    return (RuntimeClassInfo)super.getScope();
}
 
示例18
ClassBeanInfoImpl(JAXBContextImpl owner, RuntimeClassInfo ci) {
    super(owner,ci,ci.getClazz(),ci.getTypeName(),ci.isElement(),false,true);

    this.ci = ci;
    this.inheritedAttWildcard = ci.getAttributeWildcard();
    this.xducer = ci.getTransducer();
    this.factoryMethod = ci.getFactoryMethod();
    this.retainPropertyInfo = owner.retainPropertyInfo;

    // make the factory accessible
    if(factoryMethod!=null) {
        int classMod = factoryMethod.getDeclaringClass().getModifiers();

        if(!Modifier.isPublic(classMod) || !Modifier.isPublic(factoryMethod.getModifiers())) {
            // attempt to make it work even if the constructor is not accessible
            try {
                factoryMethod.setAccessible(true);
            } catch(SecurityException e) {
                // but if we don't have a permission to do so, work gracefully.
                logger.log(Level.FINE,"Unable to make the method of "+factoryMethod+" accessible",e);
                throw e;
            }
        }
    }


    if(ci.getBaseClass()==null)
        this.superClazz = null;
    else
        this.superClazz = owner.getOrCreate(ci.getBaseClass());

    if(superClazz!=null && superClazz.xmlLocatorField!=null)
        xmlLocatorField = superClazz.xmlLocatorField;
    else
        xmlLocatorField = ci.getLocatorField();

    // create property objects
    Collection<? extends RuntimePropertyInfo> ps = ci.getProperties();
    this.properties = new Property[ps.size()];
    int idx=0;
    boolean elementOnly = true;
    for( RuntimePropertyInfo info : ps ) {
        Property p = PropertyFactory.create(owner,info);
        if(info.id()==ID.ID)
            idProperty = p;
        properties[idx++] = p;
        elementOnly &= info.elementOnlyContent();
        checkOverrideProperties(p);
    }
    // super class' idProperty might not be computed at this point,
    // so check that later

    hasElementOnlyContentModel( elementOnly );
    // again update this value later when we know that of the super class

    if(ci.isElement())
        tagName = owner.nameBuilder.createElementName(ci.getElementName());
    else
        tagName = null;

    setLifecycleFlags();
}
 
示例19
public RuntimeClassInfo getScope() {
    return (RuntimeClassInfo)super.getScope();
}
 
示例20
ClassBeanInfoImpl(JAXBContextImpl owner, RuntimeClassInfo ci) {
    super(owner,ci,ci.getClazz(),ci.getTypeName(),ci.isElement(),false,true);

    this.ci = ci;
    this.inheritedAttWildcard = ci.getAttributeWildcard();
    this.xducer = ci.getTransducer();
    this.factoryMethod = ci.getFactoryMethod();
    this.retainPropertyInfo = owner.retainPropertyInfo;

    // make the factory accessible
    if(factoryMethod!=null) {
        int classMod = factoryMethod.getDeclaringClass().getModifiers();

        if(!Modifier.isPublic(classMod) || !Modifier.isPublic(factoryMethod.getModifiers())) {
            // attempt to make it work even if the constructor is not accessible
            try {
                factoryMethod.setAccessible(true);
            } catch(SecurityException e) {
                // but if we don't have a permission to do so, work gracefully.
                logger.log(Level.FINE,"Unable to make the method of "+factoryMethod+" accessible",e);
                throw e;
            }
        }
    }


    if(ci.getBaseClass()==null)
        this.superClazz = null;
    else
        this.superClazz = owner.getOrCreate(ci.getBaseClass());

    if(superClazz!=null && superClazz.xmlLocatorField!=null)
        xmlLocatorField = superClazz.xmlLocatorField;
    else
        xmlLocatorField = ci.getLocatorField();

    // create property objects
    Collection<? extends RuntimePropertyInfo> ps = ci.getProperties();
    this.properties = new Property[ps.size()];
    int idx=0;
    boolean elementOnly = true;
    for( RuntimePropertyInfo info : ps ) {
        Property p = PropertyFactory.create(owner,info);
        if(info.id()==ID.ID)
            idProperty = p;
        properties[idx++] = p;
        elementOnly &= info.elementOnlyContent();
        checkOverrideProperties(p);
    }
    // super class' idProperty might not be computed at this point,
    // so check that later

    hasElementOnlyContentModel( elementOnly );
    // again update this value later when we know that of the super class

    if(ci.isElement())
        tagName = owner.nameBuilder.createElementName(ci.getElementName());
    else
        tagName = null;

    setLifecycleFlags();
}
 
示例21
public RuntimeClassInfo getScope() {
    return (RuntimeClassInfo)super.getScope();
}
 
示例22
ClassBeanInfoImpl(JAXBContextImpl owner, RuntimeClassInfo ci) {
    super(owner,ci,ci.getClazz(),ci.getTypeName(),ci.isElement(),false,true);

    this.ci = ci;
    this.inheritedAttWildcard = ci.getAttributeWildcard();
    this.xducer = ci.getTransducer();
    this.factoryMethod = ci.getFactoryMethod();
    this.retainPropertyInfo = owner.retainPropertyInfo;

    // make the factory accessible
    if(factoryMethod!=null) {
        int classMod = factoryMethod.getDeclaringClass().getModifiers();

        if(!Modifier.isPublic(classMod) || !Modifier.isPublic(factoryMethod.getModifiers())) {
            // attempt to make it work even if the constructor is not accessible
            try {
                factoryMethod.setAccessible(true);
            } catch(SecurityException e) {
                // but if we don't have a permission to do so, work gracefully.
                logger.log(Level.FINE,"Unable to make the method of "+factoryMethod+" accessible",e);
                throw e;
            }
        }
    }


    if(ci.getBaseClass()==null)
        this.superClazz = null;
    else
        this.superClazz = owner.getOrCreate(ci.getBaseClass());

    if(superClazz!=null && superClazz.xmlLocatorField!=null)
        xmlLocatorField = superClazz.xmlLocatorField;
    else
        xmlLocatorField = ci.getLocatorField();

    // create property objects
    Collection<? extends RuntimePropertyInfo> ps = ci.getProperties();
    this.properties = new Property[ps.size()];
    int idx=0;
    boolean elementOnly = true;
    for( RuntimePropertyInfo info : ps ) {
        Property p = PropertyFactory.create(owner,info);
        if(info.id()==ID.ID)
            idProperty = p;
        properties[idx++] = p;
        elementOnly &= info.elementOnlyContent();
        checkOverrideProperties(p);
    }
    // super class' idProperty might not be computed at this point,
    // so check that later

    hasElementOnlyContentModel( elementOnly );
    // again update this value later when we know that of the super class

    if(ci.isElement())
        tagName = owner.nameBuilder.createElementName(ci.getElementName());
    else
        tagName = null;

    setLifecycleFlags();
}
 
示例23
public RuntimeClassInfo getScope() {
    return (RuntimeClassInfo)super.getScope();
}
 
示例24
ClassBeanInfoImpl(JAXBContextImpl owner, RuntimeClassInfo ci) {
    super(owner,ci,ci.getClazz(),ci.getTypeName(),ci.isElement(),false,true);

    this.ci = ci;
    this.inheritedAttWildcard = ci.getAttributeWildcard();
    this.xducer = ci.getTransducer();
    this.factoryMethod = ci.getFactoryMethod();
    this.retainPropertyInfo = owner.retainPropertyInfo;

    // make the factory accessible
    if(factoryMethod!=null) {
        int classMod = factoryMethod.getDeclaringClass().getModifiers();

        if(!Modifier.isPublic(classMod) || !Modifier.isPublic(factoryMethod.getModifiers())) {
            // attempt to make it work even if the constructor is not accessible
            try {
                factoryMethod.setAccessible(true);
            } catch(SecurityException e) {
                // but if we don't have a permission to do so, work gracefully.
                logger.log(Level.FINE,"Unable to make the method of "+factoryMethod+" accessible",e);
                throw e;
            }
        }
    }


    if(ci.getBaseClass()==null)
        this.superClazz = null;
    else
        this.superClazz = owner.getOrCreate(ci.getBaseClass());

    if(superClazz!=null && superClazz.xmlLocatorField!=null)
        xmlLocatorField = superClazz.xmlLocatorField;
    else
        xmlLocatorField = ci.getLocatorField();

    // create property objects
    Collection<? extends RuntimePropertyInfo> ps = ci.getProperties();
    this.properties = new Property[ps.size()];
    int idx=0;
    boolean elementOnly = true;
    for( RuntimePropertyInfo info : ps ) {
        Property p = PropertyFactory.create(owner,info);
        if(info.id()==ID.ID)
            idProperty = p;
        properties[idx++] = p;
        elementOnly &= info.elementOnlyContent();
        checkOverrideProperties(p);
    }
    // super class' idProperty might not be computed at this point,
    // so check that later

    hasElementOnlyContentModel( elementOnly );
    // again update this value later when we know that of the super class

    if(ci.isElement())
        tagName = owner.nameBuilder.createElementName(ci.getElementName());
    else
        tagName = null;

    setLifecycleFlags();
}
 
示例25
public RuntimeClassInfo getScope() {
    return (RuntimeClassInfo)super.getScope();
}
 
示例26
ClassBeanInfoImpl(JAXBContextImpl owner, RuntimeClassInfo ci) {
    super(owner,ci,ci.getClazz(),ci.getTypeName(),ci.isElement(),false,true);

    this.ci = ci;
    this.inheritedAttWildcard = ci.getAttributeWildcard();
    this.xducer = ci.getTransducer();
    this.factoryMethod = ci.getFactoryMethod();
    this.retainPropertyInfo = owner.retainPropertyInfo;

    // make the factory accessible
    if(factoryMethod!=null) {
        int classMod = factoryMethod.getDeclaringClass().getModifiers();

        if(!Modifier.isPublic(classMod) || !Modifier.isPublic(factoryMethod.getModifiers())) {
            // attempt to make it work even if the constructor is not accessible
            try {
                factoryMethod.setAccessible(true);
            } catch(SecurityException e) {
                // but if we don't have a permission to do so, work gracefully.
                logger.log(Level.FINE,"Unable to make the method of "+factoryMethod+" accessible",e);
                throw e;
            }
        }
    }


    if(ci.getBaseClass()==null)
        this.superClazz = null;
    else
        this.superClazz = owner.getOrCreate(ci.getBaseClass());

    if(superClazz!=null && superClazz.xmlLocatorField!=null)
        xmlLocatorField = superClazz.xmlLocatorField;
    else
        xmlLocatorField = ci.getLocatorField();

    // create property objects
    Collection<? extends RuntimePropertyInfo> ps = ci.getProperties();
    this.properties = new Property[ps.size()];
    int idx=0;
    boolean elementOnly = true;
    for( RuntimePropertyInfo info : ps ) {
        Property p = PropertyFactory.create(owner,info);
        if(info.id()==ID.ID)
            idProperty = p;
        properties[idx++] = p;
        elementOnly &= info.elementOnlyContent();
        checkOverrideProperties(p);
    }
    // super class' idProperty might not be computed at this point,
    // so check that later

    hasElementOnlyContentModel( elementOnly );
    // again update this value later when we know that of the super class

    if(ci.isElement())
        tagName = owner.nameBuilder.createElementName(ci.getElementName());
    else
        tagName = null;

    setLifecycleFlags();
}
 
示例27
public RuntimeClassInfo getScope() {
    return (RuntimeClassInfo)super.getScope();
}
 
示例28
ClassBeanInfoImpl(JAXBContextImpl owner, RuntimeClassInfo ci) {
    super(owner,ci,ci.getClazz(),ci.getTypeName(),ci.isElement(),false,true);

    this.ci = ci;
    this.inheritedAttWildcard = ci.getAttributeWildcard();
    this.xducer = ci.getTransducer();
    this.factoryMethod = ci.getFactoryMethod();
    this.retainPropertyInfo = owner.retainPropertyInfo;

    // make the factory accessible
    if(factoryMethod!=null) {
        int classMod = factoryMethod.getDeclaringClass().getModifiers();

        if(!Modifier.isPublic(classMod) || !Modifier.isPublic(factoryMethod.getModifiers())) {
            // attempt to make it work even if the constructor is not accessible
            try {
                factoryMethod.setAccessible(true);
            } catch(SecurityException e) {
                // but if we don't have a permission to do so, work gracefully.
                logger.log(Level.FINE,"Unable to make the method of "+factoryMethod+" accessible",e);
                throw e;
            }
        }
    }


    if(ci.getBaseClass()==null)
        this.superClazz = null;
    else
        this.superClazz = owner.getOrCreate(ci.getBaseClass());

    if(superClazz!=null && superClazz.xmlLocatorField!=null)
        xmlLocatorField = superClazz.xmlLocatorField;
    else
        xmlLocatorField = ci.getLocatorField();

    // create property objects
    Collection<? extends RuntimePropertyInfo> ps = ci.getProperties();
    this.properties = new Property[ps.size()];
    int idx=0;
    boolean elementOnly = true;
    for( RuntimePropertyInfo info : ps ) {
        Property p = PropertyFactory.create(owner,info);
        if(info.id()==ID.ID)
            idProperty = p;
        properties[idx++] = p;
        elementOnly &= info.elementOnlyContent();
        checkOverrideProperties(p);
    }
    // super class' idProperty might not be computed at this point,
    // so check that later

    hasElementOnlyContentModel( elementOnly );
    // again update this value later when we know that of the super class

    if(ci.isElement())
        tagName = owner.nameBuilder.createElementName(ci.getElementName());
    else
        tagName = null;

    setLifecycleFlags();
}
 
示例29
public RuntimeClassInfo getScope() {
    return (RuntimeClassInfo)super.getScope();
}
 
示例30
ClassBeanInfoImpl(JAXBContextImpl owner, RuntimeClassInfo ci) {
    super(owner,ci,ci.getClazz(),ci.getTypeName(),ci.isElement(),false,true);

    this.ci = ci;
    this.inheritedAttWildcard = ci.getAttributeWildcard();
    this.xducer = ci.getTransducer();
    this.factoryMethod = ci.getFactoryMethod();
    this.retainPropertyInfo = owner.retainPropertyInfo;

    // make the factory accessible
    if(factoryMethod!=null) {
        int classMod = factoryMethod.getDeclaringClass().getModifiers();

        if(!Modifier.isPublic(classMod) || !Modifier.isPublic(factoryMethod.getModifiers())) {
            // attempt to make it work even if the constructor is not accessible
            try {
                factoryMethod.setAccessible(true);
            } catch(SecurityException e) {
                // but if we don't have a permission to do so, work gracefully.
                logger.log(Level.FINE,"Unable to make the method of "+factoryMethod+" accessible",e);
                throw e;
            }
        }
    }


    if(ci.getBaseClass()==null)
        this.superClazz = null;
    else
        this.superClazz = owner.getOrCreate(ci.getBaseClass());

    if(superClazz!=null && superClazz.xmlLocatorField!=null)
        xmlLocatorField = superClazz.xmlLocatorField;
    else
        xmlLocatorField = ci.getLocatorField();

    // create property objects
    Collection<? extends RuntimePropertyInfo> ps = ci.getProperties();
    this.properties = new Property[ps.size()];
    int idx=0;
    boolean elementOnly = true;
    for( RuntimePropertyInfo info : ps ) {
        Property p = PropertyFactory.create(owner,info);
        if(info.id()==ID.ID)
            idProperty = p;
        properties[idx++] = p;
        elementOnly &= info.elementOnlyContent();
        checkOverrideProperties(p);
    }
    // super class' idProperty might not be computed at this point,
    // so check that later

    hasElementOnlyContentModel( elementOnly );
    // again update this value later when we know that of the super class

    if(ci.isElement())
        tagName = owner.nameBuilder.createElementName(ci.getElementName());
    else
        tagName = null;

    setLifecycleFlags();
}