Examples of CorbaStructHandler


Examples of org.apache.yoko.bindings.corba.types.CorbaStructHandler

        QName objIdlType = new QName(nestedNamespaceURI, "NestedStruct", nestedPrefix);
        CorbaTypeImpl type = CorbaUtils.getCorbaType(objIdlType, bindingImpl.getCorbaTypeMaps());
        assertTrue(type instanceof Struct);
        Struct structType = (Struct)type;
        TypeCode objTypeCode = CorbaUtils.getTypeCode(orb, objIdlType, bindingImpl.getCorbaTypeMaps());
        CorbaStructHandler obj = new CorbaStructHandler(objName, objIdlType, objTypeCode, structType);
        assertNotNull(obj);
       
        // Create member 1, a BasicStruct
        objName = new QName("member1");
        objIdlType = new QName(nestedNamespaceURI, "BasicStruct", nestedPrefix);
        type = CorbaUtils.getCorbaType(objIdlType, bindingImpl.getCorbaTypeMaps());
        assertTrue(type instanceof Struct);
        structType = (Struct)type;
        objTypeCode = CorbaUtils.getTypeCode(orb, objIdlType, bindingImpl.getCorbaTypeMaps());
        CorbaStructHandler member1Obj = new CorbaStructHandler(objName, objIdlType, objTypeCode, structType);
        assertNotNull(member1Obj);
       
        // Create the basic struct members
        String nestedMember1Value = "Basic Member 1";
        objName = new QName("member1");
        objIdlType = CorbaConstants.NT_CORBA_STRING;
        objTypeCode = CorbaUtils.getTypeCode(orb, objIdlType, bindingImpl.getCorbaTypeMaps());
        CorbaPrimitiveHandler nestedMember1Obj =
            new CorbaPrimitiveHandler(objName, objIdlType, objTypeCode, null);
        assertNotNull(nestedMember1Obj);
        member1Obj.addMember(nestedMember1Obj);

        Boolean nestedMember2Value = new Boolean(false);
        objName = new QName("member2");
        objIdlType = CorbaConstants.NT_CORBA_BOOLEAN;
        objTypeCode = CorbaUtils.getTypeCode(orb, objIdlType, bindingImpl.getCorbaTypeMaps());
        CorbaPrimitiveHandler nestedMember2Obj =
            new CorbaPrimitiveHandler(objName, objIdlType, objTypeCode, null);
        assertNotNull(nestedMember2Obj);
        member1Obj.addMember(nestedMember2Obj);
       
        obj.addMember(member1Obj);
       
        // Create member 2, a Basic Fixed
        BigDecimal fixedValue = new BigDecimal("123.67");
        objName = new QName("member2");
        objIdlType = new QName(nestedNamespaceURI, "BasicFixed", nestedPrefix);
        type = CorbaUtils.getCorbaType(objIdlType, bindingImpl.getCorbaTypeMaps());
        assertTrue(type instanceof Fixed);
        Fixed fixedType = (Fixed)type;
        objTypeCode = CorbaUtils.getTypeCode(orb, objIdlType, bindingImpl.getCorbaTypeMaps());
        CorbaFixedHandler member2Obj = new CorbaFixedHandler(objName, objIdlType, objTypeCode, fixedType);
        assertNotNull(member2Obj);
        obj.addMember(member2Obj);
       
        // Create member 3, a Basic Enum
        int enumIndex = 0;
        objName = new QName("member3");
        objIdlType = new QName(nestedNamespaceURI, "BasicEnum", nestedPrefix);
        type = CorbaUtils.getCorbaType(objIdlType, bindingImpl.getCorbaTypeMaps());
        assertTrue(type instanceof Enum);
        Enum enumType = (Enum)type;
        objTypeCode = CorbaUtils.getTypeCode(orb, objIdlType, bindingImpl.getCorbaTypeMaps());
        CorbaEnumHandler member3Obj = new CorbaEnumHandler(objName, objIdlType, objTypeCode, enumType);
        assertNotNull(member3Obj);
        obj.addMember(member3Obj);
       
        // Create member 4, a Basic Enum
        Float floatValue = 123456.678f;
        objName = new QName("member4");
        objIdlType = CorbaConstants.NT_CORBA_FLOAT;
        objTypeCode = CorbaUtils.getTypeCode(orb, objIdlType, bindingImpl.getCorbaTypeMaps());
        CorbaPrimitiveHandler member4Obj = new CorbaPrimitiveHandler(objName, objIdlType, objTypeCode, null);
        assertNotNull(member4Obj);
        obj.addMember(member4Obj);

        // Write to an output stream the way a CORBA application would marshal the data for the nested
        // struct.
        Buffer buf = new Buffer();
        OutputStream oStream = new OutputStream(buf);
       
        oStream.write_string(nestedMember1Value);
        oStream.write_boolean(nestedMember2Value.booleanValue());
        oStream.write_fixed(fixedValue.movePointRight(2));
        oStream.write_long(enumIndex);
        oStream.write_float(floatValue.floatValue());
       
        InputStream iStream = oStream.create_input_stream();
        CorbaObjectReader reader = new CorbaObjectReader(iStream);
        reader.read(obj);       
       
        // Now that the Object has its values, try and write it to Stax
        XMLInputFactory inputFactory = XMLInputFactory.newInstance();
        XMLOutputFactory outputFactory = XMLOutputFactory.newInstance();
        outputFactory.setProperty(XMLOutputFactory.IS_REPAIRING_NAMESPACES, Boolean.TRUE);
     
        ByteArrayOutputStream outStream = new ByteArrayOutputStream();
        XMLEventWriter evtWriter = null;
        try {
            evtWriter = outputFactory.createXMLEventWriter(outStream);
        } catch (XMLStreamException ex) {
            assertTrue(false);
        }
        assertNotNull(evtWriter);
       
        XMLEventFactory factory = XMLEventFactory.newInstance();
        try {
            bindingImpl.writeObjectToStax(obj, evtWriter, factory, false);
            evtWriter.flush();
        } catch (XMLStreamException ex) {
            assertTrue(false);
        }
       
        byte[] b = outStream.toByteArray();
        for (int i = 0; i < b.length; ++i) {
            System.out.print((char)b[i]);
        }
        System.out.println();
       
        ByteArrayInputStream inStream = new ByteArrayInputStream(outStream.toByteArray());       
        XMLEventReader evtReader = null;
        try {           
            evtReader = inputFactory.createXMLEventReader(inStream);
        } catch (XMLStreamException ex) {
            assertTrue(false);
        }
        assertNotNull(evtReader);
       
        // Now use the Stax data to re-create a new object
        CorbaObjectHandler result =
            bindingImpl.readObjectFromStax(evtReader,
                                           new QName(nestedNamespaceURI, "NestedStruct", nestedPrefix),
                                           false);
       
        // Verify that the object has the correct values
        assertTrue(result instanceof CorbaStructHandler);       
        CorbaStructHandler nestedStructResult = (CorbaStructHandler)result;
       
        result = nestedStructResult.getMember(0);
        assertTrue(result instanceof CorbaStructHandler);
        CorbaStructHandler structResult = (CorbaStructHandler)result;

        // These are from the struct nested inside our other struct
        result = structResult.getMember(0);
        assertTrue(result instanceof CorbaPrimitiveHandler);
        CorbaPrimitiveHandler structPrimitiveMemberResult = (CorbaPrimitiveHandler)result;
        assertTrue(structPrimitiveMemberResult.getValueData().equals(nestedMember1Value.toString()));
        result = structResult.getMember(1);
        assertTrue(result instanceof CorbaPrimitiveHandler);
        structPrimitiveMemberResult = (CorbaPrimitiveHandler)result;
        assertTrue(structPrimitiveMemberResult.getValueData().equals(nestedMember2Value.toString()));
       
        // This is the fixed nested inside our struct
