Examples of CorbaSequenceHandler


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

        seqType.setElemtype(stringIdlType);       
        // name and respoitory ID of the sequence are not needed for this test

        // build the object holder for a sequence.
        TypeCode seqTC = orb.create_sequence_tc(data.length, orb.get_primitive_tc(TCKind.tk_string));
        CorbaSequenceHandler obj = new CorbaSequenceHandler(new QName("Seq"), seqIdlType, seqTC, seqType);
        for (int i = 0; i < data.length; ++i) {
            CorbaPrimitiveHandler nestedObj =
                new CorbaPrimitiveHandler(new QName("item"), stringIdlType,
                                      orb.get_primitive_tc(TCKind.tk_string), null);
            obj.addElement(nestedObj);
        }
       
        reader.readSequence(obj);
        int length = obj.getElements().size();
        for (int i = 0; i < length; ++i) {
            assertTrue(((CorbaPrimitiveHandler)obj.getElement(i)).getDataFromValue().equals(data[i]));
        }
    }
View Full Code Here

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

        seqType.setElemtype(stringIdlType);       
        // name and respoitory ID of the sequence are not needed for this test

        // build the object holder for a sequence.
        TypeCode seqTC = orb.create_sequence_tc(data.length, orb.get_primitive_tc(TCKind.tk_string));
        CorbaSequenceHandler obj = new CorbaSequenceHandler(new QName("Seq"), seqIdlType, seqTC, seqType);
        for (int i = 0; i < data.length; ++i) {
            CorbaPrimitiveHandler nestedObj =
                new CorbaPrimitiveHandler(new QName("item"), stringIdlType,
                                      orb.get_primitive_tc(TCKind.tk_string), null);
            obj.addElement(nestedObj);
        }
       
        reader.readSequence(obj);
        int length = obj.getElements().size();
        for (int i = 0; i < length; ++i) {
            assertTrue(((CorbaPrimitiveHandler)obj.getElement(i)).getValueData().equals(data[i]));
        }
    }
View Full Code Here

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

        seqType.setElemtype(stringIdlType);       
        // name and respoitory ID of the sequence are not needed for this test

        // build the object holder for a sequence.
        TypeCode seqTC = orb.create_sequence_tc(data.length, orb.get_primitive_tc(TCKind.tk_string));
        CorbaSequenceHandler obj = new CorbaSequenceHandler(new QName("Seq"), seqIdlType, seqTC, seqType);
        for (int i = 0; i < data.length; ++i) {
            CorbaPrimitiveHandler nestedObj =
                new CorbaPrimitiveHandler(new QName("item"), stringIdlType,
                                      orb.get_primitive_tc(TCKind.tk_string), null);
            nestedObj.setValueFromData(data[i]);
            obj.addElement(nestedObj);
        }
       
        Buffer buf = new Buffer();
        OutputStream oStream = new OutputStream(buf);
        CorbaObjectWriter writer =  new CorbaObjectWriter(oStream);
