Search in sources :

Example 1 with IdlSequence

use of org.apache.cxf.tools.corba.common.idltypes.IdlSequence in project cxf by apache.

the class WSDLToIDLAction method createStruct.

private IdlType createStruct(Struct s, IdlScopeBase scope, String local) throws Exception {
    boolean undefinedCircular = false;
    IdlStruct struct = IdlStruct.create(scope, local);
    scope.holdForScope(struct);
    for (MemberType m : s.getMember()) {
        QName qname = m.getIdltype();
        IdlType type = findType(qname);
        if (!undefinedCircular && !(type instanceof IdlSequence)) {
            String mlocal = qname.getLocalPart();
            String[] mname = unscopeName(mlocal);
            undefinedCircular = null != root.lookup(mname, true);
        }
        struct.addToScope(IdlField.create(struct, m.getName(), type));
    }
    if (undefinedCircular) {
        scope.parkHeld();
    } else {
        scope.promoteHeldToScope();
        if (struct.isCircular()) {
            // resolving this struct closed a recursion
            scope.flush();
        }
    }
    return struct;
}
Also used : IdlStruct(org.apache.cxf.tools.corba.common.idltypes.IdlStruct) IdlSequence(org.apache.cxf.tools.corba.common.idltypes.IdlSequence) MemberType(org.apache.cxf.binding.corba.wsdl.MemberType) QName(javax.xml.namespace.QName) IdlString(org.apache.cxf.tools.corba.common.idltypes.IdlString) IdlType(org.apache.cxf.tools.corba.common.idltypes.IdlType)

Example 2 with IdlSequence

use of org.apache.cxf.tools.corba.common.idltypes.IdlSequence in project cxf by apache.

the class WSDLToIDLAction method createUnion.

private IdlType createUnion(Union u, IdlScopeBase scope, String local) throws Exception {
    boolean undefinedCircular = false;
    IdlType disc = findType(u.getDiscriminator());
    IdlUnion union = IdlUnion.create(scope, local, disc);
    scope.holdForScope(union);
    for (Unionbranch ub : u.getUnionbranch()) {
        QName qname = ub.getIdltype();
        IdlType bt = findType(qname);
        boolean isDefault = false;
        if (ub.isSetDefault()) {
            isDefault = ub.isDefault();
        }
        IdlUnionBranch b = IdlUnionBranch.create(union, ub.getName(), bt, isDefault);
        for (CaseType cs : ub.getCase()) {
            b.addCase(cs.getLabel());
        }
        if (!undefinedCircular && !(bt instanceof IdlSequence)) {
            String mlocal = qname.getLocalPart();
            String[] mname = unscopeName(mlocal);
            undefinedCircular = null != root.lookup(mname, true);
        }
        union.addBranch(b);
    }
    if (undefinedCircular) {
        scope.parkHeld();
    } else {
        scope.promoteHeldToScope();
        if (union.isCircular()) {
            // resolving this union closed a recursion
            scope.flush();
        }
    }
    return union;
}
Also used : IdlUnionBranch(org.apache.cxf.tools.corba.common.idltypes.IdlUnionBranch) IdlSequence(org.apache.cxf.tools.corba.common.idltypes.IdlSequence) CaseType(org.apache.cxf.binding.corba.wsdl.CaseType) QName(javax.xml.namespace.QName) IdlString(org.apache.cxf.tools.corba.common.idltypes.IdlString) IdlType(org.apache.cxf.tools.corba.common.idltypes.IdlType) IdlUnion(org.apache.cxf.tools.corba.common.idltypes.IdlUnion) Unionbranch(org.apache.cxf.binding.corba.wsdl.Unionbranch)

Aggregations

QName (javax.xml.namespace.QName)2 IdlSequence (org.apache.cxf.tools.corba.common.idltypes.IdlSequence)2 IdlString (org.apache.cxf.tools.corba.common.idltypes.IdlString)2 IdlType (org.apache.cxf.tools.corba.common.idltypes.IdlType)2 CaseType (org.apache.cxf.binding.corba.wsdl.CaseType)1 MemberType (org.apache.cxf.binding.corba.wsdl.MemberType)1 Unionbranch (org.apache.cxf.binding.corba.wsdl.Unionbranch)1 IdlStruct (org.apache.cxf.tools.corba.common.idltypes.IdlStruct)1 IdlUnion (org.apache.cxf.tools.corba.common.idltypes.IdlUnion)1 IdlUnionBranch (org.apache.cxf.tools.corba.common.idltypes.IdlUnionBranch)1