java类javax.xml.bind.annotation.XmlRootElement的实例源码

ClassBeanInfoImpl.java 文件源码 项目:OLD-OpenJDK8 阅读 22 收藏 0 点赞 0 评论 0
public void serializeRoot(BeanT bean, XMLSerializer target) throws SAXException, IOException, XMLStreamException {
    if(tagName==null) {
        Class beanClass = bean.getClass();
        String message;
        if (beanClass.isAnnotationPresent(XmlRootElement.class)) {
            message = Messages.UNABLE_TO_MARSHAL_UNBOUND_CLASS.format(beanClass.getName());
        } else {
            message = Messages.UNABLE_TO_MARSHAL_NON_ELEMENT.format(beanClass.getName());
        }
        target.reportError(new ValidationEventImpl(ValidationEvent.ERROR,message,null, null));
    } else {
        target.startElement(tagName,bean);
        target.childAsSoleContent(bean,null);
        target.endElement();
        if (retainPropertyInfo) {
            target.currentProperty.remove();
        }
    }
}
DomXmlDataFormatMapper.java 文件源码 项目:camunda-spin 阅读 15 收藏 0 点赞 0 评论 0
public Object mapJavaToInternal(Object parameter) {
  ensureNotNull("Parameter", parameter);

  final Class<?> parameterClass = parameter.getClass();
  final DOMResult domResult = new DOMResult();

  try {
    Marshaller marshaller = getMarshaller(parameterClass);

    boolean isRootElement = parameterClass.getAnnotation(XmlRootElement.class) != null;
    if(isRootElement) {
      marshalRootElement(parameter, marshaller, domResult);
    }
    else {
      marshalNonRootElement(parameter, marshaller, domResult);
    }

    Node node = domResult.getNode();
    return ((Document)node).getDocumentElement();

  } catch (JAXBException e) {
    throw LOG.unableToMapInput(parameter, e);
  }
}
ArtifactProcessor.java 文件源码 项目:wso2-axis2 阅读 26 收藏 0 点赞 0 评论 0
/**
 * @param cls
 * @return true if cls appears to be a JAXB enabled class
 */
private static boolean isJAXB(Class cls) {
    // See if the object represents a root element
    XmlRootElement root = (XmlRootElement)
        getAnnotation(cls,XmlRootElement.class);
    if (root != null) {
        if (log.isDebugEnabled()) {
            log.debug("isJAXB returns true due to presence of @XmlRootElement on " + cls);
        }
        return true;
    }

    // See if the object represents an type
    XmlType type = (XmlType)
        getAnnotation(cls,XmlType.class);
    if (type != null) {
        if (log.isDebugEnabled()) {
            log.debug("isJAXB returns true due to presence of @XmlType on " + cls);
        }
        return true;
    }
    if (log.isDebugEnabled()) {
        log.debug("isJAXB returns false for" + cls);
    }
    return false;
}
ToXMLString.java 文件源码 项目:lens 阅读 26 收藏 0 点赞 0 评论 0
public static String toString(Object o) {
  if (!(o instanceof JAXBElement) && o.getClass().getAnnotation(XmlRootElement.class) == null
    && o.getClass().getAnnotation(XmlType.class)!= null) {
    o = new JAXBElement(new QName("uri:lens:cube:0.1", o.getClass().getAnnotation(XmlType.class).name()),
      o.getClass(), null, o);
  }
  try {
    StringWriter stringWriter = new StringWriter();
    Class cl = null;
    if (o instanceof JAXBElement) {
      cl = ((JAXBElement) o).getDeclaredType();
    } else {
      cl = o.getClass();
    }
    Marshaller marshaller = getLensJAXBContext(cl).createMarshaller();
    marshaller.marshal(o, stringWriter);
    return stringWriter.toString();
  } catch (JAXBException e) {
    throw new RuntimeException(e);
  }
}
SerializationUtil.java 文件源码 项目:jcloudscale 阅读 23 收藏 0 点赞 0 评论 0
public static String serializeToString(Object obj) throws IOException
{
    if(obj == null || !obj.getClass().isAnnotationPresent(XmlRootElement.class))
        return null;

    try(StringWriter writer = new StringWriter())
    {
        try
        {
            JAXBContext ctx = JAXBContext.newInstance(obj.getClass());
            ctx.createMarshaller().marshal(obj, writer);
            return writer.toString();
        }
        catch(JAXBException ex)
        {//let's just ignore.
        }
    }

    return null;
}
JaxbBuilder.java 文件源码 项目:xmlunit 阅读 25 收藏 0 点赞 0 评论 0
private Object getPreparedJaxbObject() {
    final Object jaxbObject;
    if (object instanceof JAXBElement) {
        jaxbObject = object;
    } else {
        final Class<?> clazz = object.getClass();
        final XmlRootElement r = clazz.getAnnotation(XmlRootElement.class);
        if (r == null) {
            if (userObjectFactory) {
                jaxbObject = createJAXBElement(object);
            } else {
                jaxbObject = createInferredJAXBElement(object);
            }
        } else {
            jaxbObject = object;
        }
    }
    return jaxbObject;
}
TypeInfoImpl.java 文件源码 项目:openjdk-icedtea7 阅读 26 收藏 0 点赞 0 评论 0
/**
 * Parses an {@link XmlRootElement} annotation on a class
 * and determine the element name.
 *
 * @return null
 *      if none was found.
 */
