Search in sources :

Example 6 with StructMember

use of org.omg.CORBA.StructMember in project cxf by apache.

the class CorbaObjectReaderTest method testReadException.

@Test
public void testReadException() {
    OutputStream oStream = orb.create_output_stream();
    // create the following exception
    // exception TestExcept {
    // short code;
    // string message;
    // }
    short code = 12345;
    String message = "54321";
    oStream.write_string("IDL:org.apache.cxf.TestException/1.0");
    oStream.write_short(code);
    oStream.write_string(message);
    InputStream iStream = oStream.create_input_stream();
    CorbaObjectReader reader = new CorbaObjectReader(iStream);
    QName exceptIdlType = new QName(CorbaConstants.NU_WSDL_CORBA, "exception", CorbaConstants.NP_WSDL_CORBA);
    QName shortIdlType = new QName(CorbaConstants.NU_WSDL_CORBA, "short", CorbaConstants.NP_WSDL_CORBA);
    QName stringIdlType = new QName(CorbaConstants.NU_WSDL_CORBA, "string", CorbaConstants.NP_WSDL_CORBA);
    Exception exceptType = new Exception();
    exceptType.setName("TestException");
    MemberType m1 = new MemberType();
    m1.setIdltype(shortIdlType);
    m1.setName("code");
    MemberType m2 = new MemberType();
    m2.setIdltype(stringIdlType);
    m2.setName("message");
    exceptType.getMember().add(m1);
    exceptType.getMember().add(m2);
    // build the object holder
    StructMember[] exceptMembers = new StructMember[2];
    exceptMembers[0] = new StructMember("code", orb.get_primitive_tc(TCKind.tk_short), null);
    exceptMembers[1] = new StructMember("message", orb.get_primitive_tc(TCKind.tk_string), null);
    TypeCode exceptTC = orb.create_exception_tc("IDL:org.apache.cxf.TestException/1.0", "TestException", exceptMembers);
    CorbaExceptionHandler obj = new CorbaExceptionHandler(new QName("TestException"), exceptIdlType, exceptTC, exceptType);
    obj.addMember(new CorbaPrimitiveHandler(new QName("code"), shortIdlType, exceptMembers[0].type, null));
    obj.addMember(new CorbaPrimitiveHandler(new QName("message"), stringIdlType, exceptMembers[1].type, null));
    reader.readException(obj);
    List<CorbaObjectHandler> nestedObjs = obj.getMembers();
    assertTrue(Short.parseShort(((CorbaPrimitiveHandler) nestedObjs.get(0)).getDataFromValue()) == code);
    assertEquals(((CorbaPrimitiveHandler) nestedObjs.get(1)).getDataFromValue(), message);
}
Also used : TypeCode(org.omg.CORBA.TypeCode) InputStream(org.omg.CORBA.portable.InputStream) QName(javax.xml.namespace.QName) OutputStream(org.omg.CORBA.portable.OutputStream) StructMember(org.omg.CORBA.StructMember) Exception(org.apache.cxf.binding.corba.wsdl.Exception) IOException(java.io.IOException) CorbaPrimitiveHandler(org.apache.cxf.binding.corba.types.CorbaPrimitiveHandler) CorbaExceptionHandler(org.apache.cxf.binding.corba.types.CorbaExceptionHandler) MemberType(org.apache.cxf.binding.corba.wsdl.MemberType) CorbaObjectHandler(org.apache.cxf.binding.corba.types.CorbaObjectHandler) Test(org.junit.Test)

Example 7 with StructMember

use of org.omg.CORBA.StructMember in project axis-axis2-java-core by apache.

the class Struct method prepairStructMembers.

protected StructMember[] prepairStructMembers() {
    StructMember[] structMembers = new StructMember[members.size()];
    for (int i = 0; i < members.size(); i++) {
        Member member = (Member) members.get(i);
        TypeCode typeCode = member.getDataType().getTypeCode();
        structMembers[i] = new org.omg.CORBA.StructMember(member.getName(), typeCode, null);
    }
    return structMembers;
}
Also used : TypeCode(org.omg.CORBA.TypeCode) StructMember(org.omg.CORBA.StructMember) StructMember(org.omg.CORBA.StructMember) StructMember(org.omg.CORBA.StructMember)

