Search in sources :

Example 11 with MemberType

use of org.apache.cxf.binding.corba.wsdl.MemberType in project cxf by apache.

the class WSDLToCorbaHelper method processAttributesAsMembers.

protected List<MemberType> processAttributesAsMembers(List<XmlSchemaAttributeOrGroupRef> list, String uri) throws Exception {
    QName memName = null;
    List<MemberType> members = new ArrayList<>();
    for (XmlSchemaAttributeOrGroupRef aog : list) {
        if (!(aog instanceof XmlSchemaAttribute)) {
            LOG.warning(aog.getClass() + " not supported in CORBA binding.  Skipping.");
            continue;
        }
        XmlSchemaAttribute attribute = (XmlSchemaAttribute) aog;
        QName attrName = attribute.getQName();
        if (attrName.getNamespaceURI().equals("")) {
            attrName = new QName(uri, attrName.getLocalPart());
        }
        CorbaType membertype = null;
        boolean attrQualified = getAttributeQualification(attribute, uri);
        if (attribute.getUse() == XmlSchemaUse.NONE || attribute.getUse() == XmlSchemaUse.OPTIONAL) {
            CorbaType attType = null;
            if (attribute.getSchemaType() != null) {
                // REVISIT, edell bug in XmlSchema 1.2.
                // https://issues.apache.org/jira/browse/WSCOMMONS-208
                attType = convertSchemaToCorbaType(attribute.getSchemaType(), checkPrefix(attrName), attribute.getSchemaType(), null, true);
                if (attType != null) {
                    QName typeName = attType.getQName();
                    if (!isDuplicate(attType)) {
                        typeMappingType.getStructOrExceptionOrUnion().add(attType);
                    }
                    QName name = createQNameTargetNamespace(typeName.getLocalPart() + "_nil");
                    membertype = createNillableUnion(name, checkPrefix(attrName), createQNameCorbaNamespace(typeName.getLocalPart()), attrQualified);
                }
            } else {
                attType = processPrimitiveType(attribute.getSchemaTypeName());
                // {http://www.w3.org/2005/08/addressing}RelationshipTypeOpenEnum
                if (attType != null) {
                    QName name = createQNameTargetNamespace(attType.getQName().getLocalPart() + "_nil");
                    // REVISIT, Edell - bug in Xmlschema 1.2
                    // https://issues.apache.org/jira/browse/WSCOMMONS-208
                    membertype = createNillableUnion(name, checkPrefix(attrName), attType.getQName(), attrQualified);
                }
            }
            if (membertype != null) {
                memName = createQNameCorbaNamespace(membertype.getQName().getLocalPart());
                if (!isDuplicate(membertype)) {
                    typeMappingType.getStructOrExceptionOrUnion().add(membertype);
                }
            }
        } else {
            if (attribute.getSchemaType() != null) {
                membertype = convertSchemaToCorbaType(attribute.getSchemaType(), attrName, attribute.getSchemaType(), null, false);
            } else {
                membertype = processPrimitiveType(attribute.getSchemaTypeName());
            }
        }
        if (membertype != null) {
            MemberType member;
            String memberName = attrName.getLocalPart();
            member = new MemberType();
            member.setName(memberName);
            if (memName != null) {
                member.setIdltype(memName);
            } else {
                member.setIdltype(membertype.getQName());
            }
            if (attrQualified) {
                member.setQualified(true);
            }
            members.add(member);
        } else {
            String msg = "Unsupported Attribute Found in CORBA Binding Generation:" + attrName;
            LOG.log(Level.WARNING, msg);
        }
    }
    return members;
}
Also used : CorbaType(org.apache.cxf.binding.corba.wsdl.CorbaType) MemberType(org.apache.cxf.binding.corba.wsdl.MemberType) QName(javax.xml.namespace.QName) ArrayList(java.util.ArrayList) XmlSchemaAttribute(org.apache.ws.commons.schema.XmlSchemaAttribute) XmlSchemaAttributeOrGroupRef(org.apache.ws.commons.schema.XmlSchemaAttributeOrGroupRef)

Example 12 with MemberType

use of org.apache.cxf.binding.corba.wsdl.MemberType in project cxf by apache.

the class WSDLToCorbaHelper method processContainerAsMembers.