protected final QName parseElementName(ClassDeclT clazz) {
    XmlRootElement e = reader().getClassAnnotation(XmlRootElement.class,clazz,this);
    if(e==null)
        return null;

    String local = e.name();
    if(local.equals("##default")) {
        // if defaulted...
        local = NameConverter.standard.toVariableName(nav().getClassShortName(clazz));
    }
    String nsUri = e.namespace();
    if(nsUri.equals("##default")) {
        // if defaulted ...
        XmlSchema xs = reader().getPackageAnnotation(XmlSchema.class,clazz,this);
        if(xs!=null)
            nsUri = xs.namespace();
        else {
            nsUri = builder.defaultNsUri;
        }
    }

    return new QName(nsUri.intern(),local.intern());
}
ClassBeanInfoImpl.java 文件源码 项目:openjdk-icedtea7 阅读 19 收藏 0 点赞 0 评论 0
public void serializeRoot(BeanT bean, XMLSerializer target) throws SAXException, IOException, XMLStreamException {
    if(tagName==null) {
        Class beanClass = bean.getClass();
        String message;
        if (beanClass.isAnnotationPresent(XmlRootElement.class)) {
            message = Messages.UNABLE_TO_MARSHAL_UNBOUND_CLASS.format(beanClass.getName());
        } else {
            message = Messages.UNABLE_TO_MARSHAL_NON_ELEMENT.format(beanClass.getName());
        }
        target.reportError(new ValidationEventImpl(ValidationEvent.ERROR,message,null, null));
    } else {
        target.startElement(tagName,bean);
        target.childAsSoleContent(bean,null);
        target.endElement();
        if (retainPropertyInfo) {
            target.currentProperty.remove();
        }
    }
}
JAXBWriter.java 文件源码 项目:sissi 阅读 23 收藏 0 点赞 0 评论 0
public JAXBWriter(NamespacePrefixMapper mapper) {
    super();
    this.mapper = mapper;
    try {
        List<Class<?>> clazz = new ArrayList<Class<?>>();
        for (Class<?> each : ScanUtil.getClasses(this.protocol)) {
            if (each.getAnnotation(XmlRootElement.class) != null) {
                clazz.add(each);
            }
        }
        this.context = JAXBContext.newInstance(clazz.toArray(new Class[] {}));
        this.log.info("All classes in JAXB Context: " + clazz);
    } catch (Exception e) {
        this.log.error(e.toString());
        Trace.trace(this.log, e);
        throw new RuntimeException("Can't init JAXB context", e);
    }
}
DroolsDataObjectEditorTest.java 文件源码 项目:kie-wb-common 阅读 17 收藏 0 点赞 0 评论 0
@Test
public void testRemotableChangeTest( ) {
    preloadEmptyObject( );
    // tests the data object being marked as "remotable".
    // emulate that the legacy annotation @Remotable was set for whatever reason. e.g. a project generated in an
    // older WB version.
    context.getDataObject( ).addAnnotation( DataModelerEditorsTestHelper.createAnnotation( Remotable.class ) );
    when( view.getRemotable( ) ).thenReturn( true );
    objectEditor.onRemotableChange( );
    // the new defined annotation XmlRootElement for marking the data object as "remotable should have been set
    assertNotNull( context.getDataObject( ).getAnnotation( XmlRootElement.class.getName( ) ) );
    // the legacy annotation should have been removed.
    assertNull( context.getDataObject( ).getAnnotation( Remotable.class.getName( ) ) );

    // emulate that the legacy annotation @Remotable was set for whatever reason. e.g. a project generated in an
    // older WB version.
    context.getDataObject( ).addAnnotation( DataModelerEditorsTestHelper.createAnnotation( Remotable.class ) );
    // tests the data object being maked as non "remotable".
    when( view.getRemotable( ) ).thenReturn( false );
    objectEditor.onRemotableChange( );
    //the XmlRootElement annotation should have been removed.
    assertNull( context.getDataObject( ).getAnnotation( XmlRootElement.class.getName( ) ) );
    // the legacy annotation should have been removed.
    assertNull( context.getDataObject( ).getAnnotation( Remotable.class.getName( ) ) );
}


问题


面经


文章

微信
公众号

扫码关注公众号