Example 8 with StructMember

use of org.omg.CORBA.StructMember in project cxf by apache.

the class CorbaObjectWriterTest method testWriteException.

@Test
public void testWriteException() {
    // create the following exception
    // exception TestExcept {
    // short code;
    // string message;
    // }
    short code = 12345;
    String message = "54321";
    String reposID = "IDL:org.apache.cxf.TestException/1.0";
    QName exceptIdlType = new QName(CorbaConstants.NU_WSDL_CORBA, "exception", CorbaConstants.NP_WSDL_CORBA);
    QName shortIdlType = new QName(CorbaConstants.NU_WSDL_CORBA, "short", CorbaConstants.NP_WSDL_CORBA);
    QName stringIdlType = new QName(CorbaConstants.NU_WSDL_CORBA, "string", CorbaConstants.NP_WSDL_CORBA);
    Exception exceptType = new Exception();
    exceptType.setName("TestException");
    exceptType.setRepositoryID(reposID);
    MemberType m1 = new MemberType();
    m1.setIdltype(shortIdlType);
    m1.setName("code");
    MemberType m2 = new MemberType();
    m2.setIdltype(stringIdlType);
    m2.setName("message");
    exceptType.getMember().add(m1);
    exceptType.getMember().add(m2);
    // build the object holder
    StructMember[] exceptMembers = new StructMember[2];
    exceptMembers[0] = new StructMember("code", orb.get_primitive_tc(TCKind.tk_short), null);
    exceptMembers[1] = new StructMember("message", orb.get_primitive_tc(TCKind.tk_string), null);
    TypeCode exceptTC = orb.create_exception_tc(reposID, "TestException", exceptMembers);
    CorbaExceptionHandler obj = new CorbaExceptionHandler(new QName("TestException"), exceptIdlType, exceptTC, exceptType);
    CorbaPrimitiveHandler member1 = new CorbaPrimitiveHandler(new QName("code"), shortIdlType, exceptMembers[0].type, null);
    member1.setValueFromData(Short.toString(code));
    CorbaPrimitiveHandler member2 = new CorbaPrimitiveHandler(new QName("message"), stringIdlType, exceptMembers[1].type, null);
    member2.setValueFromData(message);
    obj.addMember(member1);
    obj.addMember(member2);
    OutputStream oStream = orb.create_output_stream();
    CorbaObjectWriter writer = new CorbaObjectWriter(oStream);
    writer.writeException(obj);
    InputStream iStream = oStream.create_input_stream();
    String readId = iStream.read_string();
    assertEquals(readId, reposID);
    short readCode = iStream.read_short();
    assertTrue(readCode == code);
    String readMessage = iStream.read_string();
    assertEquals(readMessage, message);
}
Also used : TypeCode(org.omg.CORBA.TypeCode) QName(javax.xml.namespace.QName) InputStream(org.omg.CORBA.portable.InputStream) OutputStream(org.omg.CORBA.portable.OutputStream) StructMember(org.omg.CORBA.StructMember) Exception(org.apache.cxf.binding.corba.wsdl.Exception) IOException(java.io.IOException) CorbaPrimitiveHandler(org.apache.cxf.binding.corba.types.CorbaPrimitiveHandler) CorbaExceptionHandler(org.apache.cxf.binding.corba.types.CorbaExceptionHandler) MemberType(org.apache.cxf.binding.corba.wsdl.MemberType) Test(org.junit.Test)

Example 9 with StructMember

use of org.omg.CORBA.StructMember in project cxf by apache.

the class CorbaStructHandlerTest method testCorbaStructHandler.