View Full Code Here

Examples of org.apache.yoko.bindings.corba.types.CorbaStructHandler

        structMembers[0] = new StructMember("member1", orb.get_primitive_tc(TCKind.tk_long), null);
        structMembers[1] = new StructMember("member2", orb.get_primitive_tc(TCKind.tk_string), null);
        structMembers[2] = new StructMember("member3", orb.get_primitive_tc(TCKind.tk_boolean), null);
        TypeCode structTC = orb.create_struct_tc("IDL:org.apache.yoko.TestStruct/1.0", "TestStruct",
                                                 structMembers);
        CorbaStructHandler obj = new CorbaStructHandler(new QName("TestStruct"), structIdlType,
                                                        structTC, structType);
        CorbaPrimitiveHandler memberObj1 =
            new CorbaPrimitiveHandler(new QName("member1"), longIdlType, structMembers[0].type, null);
        CorbaPrimitiveHandler memberObj2 =
            new CorbaPrimitiveHandler(new QName("member2"), stringIdlType, structMembers[1].type, null);
        CorbaPrimitiveHandler memberObj3 =
            new CorbaPrimitiveHandler(new QName("member3"), boolIdlType, structMembers[2].type, null);
       
        memberObj1.setValueFromData(Integer.toString(member1));
        memberObj2.setValueFromData(member2);
        memberObj3.setValueFromData(Boolean.toString(member3));
       
        obj.addMember(memberObj1);
        obj.addMember(memberObj2);
        obj.addMember(memberObj3);
       
        Buffer buf = new Buffer();
        OutputStream oStream = new OutputStream(buf);
        CorbaObjectWriter writer = new CorbaObjectWriter(oStream);
        writer.writeStruct(obj);
View Full Code Here

Examples of org.apache.yoko.bindings.corba.types.CorbaStructHandler

        QName objIdlType = new QName(staxTestNamespaceURI, "TestStruct", staxTestPrefix);
        CorbaTypeImpl type = CorbaUtils.getCorbaType(objIdlType, staxBindingImpl.getCorbaTypeMaps());
        assertTrue(type instanceof Struct);
        Struct structType = (Struct)type;
        TypeCode objTypeCode = CorbaUtils.getTypeCode(orb, objIdlType, staxBindingImpl.getCorbaTypeMaps());
        CorbaStructHandler obj = new CorbaStructHandler(objName, objIdlType, objTypeCode, structType);
        assertNotNull(obj);

        List<MemberType> structMembers = structType.getMember();
        // For this test, we know what each of the members are.  Create the correct handler and assign
        // each member a value
        MemberType m1 = structMembers.get(0);
        TypeCode m1TypeCode = CorbaUtils.getTypeCode(orb, m1.getIdltype(), staxBindingImpl.getCorbaTypeMaps());
        CorbaPrimitiveHandler member1 = new CorbaPrimitiveHandler(new QName(m1.getName()),
                                                                 m1.getIdltype(),
                                                                 m1TypeCode,
                                                                 null);
        Boolean member1Value = new Boolean(false);
        member1.setValue(member1Value);
        obj.addMember(member1);
       
        MemberType m2 = structMembers.get(1);
        TypeCode m2TypeCode = CorbaUtils.getTypeCode(orb, m2.getIdltype(), staxBindingImpl.getCorbaTypeMaps());
        CorbaPrimitiveHandler member2 = new CorbaPrimitiveHandler(new QName(m2.getName()),
                                                                 m2.getIdltype(),
                                                                 m2TypeCode,
                                                                 null);
        String member2Value = "Member 2 string";
        member2.setValue(member2Value);
        obj.addMember(member2);
       
        MemberType m3 = structMembers.get(2);
        TypeCode m3TypeCode = CorbaUtils.getTypeCode(orb, m3.getIdltype(), staxBindingImpl.getCorbaTypeMaps());
        CorbaPrimitiveHandler member3 = new CorbaPrimitiveHandler(new QName(m3.getName()),
                                                                 m3.getIdltype(),
                                                                 m3TypeCode,
                                                                 null);
        Float member3Value = new Float(12345.678);
        member3.setValue(member3Value);
        obj.addMember(member3);
       
        XMLInputFactory inputFactory = XMLInputFactory.newInstance();
        XMLOutputFactory outputFactory = XMLOutputFactory.newInstance();
        outputFactory.setProperty(XMLOutputFactory.IS_REPAIRING_NAMESPACES, Boolean.TRUE);
     
        ByteArrayOutputStream outStream = new ByteArrayOutputStream();
        XMLEventWriter evtWriter = null;
        try {
            evtWriter = outputFactory.createXMLEventWriter(outStream);
        } catch (XMLStreamException ex) {
        }
        assertNotNull(evtWriter);
       
        try {
            XMLEventFactory factory = XMLEventFactory.newInstance();
            StartElement startEl = factory.createStartElement(obj.getName(), null, null);
            evtWriter.add(startEl);
            staxBindingImpl.writeStructToStax(obj, evtWriter, factory);
            EndElement endEl = factory.createEndElement(obj.getName(), null);
            evtWriter.add(endEl);
            evtWriter.flush();
        } catch (XMLStreamException ex) {
           
        }

        ByteArrayInputStream inStream = new ByteArrayInputStream(outStream.toByteArray());       
        XMLEventReader evtReader = null;
        try {           
            evtReader = inputFactory.createXMLEventReader(inStream);
            // read the first tag which should be a start document
            XMLEvent evt = evtReader.nextEvent();
            assertTrue(evt.isStartDocument());
        } catch (XMLStreamException ex) {
        }
        assertNotNull(evtReader);
       
        CorbaObjectHandler resultObj = staxBindingImpl.readStructFromStax(evtReader,
                                                                     obj.getIdlType(),
                                                                     obj.getTypeCode());
        assertNotNull(resultObj);
       
        assertTrue(resultObj instanceof CorbaStructHandler);
        CorbaStructHandler result = (CorbaStructHandler)resultObj;
       
        List<CorbaObjectHandler> resultMembers = result.getMembers();
        assertTrue(resultMembers.size() == 3);
       
        CorbaObjectHandler resultMember1Obj = resultMembers.get(0);
        assertTrue(resultMember1Obj instanceof CorbaPrimitiveHandler);
        CorbaPrimitiveHandler resultMember1 = (CorbaPrimitiveHandler)resultMember1Obj;
View Full Code Here

Examples of org.apache.yoko.bindings.corba.types.CorbaStructHandler

        }
    }

    public CorbaObjectHandler readStructFromStax(XMLEventReader reader, QName idlType, TypeCode tc)
        throws CorbaBindingException {
        CorbaStructHandler obj = null;
        CorbaTypeImpl typeDefinition = CorbaUtils.getCorbaType(idlType, typeMaps);
       
        try {
            Struct structType = (Struct)typeDefinition;
            StartElement structStartEl = reader.nextEvent().asStartElement();
            obj = new CorbaStructHandler(structStartEl.getName(), idlType, tc, structType);
            List<MemberType> structMembers = structType.getMember();
            for (Iterator<MemberType> iter = structMembers.iterator(); iter.hasNext();) {
                MemberType m = iter.next();
                CorbaObjectHandler member = readObjectFromStax(reader, m.getIdltype(), true);
                obj.addMember(member);
            }
            reader.nextEvent().asEndElement();
        } catch (java.lang.Exception ex) {
            LOG.log(Level.SEVERE, "Received exception while reading object of type " + idlType);
            throw new CorbaBindingException("Error while reading struct corba type", ex);
View Full Code Here

Examples of org.apache.yoko.bindings.corba.types.CorbaStructHandler

        return obj;
    }

    public void writeStructToStax(CorbaObjectHandler obj, XMLEventWriter writer, XMLEventFactory factory)
        throws XMLStreamException {
        CorbaStructHandler structHandler = (CorbaStructHandler)obj;
        List<CorbaObjectHandler> elements = structHandler.getMembers();
        for (Iterator<CorbaObjectHandler> iter = elements.iterator(); iter.hasNext();) {
            writeObjectToStax(iter.next(), writer, factory, true);
        }
    }
View Full Code Here

Examples of org.apache.yoko.bindings.corba.types.CorbaStructHandler

       
        throw new CorbaBindingException("CorbaObjectWriter: unable to find enumeration label");
    }

    public void writeStruct(CorbaObjectHandler obj) throws CorbaBindingException {
        CorbaStructHandler structHandler = (CorbaStructHandler)obj;
        List<CorbaObjectHandler> structElements = structHandler.getMembers();

        for (Iterator<CorbaObjectHandler> iter = structElements.iterator(); iter.hasNext();) {
            this.write(iter.next());
        }
    }
View Full Code Here

Examples of org.apache.yoko.bindings.corba.types.CorbaStructHandler

        CorbaEnumHandler enumObj = (CorbaEnumHandler)obj;
        enumObj.setValue(enumerators.get(enumIndex).getValue());
    }

    public void readStruct(CorbaObjectHandler obj) throws CorbaBindingException {
        CorbaStructHandler structObj = (CorbaStructHandler)obj;
        List<CorbaObjectHandler> structMembers = structObj.getMembers();

        for (Iterator<CorbaObjectHandler> iter = structMembers.iterator(); iter.hasNext();) {
            this.read(iter.next());
        }
    }
View Full Code Here
TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.