View Full Code Here

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

        TypeCode objTypeCode = CorbaUtils.getTypeCode(orb, objIdlType, staxBindingImpl.getCorbaTypeMaps());
        CorbaTypeImpl type = CorbaUtils.getCorbaType(objIdlType, staxBindingImpl.getCorbaTypeMaps());
        assertTrue(type instanceof Sequence);

        Sequence seqType = (Sequence)type;
        CorbaSequenceHandler obj = new CorbaSequenceHandler(objName, objIdlType, objTypeCode, seqType);
        assertNotNull(obj);

        List<CorbaObjectHandler> objElements = new ArrayList<CorbaObjectHandler>();
        short seqData[] = { 1, 3, 5, 7 };
        for (int i = 0 ; i < seqData.length; ++i) {
            QName elName = new QName("item");
            QName elIdlType = CorbaConstants.NT_CORBA_SHORT;
            TypeCode elTC = orb.get_primitive_tc(TCKind.tk_short);
            CorbaPrimitiveHandler el = new CorbaPrimitiveHandler(elName, elIdlType, elTC, null);
            el.setValue(Short.valueOf(seqData[i]));
            obj.addElement(el);
            objElements.add(el);
        }
       
        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.writeSequenceToStax(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 result = staxBindingImpl.readSequenceFromStax(evtReader,
                                                                     obj.getIdlType(),
                                                                     obj.getTypeCode());
        assertNotNull(result);
       
        assertTrue(result instanceof CorbaSequenceHandler);
        CorbaSequenceHandler resultObj = (CorbaSequenceHandler)result;
       
        assertTrue(resultObj.getName().equals(obj.getName()));
        assertTrue(resultObj.getIdlType().equals(obj.getIdlType()));
        assertTrue(resultObj.getTypeCode().equal(obj.getTypeCode()));
        List<CorbaObjectHandler> resultElements = resultObj.getElements();
        for (int i = 0; i < resultElements.size(); ++i) {
            assertTrue(resultElements.get(i) instanceof CorbaPrimitiveHandler);
            CorbaPrimitiveHandler resultEl = (CorbaPrimitiveHandler)resultElements.get(i);
            CorbaPrimitiveHandler objEl = (CorbaPrimitiveHandler)objElements.get(i);
            assertTrue(resultEl.getValueData().equals(objEl.getValueData()));
View Full Code Here

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

        }
    }

    public CorbaObjectHandler readSequenceFromStax(XMLEventReader reader, QName idlType, TypeCode tc)
        throws CorbaBindingException {
        CorbaSequenceHandler obj = null;
        CorbaTypeImpl typeDefinition = CorbaUtils.getCorbaType(idlType, typeMaps);
       
        try {
            QName seqElementType = null;
            long bound = 0;
            if (typeDefinition instanceof Anonsequence) {
                Anonsequence anonSeqType = (Anonsequence)typeDefinition;
                seqElementType = anonSeqType.getElemtype();
                bound = anonSeqType.getBound();
            } else {
                Sequence seqType = (Sequence)typeDefinition;
                seqElementType = seqType.getElemtype();
                bound = seqType.getBound();
            }
            StartElement seqStartEl = reader.nextEvent().asStartElement();
            obj = new CorbaSequenceHandler(seqStartEl.getName(), idlType, tc, typeDefinition);
            if (bound == 0) {
                LOG.log(Level.INFO, "Unbounded sequence found");
                while (reader.peek().getEventType() == XMLStreamConstants.START_ELEMENT) {
                    CorbaObjectHandler element = readObjectFromStax(reader, seqElementType, true);
                    obj.addElement(element);
                }
            } else {
                LOG.log(Level.INFO, "Bounded sequence found");
                for (long i = 0; i < bound; ++i) {
                    CorbaObjectHandler element = readObjectFromStax(reader, seqElementType, true);
                    obj.addElement(element);
                }
            }
            reader.nextEvent().asEndElement();
        } catch (java.lang.Exception ex) {
            LOG.log(Level.SEVERE, "Received exception while reading object of type " + idlType);
View Full Code Here

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

        return obj;
    }

    public void writeSequenceToStax(CorbaObjectHandler obj, XMLEventWriter writer, XMLEventFactory factory)
        throws XMLStreamException {
        CorbaSequenceHandler seqHandler = (CorbaSequenceHandler)obj;
        List<CorbaObjectHandler> elements = seqHandler.getElements();
        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.CorbaSequenceHandler

            this.write(iter.next());
        }
    }

    public void writeSequence(CorbaObjectHandler obj) throws CorbaBindingException {
        CorbaSequenceHandler seqHandler = (CorbaSequenceHandler)obj;
        List<CorbaObjectHandler> seqElements = seqHandler.getElements();
        int length = seqElements.size();

        stream.write_ulong(length);

        for (Iterator<CorbaObjectHandler> iter = seqElements.iterator(); iter.hasNext();) {
View Full Code Here

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

            this.read(iter.next());
        }
    }

    public void readSequence(CorbaObjectHandler obj) throws CorbaBindingException {
        CorbaSequenceHandler sequenceObj = (CorbaSequenceHandler)obj;
        List<CorbaObjectHandler> seqElements = sequenceObj.getElements();

        int length = stream.read_ulong();
       
        if (seqElements.size() == 0) {
            // No predefined elements means an unbounded sequence.  Use the template element
            // to construct each object that is in the input stream.
            CorbaObjectHandler template = sequenceObj.getTemplateElement();
            Class<?> templateClass = template.getClass();
            // we know that we are after the 4 parameter version of the constructor
            Class[] paramClasses = new Class[4];
            Object[] params = new Object[4];
            paramClasses[0] = QName.class;
            params[0] = template.getName();
            paramClasses[1] = QName.class;
            params[1] = template.getIdlType();
            paramClasses[2] = TypeCode.class;
            params[2] = template.getTypeCode();
            paramClasses[3] = Object.class;
            params[3] = template.getType();
            Constructor templateConstructor = null;
            try {
                templateConstructor = templateClass.getConstructor(paramClasses);
               
            } catch (java.lang.NoSuchMethodException ex) {
                throw new CorbaBindingException("Exception while reading unbounded sequence", ex);
            }
          
            for (int i = 0; i < length; ++i) {
                CorbaObjectHandler seqElement = null;
                try {
                    seqElement = (CorbaObjectHandler)templateConstructor.newInstance(params);
                    // A special case arises if we have a unbounded sequence of unbounded sequences.  We
                    // need to obtain the template object so that all nested unbounded sequences can be
                    // correctly constructed.
                    if (template instanceof CorbaSequenceHandler) {
                        CorbaSequenceHandler templateSeq = (CorbaSequenceHandler)template;
                        ((CorbaSequenceHandler)seqElement).
                            setTemplateElement(templateSeq.getTemplateElement());
                    }
                } catch (java.lang.Exception ex) {
                    throw new CorbaBindingException("Unable to instantiate sequence element", ex);
                }                   
                this.read(seqElement);
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.