Java 类javax.xml.bind.annotation.XmlType 实例源码
项目:rexsl
文件:PageBuilderTest.java
/**
* PageBuilder can add correct annotations.
* @throws Exception If there is some problem inside
*/
@Test
public void addsCorrectAnnotations() throws Exception {
final String xsl = "/some/path/test.xsl";
final Object page = new PageBuilder()
.stylesheet(xsl)
.build(PageBuilderTest.BarPage.class);
MatcherAssert.assertThat(
page.getClass().getAnnotation(XmlType.class).name(),
Matchers.equalTo(
"com.rexsl.page.PageBuilderTest$BarPage$somepathtestxsl"
)
);
MatcherAssert.assertThat(
page.getClass().getAnnotation(Stylesheet.class).value(),
Matchers.equalTo(xsl)
);
}
项目:lams
文件:Jaxb2CollectionHttpMessageConverter.java
/**
* {@inheritDoc}
* <p>Jaxb2CollectionHttpMessageConverter can read a generic
* {@link Collection} where the generic type is a JAXB type annotated with
* {@link XmlRootElement} or {@link XmlType}.
*/
@Override
public boolean canRead(Type type, Class<?> contextClass, MediaType mediaType) {
if (!(type instanceof ParameterizedType)) {
return false;
}
ParameterizedType parameterizedType = (ParameterizedType) type;
if (!(parameterizedType.getRawType() instanceof Class)) {
return false;
}
Class<?> rawType = (Class<?>) parameterizedType.getRawType();
if (!(Collection.class.isAssignableFrom(rawType))) {
return false;
}
if (parameterizedType.getActualTypeArguments().length != 1) {
return false;
}
Type typeArgument = parameterizedType.getActualTypeArguments()[0];
if (!(typeArgument instanceof Class)) {
return false;
}
Class<?> typeArgumentClass = (Class<?>) typeArgument;
return (typeArgumentClass.isAnnotationPresent(XmlRootElement.class) ||
typeArgumentClass.isAnnotationPresent(XmlType.class)) && canRead(mediaType);
}
项目:soapbox-race-core
文件:MarshalXML.java
@SuppressWarnings("unchecked")
public static String marshal(Object obj) {
StringWriter stringWriter = new StringWriter();
try {
JAXBContext jaxbContext = JAXBContext.newInstance(obj.getClass());
Marshaller jaxbMarshaller = jaxbContext.createMarshaller();
jaxbMarshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, false);
jaxbMarshaller.setProperty(Marshaller.JAXB_FRAGMENT, true);
XmlRootElement xmlRootAnnotation = obj.getClass().getAnnotation(XmlRootElement.class);
System.out.println(xmlRootAnnotation);
if (xmlRootAnnotation == null) {
XmlType xmlTypeAnnotation = obj.getClass().getAnnotation(XmlType.class);
QName qname = new QName("", xmlTypeAnnotation.name());
JAXBElement<Object> jaxbElement = new JAXBElement<Object>(qname, (Class<Object>) obj.getClass(), null, obj);
jaxbMarshaller.marshal(jaxbElement, stringWriter);
} else {
jaxbMarshaller.marshal(obj, stringWriter);
}
} catch (Exception e) {
e.printStackTrace();
}
return stringWriter.toString();
}
项目:soapbox-race-core
文件:MarshallerInterceptor.java
@Override
@SuppressWarnings("unchecked")
public void writeTo(Object object, Class<?> type, Type genericType, Annotation[] annotations, MediaType mediaType, MultivaluedMap<String, Object> httpHeaders,
OutputStream entityStream) throws IOException, WebApplicationException {
try {
JAXBContext jaxbContext = JAXBContext.newInstance(object.getClass());
Marshaller jaxbMarshaller = jaxbContext.createMarshaller();
jaxbMarshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
jaxbMarshaller.setProperty(Marshaller.JAXB_FRAGMENT, true);
for (Annotation annotation : annotations) {
if (annotation instanceof XsiSchemaLocation) {
XsiSchemaLocation schemaAnnotation = (XsiSchemaLocation) annotation;
String schemaLocation = schemaAnnotation.schemaLocation();
jaxbMarshaller.setProperty(Marshaller.JAXB_SCHEMA_LOCATION, schemaLocation);
}
}
XmlType xmlTypeAnnotation = object.getClass().getAnnotation(XmlType.class);
QName qname = new QName("", xmlTypeAnnotation.name());
StringWriter stringWriter = new StringWriter();
JAXBElement<Object> jaxbElement = new JAXBElement<Object>(qname, (Class<Object>) object.getClass(), null, object);
jaxbMarshaller.marshal(jaxbElement, stringWriter);
entityStream.write(stringWriter.toString().getBytes());
} catch (Exception e) {
throw new WebApplicationException(e);
}
}
项目:spring4-understanding
文件:Jaxb2CollectionHttpMessageConverter.java
/**
* {@inheritDoc}
* <p>Jaxb2CollectionHttpMessageConverter can read a generic
* {@link Collection} where the generic type is a JAXB type annotated with
* {@link XmlRootElement} or {@link XmlType}.
*/
@Override
public boolean canRead(Type type, Class<?> contextClass, MediaType mediaType) {
if (!(type instanceof ParameterizedType)) {
return false;
}
ParameterizedType parameterizedType = (ParameterizedType) type;
if (!(parameterizedType.getRawType() instanceof Class)) {
return false;
}
Class<?> rawType = (Class<?>) parameterizedType.getRawType();
if (!(Collection.class.isAssignableFrom(rawType))) {
return false;
}
if (parameterizedType.getActualTypeArguments().length != 1) {
return false;
}
Type typeArgument = parameterizedType.getActualTypeArguments()[0];
if (!(typeArgument instanceof Class)) {
return false;
}
Class<?> typeArgumentClass = (Class<?>) typeArgument;
return (typeArgumentClass.isAnnotationPresent(XmlRootElement.class) ||
typeArgumentClass.isAnnotationPresent(XmlType.class)) && canRead(mediaType);
}
项目:engerek
文件:PrismBeanInspector.java
private String determineNamespaceUncached(Class<? extends Object> beanClass) {
XmlType xmlType = beanClass.getAnnotation(XmlType.class);
if (xmlType == null) {
return null;
}
String namespace = xmlType.namespace();
if (BeanMarshaller.DEFAULT_PLACEHOLDER.equals(namespace)) {
XmlSchema xmlSchema = beanClass.getPackage().getAnnotation(XmlSchema.class);
namespace = xmlSchema.namespace();
}
if (StringUtils.isBlank(namespace) || BeanMarshaller.DEFAULT_PLACEHOLDER.equals(namespace)) {
return null;
}
return namespace;
}
项目:engerek
文件:PrismBeanInspector.java
private QName determineTypeForClassUncached(Class<? extends Object> beanClass) {
XmlType xmlType = beanClass.getAnnotation(XmlType.class);
if (xmlType == null) {
return null;
}
String namespace = xmlType.namespace();
if (BeanMarshaller.DEFAULT_PLACEHOLDER.equals(namespace)) {
XmlSchema xmlSchema = beanClass.getPackage().getAnnotation(XmlSchema.class);
namespace = xmlSchema.namespace();
}
if (StringUtils.isBlank(namespace) || BeanMarshaller.DEFAULT_PLACEHOLDER.equals(namespace)) {
return null;
}
return new QName(namespace, xmlType.name());
}
项目:Camel
文件:OptionalIdentifiedDefinition.java
/**
* Returns a short name for this node which can be useful for ID generation or referring to related resources like images
*
* @return defaults to "node" but derived nodes should overload this to provide a unique name
*/
@Override
public String getShortName() {
if (shortName == null) {
XmlRootElement root = getClass().getAnnotation(XmlRootElement.class);
if (root != null) {
shortName = root.name();
}
if (shortName == null) {
XmlType type = getClass().getAnnotation(XmlType.class);
if (type != null) {
shortName = type.name();
}
}
}
return shortName;
}
项目:Camel
文件:TypeNameStrategy.java
/**
* @return determine element name by using the XmlType.name() of the type to
* be marshalled and the XmlSchema.namespace() of the package-info
*/
public QName findQNameForSoapActionOrType(String soapAction, Class<?> type) {
XmlType xmlType = type.getAnnotation(XmlType.class);
if (xmlType == null || xmlType.name() == null) {
throw new RuntimeException("The type " + type.getName() + " needs to have an XmlType annotation with name");
}
String nameSpace = xmlType.namespace();
if ("##default".equals(nameSpace)) {
XmlSchema xmlSchema = type.getPackage().getAnnotation(XmlSchema.class);
if (xmlSchema != null) {
nameSpace = xmlSchema.namespace();
}
}
// prefer name from the XmlType, and fallback to XmlRootElement
String localName = xmlType.name();
if (ObjectHelper.isEmpty(localName)) {
XmlRootElement root = type.getAnnotation(XmlRootElement.class);
if (root != null) {
localName = root.name();
}
}
return new QName(nameSpace, localName);
}
项目:Camel
文件:StAXUtil.java
public static String getTagName(Class<?> handled) {
if (TAG_NAMES.containsKey(handled)) {
return TAG_NAMES.get(handled);
}
XmlType xmlType = handled.getAnnotation(XmlType.class);
if (xmlType != null && xmlType.name() != null && xmlType.name().trim().length() > 0) {
TAG_NAMES.put(handled, xmlType.name());
return xmlType.name();
} else {
XmlRootElement xmlRoot = handled.getAnnotation(XmlRootElement.class);
if (xmlRoot != null && xmlRoot.name() != null && xmlRoot.name().trim().length() > 0) {
TAG_NAMES.put(handled, xmlRoot.name());
return xmlRoot.name();
}
}
throw new IllegalArgumentException("XML name not found for " + handled.getName());
}
项目:wsdl2html
文件:Variable2Stub.java
public static Stub convertToStub(JavaLanguageVariable variable, Stub parentStub, StubTypeTreeRepository typeTreeRepository) {
Stub stub = new Stub();
stub.setParentStubRelation(parentStub);
stub.setStubName(variable.getVariableName());
stub.setRequired(variable.isRequired());
stub.setHeader(variable.isHeader());
stub.setMultiOccurs(variable.isMultiOccurs());
stub.setType(variable.getType());
if (variable.getType().isAnnotationPresent(XmlType.class) && !variable.getType().isEnum() && !stub.isSameTypeWithSomeAncestor()) {
convertFieldsToChildStubs(stub, variable.getType(), typeTreeRepository);
}
return stub;
}
项目:wsdl2html
文件:Variable2Stub.java
private static List<Field> getFieldsIncludingAncestorTypes(Class<?> type) {
List<Field> allFields = new ArrayList<Field>();
while (true) {
Field[] fieldsArray = type.getDeclaredFields();
List<Field> fields = new ArrayList<Field>();
if (fieldsArray != null) {
for (Field f : fieldsArray) {
fields.add(f);
}
}
allFields.addAll(0, fields);
type = type.getSuperclass();
if (type == null) {
break;
}
if (!type.isAnnotationPresent(XmlType.class)) {
break;
}
}
return allFields;
}
项目:zstack
文件:DeployerValidator.java
private void validateCollection(Field f, Object obj) throws IllegalArgumentException, IllegalAccessException {
XmlType xtype = obj.getClass().getAnnotation(XmlType.class);
if (xtype == null) {
return;
}
String elementName = xtype.name();
logger.debug(String.format("validating %s->%s", elementName, f.getName()));
Collection l = (Collection) f.get(obj);
XmlElement eat = f.getAnnotation(XmlElement.class);
if (eat != null && (eat.required() && (l == null || l.isEmpty()))) {
throw new IllegalArgumentException(String.format("field[%s] of element[%s] is mandatory, cannot be missed", f.getName(), elementName));
}
XmlAttribute aat = f.getAnnotation(XmlAttribute.class);
if (aat != null && (aat.required() && (l == null || l.isEmpty()))) {
throw new IllegalArgumentException(String.format("field[%s] of element[%s] is mandatory, cannot be missed", aat.name(), elementName));
}
if (l != null) {
Object val = l.iterator().next();
if (val != null) {
validateObject(val);
}
}
}
项目:zstack
文件:DeployerValidator.java
private void validateField(Field f, Object obj) throws IllegalArgumentException, IllegalAccessException {
XmlType xtype = obj.getClass().getAnnotation(XmlType.class);
if (xtype == null) {
return;
}
Object val = f.get(obj);
String elementName = xtype.name();
logger.debug(String.format("validating %s->%s", elementName, f.getName()));
XmlElement eat = f.getAnnotation(XmlElement.class);
if (eat != null && eat.required() && val == null) {
throw new IllegalArgumentException(String.format("field[%s] of element[%s] is mandatory, cannot be missed", f.getName(), elementName));
}
XmlAttribute aat = f.getAnnotation(XmlAttribute.class);
if (aat != null && aat.required() && val == null) {
throw new IllegalArgumentException(String.format("field[%s] of element[%s] is mandatory, cannot be missed", aat.name(), elementName));
}
if (val != null) {
validateObject(val);
}
}
项目:jxpath-object-formatter
文件:JaxbJXPathBeanInfo.java
private static int getPropertyOrder(final Map<String, Integer> propMap, final Class<?> beanClass, final int offset) {
int index = offset;
if (beanClass.getSuperclass() != null) {
index = getPropertyOrder(propMap, beanClass.getSuperclass(), offset);
}
final XmlType xmlTypeAnnotation = beanClass.getAnnotation(XmlType.class);
if (xmlTypeAnnotation != null && xmlTypeAnnotation.propOrder() != null && !xmlTypeAnnotation.propOrder()[0].isEmpty()) {
for (final String propName : xmlTypeAnnotation.propOrder()) {
propMap.put(propName, index++);
}
} else {
try {
final BeanInfo beanInfo = Introspector.getBeanInfo(beanClass, beanClass.getSuperclass());
for (final PropertyDescriptor propertyDescriptor : beanInfo.getPropertyDescriptors()) {
propMap.put(propertyDescriptor.getName(), index++);
}
} catch (final IntrospectionException e) {
throw new JXPathException(e);
}
}
return index;
}
项目:yummy-xml-UI
文件:FlowProcessor.java
public <T> void writeOut(T node, Class<T> declaredType) throws JAXBException {
try {
if (this.context == null) {
init();
}
Marshaller marshaller = this.context.createMarshaller();
marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
marshaller.setProperty(Marshaller.JAXB_NO_NAMESPACE_SCHEMA_LOCATION, SCHEMA_LOCATION);
marshaller.marshal(new JAXBElement(
new QName(declaredType.getDeclaredAnnotation(XmlType.class).name()), declaredType, node),
new File(xmlPath));
} catch (JAXBException ex) {
getLogger(FlowProcessor.class.getName()).log(Level.SEVERE,
"Fail to write configuration down to config file[{0}] due to error : \n{1}",
new Object[]{this.xmlPath, ex});
throw ex;
}
}
项目:PDFReporter-Studio
文件:WsTypes.java
private static String getType(Class<? extends ClientResource<?>> clientObjectClass) {
String clientResourceType = null;
XmlRootElement xmlRootElement = clientObjectClass.getAnnotation(XmlRootElement.class);
if (xmlRootElement != null && !"##default".equals(xmlRootElement.name()))
clientResourceType = xmlRootElement.name();
else {
XmlType xmlType = clientObjectClass.getAnnotation(XmlType.class);
if (xmlType != null && !"##default".equals(xmlType.name()))
clientResourceType = xmlType.name();
}
if (clientResourceType == null) {
String classSimpleName = clientObjectClass.getSimpleName();
clientResourceType = classSimpleName.replaceFirst("^.", classSimpleName.substring(0, 1).toLowerCase());
}
return clientResourceType;
}
项目:test-html-generator-plugin
文件:Testi.java
public static void main(String[] args) throws JsonMappingException {
ObjectMapper jsonMapper = new ObjectMapper();
AnnotationIntrospector introspector = new AnnotationIntrospector.Pair(new JaxbAnnotationIntrospector(),
new JacksonAnnotationIntrospector());
jsonMapper.setAnnotationIntrospector(introspector);
JsonSchema schema = jsonMapper.generateJsonSchema(Testi.class);
if(Testi.class.getAnnotation(XmlRootElement.class)!=null
&& !Testi.class.getAnnotation(XmlRootElement.class).name().equals("##default"))
schema.getSchemaNode().put("name", Testi.class.getAnnotation(XmlRootElement.class).name());
else if(Testi.class.getAnnotation(XmlType.class)!=null
&& !Testi.class.getAnnotation(XmlType.class).name().equals("##default"))
schema.getSchemaNode().put("name", Testi.class.getAnnotation(XmlType.class).name());
else
schema.getSchemaNode().put("name", Testi.class.getSimpleName());
String schemaJson = schema.toString();
System.out.println(schemaJson);
}
项目:midpoint
文件:PrismBeanInspector.java
private String determineNamespaceUncached(Class<?> beanClass) {
XmlType xmlType = beanClass.getAnnotation(XmlType.class);
if (xmlType == null) {
return null;
}
String namespace = xmlType.namespace();
if (BeanMarshaller.DEFAULT_PLACEHOLDER.equals(namespace)) {
XmlSchema xmlSchema = beanClass.getPackage().getAnnotation(XmlSchema.class);
namespace = xmlSchema.namespace();
}
if (StringUtils.isBlank(namespace) || BeanMarshaller.DEFAULT_PLACEHOLDER.equals(namespace)) {
return null;
}
return namespace;
}
项目:midpoint
文件:PrismBeanInspector.java
private QName determineTypeForClassUncached(Class<?> beanClass) {
XmlType xmlType = beanClass.getAnnotation(XmlType.class);
if (xmlType == null) {
return null;
}
String namespace = xmlType.namespace();
if (BeanMarshaller.DEFAULT_PLACEHOLDER.equals(namespace)) {
XmlSchema xmlSchema = beanClass.getPackage().getAnnotation(XmlSchema.class);
namespace = xmlSchema.namespace();
}
if (StringUtils.isBlank(namespace) || BeanMarshaller.DEFAULT_PLACEHOLDER.equals(namespace)) {
return null;
}
return new QName(namespace, xmlType.name());
}
项目:midpoint
文件:PrismPrettyPrinter.java
public static void debugDumpValue(StringBuilder sb, int expectedIndent, Object value, PrismContext prismContext, QName elementName, String defaultLanguage) {
if (value instanceof DebugDumpable) {
sb.append(((DebugDumpable)value).debugDump(expectedIndent));
return;
}
String formatted;
String language = DebugUtil.getPrettyPrintBeansAs() != null ? DebugUtil.getPrettyPrintBeansAs() : defaultLanguage;
if (elementName == null) {
elementName = new QName("value");
}
if (language != null && value != null && !(value instanceof Enum) && prismContext != null
&& value.getClass().getAnnotation(XmlType.class) != null) {
try {
formatted = prismContext.serializerFor(language).serializeRealValue(value, elementName);
} catch (SchemaException e) {
formatted = PrettyPrinter.prettyPrint(value);
}
} else {
formatted = PrettyPrinter.prettyPrint(value);
}
sb.append(DebugUtil.fixIndentInMultiline(expectedIndent, DebugDumpable.INDENT_STRING, formatted));
}
项目:class-guard
文件:Jaxb2CollectionHttpMessageConverter.java
/**
* {@inheritDoc}
* <p>Jaxb2CollectionHttpMessageConverter can read a generic
* {@link Collection} where the generic type is a JAXB type annotated with
* {@link XmlRootElement} or {@link XmlType}.
*/
public boolean canRead(Type type, Class<?> contextClass, MediaType mediaType) {
if (!(type instanceof ParameterizedType)) {
return false;
}
ParameterizedType parameterizedType = (ParameterizedType) type;
if (!(parameterizedType.getRawType() instanceof Class)) {
return false;
}
Class<?> rawType = (Class<?>) parameterizedType.getRawType();
if (!(Collection.class.isAssignableFrom(rawType))) {
return false;
}
if (parameterizedType.getActualTypeArguments().length != 1) {
return false;
}
Type typeArgument = parameterizedType.getActualTypeArguments()[0];
if (!(typeArgument instanceof Class)) {
return false;
}
Class<?> typeArgumentClass = (Class<?>) typeArgument;
return (typeArgumentClass.isAnnotationPresent(XmlRootElement.class) ||
typeArgumentClass.isAnnotationPresent(XmlType.class)) && canRead(mediaType);
}
项目:wso2-axis2
文件:JAXBUtils.java
/**
* @param list
* @param pkg
*/
private static void checkClasses(List<Class> list, String pkg) {
// The installed classfinder or directory search may inadvertently add too many
// classes. This rountine is a 'double check' to make sure that the classes
// are acceptable.
for (int i=0; i<list.size();) {
Class cls = list.get(i);
if (!cls.isInterface() &&
(cls.isEnum() ||
getAnnotation(cls, XmlType.class) != null ||
ClassUtils.getDefaultPublicConstructor(cls) != null) &&
!ClassUtils.isJAXWSClass(cls) &&
!isSkipClass(cls) &&
cls.getPackage().getName().equals(pkg)) {
i++; // Acceptable class
} else {
if (log.isDebugEnabled()) {
log.debug("Removing class " + cls + " from consideration because it is not in package " + pkg +
" or is an interface or does not have a public constructor or is" +
" a jaxws class");
}
list.remove(i);
}
}
}
项目:wso2-axis2
文件:ArtifactProcessor.java
/**
* @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;
}
项目:lens
文件:ToXMLString.java
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);
}
}
项目:ontrac4j
文件:Client.java
private static void populateDefaultValues(Object object) {
Object target = object instanceof JAXBElement ? ((JAXBElement)object).getValue() : object;
if (target == null) {
return;
} else if (target instanceof Collection) {
for (Object element : (Collection<?>)target) {
populateDefaultValues(element);
}
} else if (target.getClass().getDeclaredAnnotation(XmlType.class) != null) {
for (Field field : target.getClass().getDeclaredFields()) {
XmlElement xmlElement = field.getAnnotation(XmlElement.class);
if (xmlElement != null) {
checkXmlElementFieldValue(target, field, xmlElement);
}
}
}
}
项目:adl2-core
文件:RmTypeGraphBuilder.java
private void addObjectFactoryClass(Map<String, RmType> target, Class<?> rmClass, RmType child) {
XmlType xmlType = rmClass.getAnnotation(XmlType.class);
if (xmlType != null || rmClass == RmObject.class) {
String rmType = xmlType != null ? xmlType.name() : RmTypes.RM_OBJECT;
RmType node = target.get(rmType);
if (node == null) {
node = new RmType(rmType);
rmTypeNameClasses.put(rmType, rmClass);
target.put(rmType, node);
}
if (child != null && !node.getChildren().contains(child)) {
node.addChild(child);
}
addObjectFactoryClass(target, rmClass.getSuperclass(), node);
}
}
项目:midpoint
文件:PrismBeanInspector.java
private String determineNamespaceUncached(Class<?> beanClass) {
XmlType xmlType = beanClass.getAnnotation(XmlType.class);
if (xmlType == null) {
return null;
}
String namespace = xmlType.namespace();
if (BeanMarshaller.DEFAULT_PLACEHOLDER.equals(namespace)) {
XmlSchema xmlSchema = beanClass.getPackage().getAnnotation(XmlSchema.class);
namespace = xmlSchema.namespace();
}
if (StringUtils.isBlank(namespace) || BeanMarshaller.DEFAULT_PLACEHOLDER.equals(namespace)) {
return null;
}
return namespace;
}
项目:midpoint
文件:PrismBeanInspector.java
private QName determineTypeForClassUncached(Class<?> beanClass) {
XmlType xmlType = beanClass.getAnnotation(XmlType.class);
if (xmlType == null) {
return null;
}
String namespace = xmlType.namespace();
if (BeanMarshaller.DEFAULT_PLACEHOLDER.equals(namespace)) {
XmlSchema xmlSchema = beanClass.getPackage().getAnnotation(XmlSchema.class);
namespace = xmlSchema.namespace();
}
if (StringUtils.isBlank(namespace) || BeanMarshaller.DEFAULT_PLACEHOLDER.equals(namespace)) {
return null;
}
return new QName(namespace, xmlType.name());
}
项目:midpoint
文件:PrismPrettyPrinter.java
public static void debugDumpValue(StringBuilder sb, int expectedIndent, Object value, PrismContext prismContext, QName elementName, String defaultLanguage) {
if (value instanceof DebugDumpable) {
sb.append(((DebugDumpable)value).debugDump(expectedIndent));
return;
}
String formatted;
String language = DebugUtil.getPrettyPrintBeansAs() != null ? DebugUtil.getPrettyPrintBeansAs() : defaultLanguage;
if (elementName == null) {
elementName = new QName("value");
}
if (language != null && value != null && !(value instanceof Enum) && prismContext != null
&& value.getClass().getAnnotation(XmlType.class) != null) {
try {
formatted = prismContext.serializerFor(language).serializeRealValue(value, elementName);
} catch (SchemaException e) {
formatted = PrettyPrinter.prettyPrint(value);
}
} else {
formatted = PrettyPrinter.prettyPrint(value);
}
sb.append(DebugUtil.fixIndentInMultiline(expectedIndent, DebugDumpable.INDENT_STRING, formatted));
}
项目:gedcomx-java
文件:GedcomNamespaceManager.java
/**
* Get the id for the specified type.
*
* @param type The type.
* @return The type id.
*/
public static String getTypeIdName(Class<?> type) {
String ns = "";
if (type.getPackage() != null && type.getPackage().isAnnotationPresent(XmlSchema.class)) {
ns = type.getPackage().getAnnotation(XmlSchema.class).namespace();
}
String name = Introspector.decapitalize(type.getSimpleName());
if (type.isAnnotationPresent(XmlType.class)) {
XmlType typeMeta = type.getAnnotation(XmlType.class);
if (!"##default".equals(typeMeta.name())) {
name = typeMeta.name();
}
if (!"##default".equals(typeMeta.namespace())) {
ns = typeMeta.namespace();
}
}
return ns + name;
}
项目:cagrid2
文件:JAXBUtils.java
public static String getNamespace(Class<?> klass) {
String namespace = null;
XmlType xmlType = klass.getAnnotation(XmlType.class);
if (xmlType != null) {
String ns = xmlType.namespace();
if (!DEFAULT_NAMESPACE_VALUE.equals(ns)) {
namespace = ns;
}
}
if (namespace == null) {
namespace = DEFAULT_NAMESPACE_VALUE;
Package pkg = klass.getPackage();
XmlSchema xmlSchema = pkg.getAnnotation(XmlSchema.class);
if (xmlSchema != null) {
namespace = xmlSchema.namespace();
}
}
return namespace;
}
项目:OpenJSharp
文件:TypeInfoImpl.java
/**
* Parses a (potentially-null) {@link XmlType} annotation on a class
* and determine the actual value.
*
* @param clazz
* The class on which the XmlType annotation is checked.
* @param t
* The {@link XmlType} annotation on the clazz. This value
* is taken as a parameter to improve the performance for the case where
* 't' is pre-computed.
*/
protected final QName parseTypeName(ClassDeclT clazz, XmlType t) {
String nsUri="##default";
String local="##default";
if(t!=null) {
nsUri = t.namespace();
local = t.name();
}
if(local.length()==0)
return null; // anonymous
if(local.equals("##default"))
// if defaulted ...
local = NameConverter.standard.toVariableName(nav().getClassShortName(clazz));
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());
}
项目:OpenJSharp
文件:ClassInfoImpl.java
/**
* XmlType allows specification of factoryClass and
* factoryMethod. There are to be used if no default
* constructor is found.
*
* @return
* true if the factory method was found. False if not.
*/
private boolean hasFactoryConstructor(XmlType t){
if (t == null) return false;
String method = t.factoryMethod();
T fClass = reader().getClassValue(t, "factoryClass");
if (method.length() > 0){
if(nav().isSameType(fClass, nav().ref(XmlType.DEFAULT.class))){
fClass = nav().use(clazz);
}
for(M m: nav().getDeclaredMethods(nav().asDecl(fClass))){
//- Find the zero-arg public static method with the required return type
if (nav().getMethodName(m).equals(method) &&
nav().isSameType(nav().getReturnType(m), nav().use(clazz)) &&
nav().getMethodParameters(m).length == 0 &&
nav().isStaticMethod(m)){
factoryMethod = m;
break;
}
}
if (factoryMethod == null){
builder.reportError(new IllegalAnnotationException(
Messages.NO_FACTORY_METHOD.format(nav().getClassName(nav().asDecl(fClass)), method), this ));
}
} else if(!nav().isSameType(fClass, nav().ref(XmlType.DEFAULT.class))){
builder.reportError(new IllegalAnnotationException(
Messages.FACTORY_CLASS_NEEDS_FACTORY_METHOD.format(nav().getClassName(nav().asDecl(fClass))), this ));
}
return factoryMethod != null;
}
项目:OpenJSharp
文件:WebServiceWrapperGenerator.java
private void writeXmlTypeDeclaration(JDefinedClass cls, String typeName, String namespaceUri,
Collection<MemberInfo> members) {
if (cls == null)
return;
JAnnotationUse xmlTypeAnn = cls.annotate(cm.ref(XmlType.class));
xmlTypeAnn.param("name", typeName);
xmlTypeAnn.param("namespace", namespaceUri);
if (members.size() > 1) {
JAnnotationArrayMember paramArray = xmlTypeAnn.paramArray("propOrder");
for (MemberInfo memInfo : members) {
paramArray.param(memInfo.getParamName());
}
}
}
项目:openjdk-jdk10
文件:WebServiceWrapperGenerator.java
private void writeXmlTypeDeclaration(JDefinedClass cls, String typeName, String namespaceUri,
Collection<MemberInfo> members) {
if (cls == null)
return;
JAnnotationUse xmlTypeAnn = cls.annotate(cm.ref(XmlType.class));
xmlTypeAnn.param("name", typeName);
xmlTypeAnn.param("namespace", namespaceUri);
if (members.size() > 1) {
JAnnotationArrayMember paramArray = xmlTypeAnn.paramArray("propOrder");
for (MemberInfo memInfo : members) {
paramArray.param(memInfo.getParamName());
}
}
}
项目:openjdk-jdk10
文件:TypeInfoImpl.java
/**
* Parses a (potentially-null) {@link XmlType} annotation on a class
* and determine the actual value.
*
* @param clazz
* The class on which the XmlType annotation is checked.
* @param t
* The {@link XmlType} annotation on the clazz. This value
* is taken as a parameter to improve the performance for the case where
* 't' is pre-computed.
*/
protected final QName parseTypeName(ClassDeclT clazz, XmlType t) {
String nsUri="##default";
String local="##default";
if(t!=null) {
nsUri = t.namespace();
local = t.name();
}
if(local.length()==0)
return null; // anonymous
if(local.equals("##default"))
// if defaulted ...
local = NameConverter.standard.toVariableName(nav().getClassShortName(clazz));
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());
}
项目:openjdk-jdk10
文件:ClassInfoImpl.java
/**
* XmlType allows specification of factoryClass and
* factoryMethod. There are to be used if no default
* constructor is found.
*
* @return
* true if the factory method was found. False if not.
*/
private boolean hasFactoryConstructor(XmlType t){
if (t == null) return false;
String method = t.factoryMethod();
T fClass = reader().getClassValue(t, "factoryClass");
if (method.length() > 0){
if(nav().isSameType(fClass, nav().ref(XmlType.DEFAULT.class))){
fClass = nav().use(clazz);
}
for(M m: nav().getDeclaredMethods(nav().asDecl(fClass))){
//- Find the zero-arg public static method with the required return type
if (nav().getMethodName(m).equals(method) &&
nav().isSameType(nav().getReturnType(m), nav().use(clazz)) &&
nav().getMethodParameters(m).length == 0 &&
nav().isStaticMethod(m)){
factoryMethod = m;
break;
}
}
if (factoryMethod == null){
builder.reportError(new IllegalAnnotationException(
Messages.NO_FACTORY_METHOD.format(nav().getClassName(nav().asDecl(fClass)), method), this ));
}
} else if(!nav().isSameType(fClass, nav().ref(XmlType.DEFAULT.class))){
builder.reportError(new IllegalAnnotationException(
Messages.FACTORY_CLASS_NEEDS_FACTORY_METHOD.format(nav().getClassName(nav().asDecl(fClass))), this ));
}
return factoryMethod != null;
}
项目:openjdk9
文件:WebServiceWrapperGenerator.java
private void writeXmlTypeDeclaration(JDefinedClass cls, String typeName, String namespaceUri,
Collection<MemberInfo> members) {
if (cls == null)
return;
JAnnotationUse xmlTypeAnn = cls.annotate(cm.ref(XmlType.class));
xmlTypeAnn.param("name", typeName);
xmlTypeAnn.param("namespace", namespaceUri);
if (members.size() > 1) {
JAnnotationArrayMember paramArray = xmlTypeAnn.paramArray("propOrder");
for (MemberInfo memInfo : members) {
paramArray.param(memInfo.getParamName());
}
}
}
项目:openjdk9
文件:TypeInfoImpl.java
/**
* Parses a (potentially-null) {@link XmlType} annotation on a class
* and determine the actual value.
*
* @param clazz
* The class on which the XmlType annotation is checked.
* @param t
* The {@link XmlType} annotation on the clazz. This value
* is taken as a parameter to improve the performance for the case where
* 't' is pre-computed.
*/
protected final QName parseTypeName(ClassDeclT clazz, XmlType t) {
String nsUri="##default";
String local="##default";
if(t!=null) {
nsUri = t.namespace();
local = t.name();
}
if(local.length()==0)
return null; // anonymous
if(local.equals("##default"))
// if defaulted ...
local = NameConverter.standard.toVariableName(nav().getClassShortName(clazz));
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());
}