@Test
public void testCorbaStructHandler() {
    Struct structType = new Struct();
    structType.setName("TestStruct");
    structType.setRepositoryID("IDL:TestStruct:1.0");
    MemberType member0 = new MemberType();
    member0.setIdltype(CorbaConstants.NT_CORBA_LONG);
    member0.setName("member0");
    MemberType member1 = new MemberType();
    member1.setIdltype(CorbaConstants.NT_CORBA_STRING);
    member1.setName("member1");
    QName structName = new QName("TestStruct");
    QName structIdlType = new QName(CorbaConstants.NU_WSDL_CORBA, "testStruct", CorbaConstants.NP_WSDL_CORBA);
    StructMember[] structMembers = new StructMember[2];
    structMembers[0] = new StructMember("member0", orb.get_primitive_tc(TCKind.tk_long), null);
    structMembers[1] = new StructMember("member1", orb.get_primitive_tc(TCKind.tk_string), null);
    TypeCode structTC = orb.create_struct_tc(structType.getRepositoryID(), structType.getName(), structMembers);
    CorbaStructHandler obj = new CorbaStructHandler(structName, structIdlType, structTC, structType);
    assertNotNull(obj);
    CorbaPrimitiveHandler objMember0 = new CorbaPrimitiveHandler(new QName(member0.getName()), member0.getIdltype(), orb.get_primitive_tc(TCKind.tk_long), null);
    assertNotNull(objMember0);
    obj.addMember(objMember0);
    CorbaPrimitiveHandler objMember1 = new CorbaPrimitiveHandler(new QName(member1.getName()), member1.getIdltype(), orb.get_primitive_tc(TCKind.tk_string), null);
    assertNotNull(objMember1);
    obj.addMember(objMember1);
    int memberSize = obj.getMembers().size();
    assertTrue(memberSize == 2);
    QName nameResult = obj.getName();
    assertEquals(structName, nameResult);
    QName idlTypeResult = obj.getIdlType();
    assertEquals(structIdlType, idlTypeResult);
    CorbaObjectHandler member0Result = obj.getMemberByName("member0");
    assertNotNull(member0Result);
    assertEquals(member0Result.getName(), objMember0.getName());
    CorbaObjectHandler member1Result = obj.getMember(1);
    assertNotNull(member1Result);
    assertEquals(member1Result.getName(), objMember1.getName());
}
Also used : MemberType(org.apache.cxf.binding.corba.wsdl.MemberType) TypeCode(org.omg.CORBA.TypeCode) QName(javax.xml.namespace.QName) StructMember(org.omg.CORBA.StructMember) Struct(org.apache.cxf.binding.corba.wsdl.Struct) Test(org.junit.Test)

Example 10 with StructMember

use of org.omg.CORBA.StructMember in project cxf by apache.

the class CorbaUtils method getComplexTypeCode.

public static TypeCode getComplexTypeCode(ORB orb, QName type, Object obj, CorbaTypeMap typeMap, Stack<QName> seenTypes) {
    TypeCode tc = getAnonTypeCode(orb, type, obj, typeMap, seenTypes);
    if (tc == null) {
        if (obj instanceof Alias) {
            Alias aliasType = (Alias) obj;
            tc = orb.create_alias_tc(aliasType.getRepositoryID(), getTypeCodeName(aliasType.getName()), getTypeCode(orb, aliasType.getBasetype(), typeMap, seenTypes));
        } else if (obj instanceof Array) {
            Array arrayType = (Array) obj;
            tc = orb.create_array_tc((int) arrayType.getBound(), getTypeCode(orb, arrayType.getElemtype(), typeMap, seenTypes));
        } else if (obj instanceof Enum) {
            Enum enumType = (Enum) obj;
            String name = enumType.getName();
            List<Enumerator> enums = enumType.getEnumerator();
            String[] members = new String[enums.size()];
            for (int i = 0; i < members.length; ++i) {
                members[i] = enums.get(i).getValue();
            }
            name = getTypeCodeName(name);
            tc = orb.create_enum_tc(enumType.getRepositoryID(), name, members);
        } else if (obj instanceof Exception) {
            Exception exceptType = (Exception) obj;
            List<MemberType> list = exceptType.getMember();
            StructMember[] members = new StructMember[list.size()];
            for (int i = 0; i < members.length; ++i) {
                MemberType member = list.get(i);
                members[i] = new StructMember(member.getName(), getTypeCode(orb, member.getIdltype(), typeMap, seenTypes), null);
            }
            String name = getTypeCodeName(exceptType.getName());
            tc = orb.create_exception_tc(exceptType.getRepositoryID(), name, members);
        } else if (obj instanceof Fixed) {
            Fixed fixedType = (Fixed) obj;
            tc = orb.create_fixed_tc((short) fixedType.getDigits(), (short) fixedType.getScale());
        } else if (obj instanceof org.apache.cxf.binding.corba.wsdl.Object) {
            org.apache.cxf.binding.corba.wsdl.Object objType = (org.apache.cxf.binding.corba.wsdl.Object) obj;
            if ("CORBA.Object".equals(objType.getName())) {
                tc = orb.create_interface_tc(objType.getRepositoryID(), "Object");
            } else {
                tc = orb.create_interface_tc(objType.getRepositoryID(), getTypeCodeName(objType.getName()));
            }
        } else if (obj instanceof Sequence) {
            Sequence seqType = (Sequence) obj;
            tc = orb.create_sequence_tc((int) seqType.getBound(), getTypeCode(orb, seqType.getElemtype(), typeMap, seenTypes));
        } else if (obj instanceof Struct) {
            Struct structType = (Struct) obj;
            if (seenTypes.contains(new QName(structType.getName()))) {
                tc = orb.create_recursive_tc(structType.getRepositoryID());
            } else {
                seenTypes.push(new QName(structType.getName()));
                List<MemberType> list = structType.getMember();
                StructMember[] members = new StructMember[list.size()];
                for (int i = 0; i < members.length; ++i) {
                    MemberType member = list.get(i);
                    members[i] = new StructMember(member.getName(), getTypeCode(orb, member.getIdltype(), typeMap, seenTypes), null);
                }
                String name = getTypeCodeName(structType.getName());
                tc = orb.create_struct_tc(structType.getRepositoryID(), name, members);
                seenTypes.pop();
            }
        } else if (obj instanceof Union) {
            tc = getUnionTypeCode(orb, obj, typeMap, seenTypes);
        }
    }
    return tc;
}
Also used : Enum(org.apache.cxf.binding.corba.wsdl.Enum) Union(org.apache.cxf.binding.corba.wsdl.Union) Struct(org.apache.cxf.binding.corba.wsdl.Struct) Enumerator(org.apache.cxf.binding.corba.wsdl.Enumerator) NVList(org.omg.CORBA.NVList) List(java.util.List) Fixed(org.apache.cxf.binding.corba.wsdl.Fixed) TypeCode(org.omg.CORBA.TypeCode) QName(javax.xml.namespace.QName) Sequence(org.apache.cxf.binding.corba.wsdl.Sequence) StructMember(org.omg.CORBA.StructMember) Exception(org.apache.cxf.binding.corba.wsdl.Exception) CorbaBindingException(org.apache.cxf.binding.corba.CorbaBindingException) Array(org.apache.cxf.binding.corba.wsdl.Array) MemberType(org.apache.cxf.binding.corba.wsdl.MemberType) Alias(org.apache.cxf.binding.corba.wsdl.Alias)

Aggregations

StructMember (org.omg.CORBA.StructMember)12 TypeCode (org.omg.CORBA.TypeCode)10 QName (javax.xml.namespace.QName)6 MemberType (org.apache.cxf.binding.corba.wsdl.MemberType)6 Test (org.junit.Test)5 CorbaPrimitiveHandler (org.apache.cxf.binding.corba.types.CorbaPrimitiveHandler)4 Struct (org.apache.cxf.binding.corba.wsdl.Struct)4 InputStream (org.omg.CORBA.portable.InputStream)4 OutputStream (org.omg.CORBA.portable.OutputStream)4 Exception (org.apache.cxf.binding.corba.wsdl.Exception)3 IOException (java.io.IOException)2 CorbaExceptionHandler (org.apache.cxf.binding.corba.types.CorbaExceptionHandler)2 CorbaObjectHandler (org.apache.cxf.binding.corba.types.CorbaObjectHandler)2 CorbaStructHandler (org.apache.cxf.binding.corba.types.CorbaStructHandler)2 List (java.util.List)1 CorbaBindingException (org.apache.cxf.binding.corba.CorbaBindingException)1 Alias (org.apache.cxf.binding.corba.wsdl.Alias)1 Array (org.apache.cxf.binding.corba.wsdl.Array)1 Enum (org.apache.cxf.binding.corba.wsdl.Enum)1 Enumerator (org.apache.cxf.binding.corba.wsdl.Enumerator)1