use of org.apache.cxf.aegis.type.collection.MapType in project cxf by apache.
the class MapTest method testRecursiveType.
@Test
public void testRecursiveType() throws Exception {
Method m = MapService.class.getMethod("getMapOfCollections", new Class[0]);
AegisType type = creator.createType(m, -1);
tm.register(type);
assertTrue(type instanceof MapType);
MapType mapType = (MapType) type;
QName keyName = mapType.getKeyName();
assertNotNull(keyName);
type = mapType.getKeyType();
assertNotNull(type);
assertTrue(type instanceof CollectionType);
assertEquals(String.class, ((CollectionType) type).getComponentType().getTypeClass());
type = mapType.getValueType();
assertNotNull(type);
assertTrue(type instanceof CollectionType);
assertEquals(Double.class, ((CollectionType) type).getComponentType().getTypeClass());
}
use of org.apache.cxf.aegis.type.collection.MapType 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