protected List<MemberType> processContainerAsMembers(XmlSchemaParticle particle, QName defaultName, QName schemaTypeName) throws Exception {
    List<MemberType> members = new ArrayList<>();
    Iterator<? extends XmlSchemaObjectBase> iterL = null;
    if (particle instanceof XmlSchemaSequence) {
        XmlSchemaSequence scontainer = (XmlSchemaSequence) particle;
        iterL = scontainer.getItems().iterator();
    } else if (particle instanceof XmlSchemaChoice) {
        XmlSchemaChoice scontainer = (XmlSchemaChoice) particle;
        iterL = scontainer.getItems().iterator();
    } else if (particle instanceof XmlSchemaAll) {
        XmlSchemaAll acontainer = (XmlSchemaAll) particle;
        iterL = acontainer.getItems().iterator();
    } else {
        LOG.warning("Unknown particle type " + particle.getClass().getName());
        iterL = new ArrayList<XmlSchemaObjectBase>().iterator();
    }
    while (iterL.hasNext()) {
        XmlSchemaParticle container = (XmlSchemaParticle) iterL.next();
        if (container instanceof XmlSchemaSequence) {
            XmlSchemaSequence sequence = (XmlSchemaSequence) container;
            CorbaType memberType = processSequenceType(sequence, defaultName, schemaTypeName);
            QName typeName = memberType.getQName();
            if (memberType instanceof Struct && !isDuplicate(memberType)) {
                typeMappingType.getStructOrExceptionOrUnion().add(memberType);
            }
            MemberType member = new MemberType();
            member.setName(memberType.getName() + "_f");
            member.setIdltype(typeName);
            member.setAnonschematype(true);
            if (memberType.isSetQualified() && memberType.isQualified()) {
                member.setQualified(true);
            }
            members.add(member);
        } else if (container instanceof XmlSchemaChoice) {
            XmlSchemaChoice choice = (XmlSchemaChoice) container;
            MemberType member = processChoiceMember(choice, defaultName, schemaTypeName);
            member.setAnonschematype(true);
            members.add(member);
        } else if (container instanceof XmlSchemaAll) {
            XmlSchemaAll all = (XmlSchemaAll) container;
            MemberType member = processAllMember(all, defaultName, schemaTypeName);
            member.setAnonschematype(true);
            members.add(member);
        } else if (container instanceof XmlSchemaElement) {
            XmlSchemaElement element = (XmlSchemaElement) container;
            CorbaType corbatype = processLocalElement(defaultName, element, schemaTypeName.getNamespaceURI());
            QName elName = element.getQName();
            if (elName == null) {
                elName = element.getRef().getTargetQName();
            }
            if (corbatype != null) {
                MemberType member;
                String memberName = elName.getLocalPart();
                member = new MemberType();
                member.setName(memberName);
                member.setIdltype(corbatype.getQName());
                if (corbatype.isSetQualified() && corbatype.isQualified()) {
                    member.setQualified(true);
                }
                members.add(member);
            } else {
                LOG.log(Level.WARNING, "Unsupported Element Found in CORBA Binding Generation:" + elName);
            }
        }
    }
    return members;
}
Also used : QName(javax.xml.namespace.QName) XmlSchemaElement(org.apache.ws.commons.schema.XmlSchemaElement) ArrayList(java.util.ArrayList) XmlSchemaParticle(org.apache.ws.commons.schema.XmlSchemaParticle) Struct(org.apache.cxf.binding.corba.wsdl.Struct) XmlSchemaSequence(org.apache.ws.commons.schema.XmlSchemaSequence) CorbaType(org.apache.cxf.binding.corba.wsdl.CorbaType) MemberType(org.apache.cxf.binding.corba.wsdl.MemberType) XmlSchemaAll(org.apache.ws.commons.schema.XmlSchemaAll) XmlSchemaChoice(org.apache.ws.commons.schema.XmlSchemaChoice)

Example 13 with MemberType

use of org.apache.cxf.binding.corba.wsdl.MemberType 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 14 with MemberType

use of org.apache.cxf.binding.corba.wsdl.MemberType in project cxf by apache.

the class WSDLTypes method processUnionBranches.

public static Union processUnionBranches(Union corbaUnion, List<MemberType> fields, List<String> caselist) {
    int caseIndex = 0;
    for (int i = 0; i < fields.size(); i++) {
        MemberType field = fields.get(i);
        Unionbranch branch = new Unionbranch();
        branch.setName(field.getName());
        branch.setIdltype(field.getIdltype());
        if (field.isSetQualified() && field.isQualified()) {
            branch.setQualified(true);
        }
        branch.setDefault(false);
        CaseType c = new CaseType();
        c.setLabel(caselist.get(caseIndex));
        caseIndex++;
        branch.getCase().add(c);
        corbaUnion.getUnionbranch().add(branch);
    }
    return corbaUnion;
}
Also used : MemberType(org.apache.cxf.binding.corba.wsdl.MemberType) CaseType(org.apache.cxf.binding.corba.wsdl.CaseType) Unionbranch(org.apache.cxf.binding.corba.wsdl.Unionbranch)

Example 15 with MemberType

use of org.apache.cxf.binding.corba.wsdl.MemberType in project cxf by apache.

the class ExceptionVisitor method createMemberType.

private MemberType createMemberType(AST memberNode, CorbaType ctype, Scope fqName) {
    // corba:member
    MemberType memberType = new MemberType();
    memberType.setName(memberNode.toString());
    if (ctype != null) {
        memberType.setIdltype(ctype.getQName());
    } else {
        wsdlVisitor.getDeferredActions().add(fqName, new ExceptionDeferredAction(memberType));
    }
    return memberType;
}
Also used : MemberType(org.apache.cxf.binding.corba.wsdl.MemberType)

Aggregations

MemberType (org.apache.cxf.binding.corba.wsdl.MemberType)32 QName (javax.xml.namespace.QName)23 CorbaType (org.apache.cxf.binding.corba.wsdl.CorbaType)13 Struct (org.apache.cxf.binding.corba.wsdl.Struct)9 StructMember (org.omg.CORBA.StructMember)6 TypeCode (org.omg.CORBA.TypeCode)6 Test (org.junit.Test)5 ArrayList (java.util.ArrayList)4 CorbaPrimitiveHandler (org.apache.cxf.binding.corba.types.CorbaPrimitiveHandler)4 Exception (org.apache.cxf.binding.corba.wsdl.Exception)4 Union (org.apache.cxf.binding.corba.wsdl.Union)4 XmlSchemaElement (org.apache.ws.commons.schema.XmlSchemaElement)4 XmlSchemaSequence (org.apache.ws.commons.schema.XmlSchemaSequence)4 XmlSchemaType (org.apache.ws.commons.schema.XmlSchemaType)4 InputStream (org.omg.CORBA.portable.InputStream)4 OutputStream (org.omg.CORBA.portable.OutputStream)4 XmlSchemaChoice (org.apache.ws.commons.schema.XmlSchemaChoice)3 AST (antlr.collections.AST)2 IOException (java.io.IOException)2 CorbaBindingException (org.apache.cxf.binding.corba.CorbaBindingException)2