Search in sources :

Example 6 with MapType

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());
}
Also used : AegisType(org.apache.cxf.aegis.type.AegisType) QName(javax.xml.namespace.QName) CollectionType(org.apache.cxf.aegis.type.collection.CollectionType) Method(java.lang.reflect.Method) MapType(org.apache.cxf.aegis.type.collection.MapType) Test(org.junit.Test) AbstractAegisTest(org.apache.cxf.aegis.AbstractAegisTest)

Example 7 with MapType

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());
    }
}
Also used : AegisType(org.apache.cxf.aegis.type.AegisType) QName(javax.xml.namespace.QName) CollectionType(org.apache.cxf.aegis.type.collection.CollectionType) MapType(org.apache.cxf.aegis.type.collection.MapType)

Aggregations

MapType (org.apache.cxf.aegis.type.collection.MapType)7 AegisType (org.apache.cxf.aegis.type.AegisType)6 QName (javax.xml.namespace.QName)5 AbstractAegisTest (org.apache.cxf.aegis.AbstractAegisTest)5 Test (org.junit.Test)5 Method (java.lang.reflect.Method)3 CollectionType (org.apache.cxf.aegis.type.collection.CollectionType)2 PropertyDescriptor (java.beans.PropertyDescriptor)1 DefaultTypeMapping (org.apache.cxf.aegis.type.DefaultTypeMapping)1 TypeCreationOptions (org.apache.cxf.aegis.type.TypeCreationOptions)1