Package org.apache.yoko.bindings.corba.types

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


                cbParamCount++;
            }
            QName paramIdlType = pType.getIdltype();
            ModeType paramMode = pType.getMode();

            CorbaObjectHandler obj =
                CorbaHandlerUtils.initializeObjectHandler(orb, paramName, paramIdlType, typeMaps);

            streamables[index] = new CorbaStreamable(obj, paramName);
            if (paramMode.value().equals("in")) {
                streamables[index].setMode(org.omg.CORBA.ARG_IN.value);
View Full Code Here


        List<MemberType> exMembers = ex.getMember();
        for (Iterator i = exMembers.iterator(); i.hasNext();) {
            MemberType member = (MemberType)i.next();
            QName memberName = new QName(member.getName());
            QName memberType = member.getIdltype();
            CorbaObjectHandler memberObj =
                CorbaHandlerUtils.createTypeHandler(orb, memberName, memberType, typeMaps);
            obj.addMember(memberObj);
        }

        CorbaStreamable exStreamable = new CorbaStreamable(obj, new QName("exception"));
View Full Code Here

        try {
            LOG.log(Level.INFO, "Preparing to unmarshal a CORBA exception");

            List<CorbaObjectHandler> exMembers = corbaEx.getMembers();
            for (Iterator<CorbaObjectHandler> iter = exMembers.iterator(); iter.hasNext();) {
                CorbaObjectHandler member = iter.next();
                String memberName = member.getName().getLocalPart();
                LOG.log(Level.INFO, "Setting field " + memberName);

                Field field = yokoEx.getClass().getDeclaredField(memberName);
                Method setMethod = getFieldSetMethod(memberName, yokoEx.getClass(), field);
                setExceptionFieldValue(member, field, setMethod, yokoEx);
View Full Code Here

        long scale = fixedHandler.getScale();
        stream.write_fixed(fixedHandler.getValue().movePointRight((int)scale));
    }

    public void writeUnion(CorbaObjectHandler obj) throws CorbaBindingException {
        CorbaObjectHandler discriminator = ((CorbaUnionHandler)obj).getDiscriminator();
        this.write(discriminator);
        CorbaObjectHandler unionValue = ((CorbaUnionHandler)obj).getValue();
        this.write(unionValue);
    }
View Full Code Here

        fixedHandler.setValue(fixedValue);
    }

    public void readUnion(CorbaObjectHandler obj) throws CorbaBindingException {
        CorbaUnionHandler unionHandler = (CorbaUnionHandler)obj;       
        CorbaObjectHandler discriminator = unionHandler.getDiscriminator();
       
        this.read(discriminator);
       
        String discLabel = null;
        if (discriminator.getTypeCodeKind().value() == TCKind._tk_enum) {
            discLabel = ((CorbaEnumHandler)discriminator).getValue();
        } else {
            discLabel = ((CorbaPrimitiveHandler)discriminator).getValueData();
        }
       
        // Now find the label in the union to get the right case
        Union unionType = (Union)unionHandler.getType();
        List<Unionbranch> branches = unionType.getUnionbranch();
        Unionbranch defaultBranch = null;
        boolean caseFound = false;
        for (Iterator<Unionbranch> iter = branches.iterator(); iter.hasNext();) {
            Unionbranch branch = iter.next();
            if (branch.isSetDefault() && branch.isDefault()) {
                defaultBranch = branch;
            }
            List<CaseType> cases = branch.getCase();
            for (Iterator<CaseType> caseIter = cases.iterator(); caseIter.hasNext();) {
                CaseType c = caseIter.next();
                if (c.getLabel().equals(discLabel)) {
                    CorbaObjectHandler branchObj = unionHandler.getBranchByName(branch.getName());
                    this.read(branchObj);
                    unionHandler.setValue(branch.getName(), branchObj);
                    caseFound = true;
                    break;
                }
            }
            if (caseFound) {
                break;
            }
        }
       
        // If we never find a case that matches the value of the discriminiator, then we must have
        // found the default case.
        if (!caseFound && defaultBranch != null) {
            CorbaObjectHandler branchObj = unionHandler.getBranchByName(defaultBranch.getName());
            this.read(branchObj);
            unionHandler.setValue(defaultBranch.getName(), branchObj);
        }
    }
View Full Code Here

        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.
View Full Code Here

TOP

Related Classes of org.apache.yoko.bindings.corba.types.CorbaObjectHandler

Copyright © 2018 www.massapicom. 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.