use of org.apache.cxf.aegis.type.AegisType in project qi4j-sdk by Qi4j.
the class ValueCompositeCxfType method getOrCreateAegisType.
private AegisType getOrCreateAegisType(Type type, XmlSchema root) {
AegisType nested = getTypeMapping().getType(type);
if (nested == null) {
nested = createType(type, root);
nested.writeSchema(root);
}
return nested;
}
use of org.apache.cxf.aegis.type.AegisType in project qi4j-sdk by Qi4j.
the class ValueCompositeCxfType method createType.
private AegisType createType(Type type, XmlSchema root) {
if (isCollection(type)) {
AegisType componentType = getOrCreateAegisType(getCollectionComponentType(type), root);
CollectionType resultType = new CollectionType(componentType);
QName schemaType = new QName("http://www.w3.org/2001/XMLSchema", "list");
resultType.setSchemaType(schemaType);
return resultType;
} else if (isMap(type)) {
AegisType keyType = getOrCreateAegisType(getMapKeyComponentType(type), root);
AegisType valueType = getOrCreateAegisType(getMapValueComponentType(type), root);
QName schemaType = new QName(Classes.toURI(Classes.RAW_CLASS.map(type)), "map");
return new MapType(schemaType, keyType, valueType);
} else if (isValueComposite(type)) {
ValueCompositeCxfType aegisType = module.newObject(ValueCompositeCxfType.class, getTypeMapping(), type);
getTypeMapping().register(aegisType);
return aegisType;
} else {
throw new NoSuchValueException(type.toString(), module.name());
}
}
Aggregations