⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 xpdlreader.java

📁 Sequoia ERP是一个真正的企业级开源ERP解决方案。它提供的模块包括:电子商务应用(e-commerce), POS系统(point of sales),知识管理,存货与仓库管理
💻 JAVA
📖 第 1 页 / 共 5 页
字号:
        Iterator participantsIter = participants.iterator();        long index = 1;        while (participantsIter.hasNext()) {            Element participantElement = (Element) participantsIter.next();            String participantId = participantElement.getAttribute("Id");            // if participant doesn't exist, create it; don't do an update because if settings are manually changed it would be annoying as all get out            GenericValue testValue = null;            try {                testValue = delegator.findByPrimaryKey("WorkflowParticipant", UtilMisc.toMap("participantId", participantId));            } catch (GenericEntityException e) {                Debug.logWarning(e, module);            }            if (testValue == null) {                GenericValue participantValue = delegator.makeValue("WorkflowParticipant", null);                values.add(participantValue);                participantValue.set("packageId", packageId);                participantValue.set("packageVersion", packageVersion);                participantValue.set("processId", processId);                participantValue.set("processVersion", processVersion);                participantValue.set("participantId", participantId);                participantValue.set("participantName", participantElement.getAttribute("Name"));                // ParticipantType                Element participantTypeElement = UtilXml.firstChildElement(participantElement, "ParticipantType");                if (participantTypeElement != null) {                    participantValue.set("participantTypeId", participantTypeElement.getAttribute("Type"));                }                // Description?                participantValue.set("description", UtilXml.childElementValue(participantElement, "Description"));                // ExtendedAttributes                participantValue.set("partyId", getExtendedAttributeValue(participantElement, "partyId", null), false);                participantValue.set("roleTypeId", getExtendedAttributeValue(participantElement, "roleTypeId", null), false);            }            // regardless of whether the participant was created, create a participant list entry            GenericValue participantListValue = delegator.makeValue("WorkflowParticipantList", null);            values.add(participantListValue);            participantListValue.set("participantListId", participantListId);            participantListValue.set("participantId", participantId);            participantListValue.set("participantIndex", new Long(index));            index++;        }    }    */    protected void readApplications(List applications, String packageId, String packageVersion, String processId,            String processVersion) throws DefinitionParserException {        if (applications == null || applications.size() == 0)            return;        Iterator applicationsIter = applications.iterator();        while (applicationsIter.hasNext()) {            Element applicationElement = (Element) applicationsIter.next();            GenericValue applicationValue = delegator.makeValue("WorkflowApplication", null);            values.add(applicationValue);            String applicationId = applicationElement.getAttribute("Id");            applicationValue.set("packageId", packageId);            applicationValue.set("packageVersion", packageVersion);            applicationValue.set("processId", processId);            applicationValue.set("processVersion", processVersion);            applicationValue.set("applicationId", applicationId);            applicationValue.set("applicationName", applicationElement.getAttribute("Name"));            // Description?            applicationValue.set("description", UtilXml.childElementValue(applicationElement, "Description"));            // FormalParameters?            Element formalParametersElement = UtilXml.firstChildElement(applicationElement, "FormalParameters");            List formalParameters = UtilXml.childElementList(formalParametersElement, "FormalParameter");            readFormalParameters(formalParameters, packageId, packageVersion, processId, processVersion, applicationId);        }    }    protected void readDataFields(List dataFields, String packageId, String packageVersion, String processId,            String processVersion) throws DefinitionParserException {        if (dataFields == null || dataFields.size() == 0)            return;        Iterator dataFieldsIter = dataFields.iterator();        while (dataFieldsIter.hasNext()) {            Element dataFieldElement = (Element) dataFieldsIter.next();            GenericValue dataFieldValue = delegator.makeValue("WorkflowDataField", null);            values.add(dataFieldValue);            String dataFieldId = dataFieldElement.getAttribute("Id");            String dataFieldName = dataFieldElement.getAttribute("Name");            if (dataFieldName == null || dataFieldName.length() == 0)                dataFieldName = dataFieldId;            dataFieldValue.set("packageId", packageId);            dataFieldValue.set("packageVersion", packageVersion);            dataFieldValue.set("processId", processId);            dataFieldValue.set("processVersion", processVersion);            dataFieldValue.set("dataFieldId", dataFieldId);            dataFieldValue.set("dataFieldName", dataFieldName);            // IsArray attr            dataFieldValue.set("isArray", ("TRUE".equals(dataFieldElement.getAttribute("IsArray")) ? "Y" : "N"));            // DataType            Element dataTypeElement = UtilXml.firstChildElement(dataFieldElement, "DataType");            if (dataTypeElement != null) {                // (%Type;)                readType(dataTypeElement, dataFieldValue);            }            // InitialValue?            dataFieldValue.set("initialValue", UtilXml.childElementValue(dataFieldElement, "InitialValue"));            // Length?            String lengthStr = UtilXml.childElementValue(dataFieldElement, "Length");            if (lengthStr != null && lengthStr.length() > 0) {                try {                    dataFieldValue.set("lengthBytes", Long.valueOf(lengthStr));                } catch (NumberFormatException e) {                    throw new DefinitionParserException("Invalid whole number format in DataField->Length: " + lengthStr, e);                }            }            // Description?            dataFieldValue.set("description", UtilXml.childElementValue(dataFieldElement, "Description"));        }    }    protected void readFormalParameters(List formalParameters, String packageId, String packageVersion,        String processId, String processVersion, String applicationId) throws DefinitionParserException {        if (formalParameters == null || formalParameters.size() == 0)            return;        Iterator formalParametersIter = formalParameters.iterator();        long index = 1;        while (formalParametersIter.hasNext()) {            Element formalParameterElement = (Element) formalParametersIter.next();            GenericValue formalParameterValue = delegator.makeValue("WorkflowFormalParam", null);            values.add(formalParameterValue);            String formalParamId = formalParameterElement.getAttribute("Id");            formalParameterValue.set("packageId", packageId);            formalParameterValue.set("packageVersion", packageVersion);            formalParameterValue.set("processId", processId);            formalParameterValue.set("processVersion", processVersion);            formalParameterValue.set("applicationId", applicationId);            formalParameterValue.set("formalParamId", formalParamId);            formalParameterValue.set("modeEnumId", "WPM_" + formalParameterElement.getAttribute("Mode"));            String indexStr = formalParameterElement.getAttribute("Index");            if (indexStr != null && indexStr.length() > 0) {                try {                    formalParameterValue.set("indexNumber", Long.valueOf(indexStr));                } catch (NumberFormatException e) {                    throw new DefinitionParserException("Invalid decimal number format in FormalParameter->Index: " + indexStr, e);                }            } else                formalParameterValue.set("indexNumber", new Long(index));            index++;            // DataType            Element dataTypeElement = UtilXml.firstChildElement(formalParameterElement, "DataType");            if (dataTypeElement != null) {                // (%Type;)                readType(dataTypeElement, formalParameterValue);            }            // Description?            formalParameterValue.set("description", UtilXml.childElementValue(formalParameterElement, "Description"));        }    }    /** Reads information about "Type" entity member sub-elements; the value     * object passed must have two fields to contain Type information:     * <code>dataTypeEnumId</code> and <code>complexTypeInfoId</code>.     */    protected void readType(Element element, GenericValue value) {        // (%Type;) - (RecordType | UnionType | EnumerationType | ArrayType | ListType | BasicType | PlainType | DeclaredType)        Element typeElement = null;        if ((typeElement = UtilXml.firstChildElement(element, "RecordType")) != null) {// TODO: write code for complex type        } else if ((typeElement = UtilXml.firstChildElement(element, "UnionType")) != null) {// TODO: write code for complex type        } else if ((typeElement = UtilXml.firstChildElement(element, "EnumerationType")) != null) {// TODO: write code for complex type        } else if ((typeElement = UtilXml.firstChildElement(element, "ArrayType")) != null) {// TODO: write code for complex type        } else if ((typeElement = UtilXml.firstChildElement(element, "ListType")) != null) {// TODO: write code for complex type        } else if ((typeElement = UtilXml.firstChildElement(element, "BasicType")) != null) {            value.set("dataTypeEnumId", "WDT_" + typeElement.getAttribute("Type"));        } else if ((typeElement = UtilXml.firstChildElement(element, "PlainType")) != null) {            value.set("dataTypeEnumId", "WDT_" + typeElement.getAttribute("Type"));        } else if ((typeElement = UtilXml.firstChildElement(element, "DeclaredType")) != null) {            // For DeclaredTypes complexTypeInfoId will actually be the type id            value.set("dataTypeEnumId", "WDT_DECLARED");            value.set("complexTypeInfoId", typeElement.getAttribute("Id"));        }        /*         <entity entity-name="WorkflowComplexTypeInfo"         <field name="complexTypeInfoId" type="id-ne"></field>         <field name="memberParentInfoId" type="id"></field>         <field name="dataTypeEnumId" type="id"></field>         <field name="subTypeEnumId" type="id"></field>         <field name="arrayLowerIndex" type="numeric"></field>         <field name="arrayUpperIndex" type="numeric"></field>         */    }    protected String getExtendedAttributeValue(Element element, String name, String defaultValue) {        if (element == null || name == null)            return defaultValue;        Element extendedAttributesElement = UtilXml.firstChildElement(element, "ExtendedAttributes");        if (extendedAttributesElement == null)            return defaultValue;        List extendedAttributes = UtilXml.childElementList(extendedAttributesElement, "ExtendedAttribute");        if (extendedAttributes == null || extendedAttributes.size() == 0)            return defaultValue;        Iterator iter = extendedAttributes.iterator();        while (iter.hasNext()) {            Element extendedAttribute = (Element) iter.next();            String elementName = extendedAttribute.getAttribute("Name");            if (name.equals(elementName)) {                return extendedAttribute.getAttribute("Value");            }        }        return defaultValue;    }        // ---------------------------------------------------------    // RUNTIME, TEST, AND SAMPLE METHODS    // ---------------------------------------------------------    public static void main(String[] args) throws Exception {        String sampleFileName = "../../docs/examples/sample.xpdl";        if (args.length > 0)            sampleFileName = args[0];        List values = readXpdl(UtilURL.fromFilename(sampleFileName), GenericDelegator.getGenericDelegator("default"));        Iterator viter = values.iterator();        while (viter.hasNext())            System.out.println(viter.next().toString());    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -