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

📄 xpdlreader.java

📁 Sequoia ERP是一个真正的企业级开源ERP解决方案。它提供的模块包括:电子商务应用(e-commerce), POS系统(point of sales),知识管理,存货与仓库管理
💻 JAVA
📖 第 1 页 / 共 5 页
字号:
        workflowProcessValue.set("defaultStartActivityId", getExtendedAttributeValue(workflowProcessElement, "defaultStartActivityId", workflowProcessValue.getString("defaultStartActivityId")));                workflowProcessValue.set("sourceReferenceField", getExtendedAttributeValue(workflowProcessElement, "sourceReferenceField", "sourceReferenceId"));                                   }    // ----------------------------------------------------------------    // Activity    // ----------------------------------------------------------------    protected void readActivities(List activities, String packageId, String packageVersion, String processId,        String processVersion, GenericValue processValue) throws DefinitionParserException {        if (activities == null || activities.size() == 0)            return;        Iterator activitiesIter = activities.iterator();        // do the first one differently because it will be the defaultStart activity        if (activitiesIter.hasNext()) {            Element activityElement = (Element) activitiesIter.next();            String activityId = activityElement.getAttribute("Id");            processValue.set("defaultStartActivityId", activityId);            readActivity(activityElement, packageId, packageVersion, processId, processVersion);        }        while (activitiesIter.hasNext()) {            Element activityElement = (Element) activitiesIter.next();            readActivity(activityElement, packageId, packageVersion, processId, processVersion);        }    }    protected void readActivity(Element activityElement, String packageId, String packageVersion, String processId,        String processVersion) throws DefinitionParserException {        if (activityElement == null)            return;        GenericValue activityValue = delegator.makeValue("WorkflowActivity", null);        values.add(activityValue);        String activityId = activityElement.getAttribute("Id");        activityValue.set("packageId", packageId);        activityValue.set("packageVersion", packageVersion);        activityValue.set("processId", processId);        activityValue.set("processVersion", processVersion);        activityValue.set("activityId", activityId);        activityValue.set("objectName", activityElement.getAttribute("Name"));        activityValue.set("description", UtilXml.childElementValue(activityElement, "Description"));        String limitStr = UtilXml.childElementValue(activityElement, "Limit");        if (limitStr != null) {            try {                activityValue.set("timeLimit", Double.valueOf(limitStr));            } catch (NumberFormatException e) {                throw new DefinitionParserException("Invalid decimal number format in Activity->Limit: " + limitStr, e);            }        }        // (Route | Implementation)        Element routeElement = UtilXml.firstChildElement(activityElement, "Route");        Element implementationElement = UtilXml.firstChildElement(activityElement, "Implementation");        if (routeElement != null) {            activityValue.set("activityTypeEnumId", "WAT_ROUTE");        } else if (implementationElement != null) {            Element noElement = UtilXml.firstChildElement(implementationElement, "No");            Element subFlowElement = UtilXml.firstChildElement(implementationElement, "SubFlow");            Element loopElement = UtilXml.firstChildElement(implementationElement, "Loop");            List tools = UtilXml.childElementList(implementationElement, "Tool");            if (noElement != null) {                activityValue.set("activityTypeEnumId", "WAT_NO");            } else if (subFlowElement != null) {                activityValue.set("activityTypeEnumId", "WAT_SUBFLOW");                readSubFlow(subFlowElement, packageId, packageVersion, processId, processVersion, activityId);            } else if (loopElement != null) {                activityValue.set("activityTypeEnumId", "WAT_LOOP");                readLoop(loopElement, packageId, packageVersion, processId, processVersion, activityId);            } else if (tools != null && tools.size() > 0) {                activityValue.set("activityTypeEnumId", "WAT_TOOL");                readTools(tools, packageId, packageVersion, processId, processVersion, activityId);            } else {                throw new DefinitionParserException(                        "No, SubFlow, Loop or one or more Tool elements must exist under the Implementation element of Activity with ID " + activityId +                        " in Process with ID " + processId);            }        } else {            throw new DefinitionParserException("Route or Implementation must exist for Activity with ID " + activityId + " in Process with ID " + processId);        }        // Performer?        activityValue.set("performerParticipantId", UtilXml.childElementValue(activityElement, "Performer"));        // StartMode?        Element startModeElement = UtilXml.firstChildElement(activityElement, "StartMode");        if (startModeElement != null) {            if (UtilXml.firstChildElement(startModeElement, "Automatic") != null)                activityValue.set("startModeEnumId", "WAM_AUTOMATIC");            else if (UtilXml.firstChildElement(startModeElement, "Manual") != null)                activityValue.set("startModeEnumId", "WAM_MANUAL");            else                throw new DefinitionParserException("Could not find Mode under StartMode");        }        // FinishMode?        Element finishModeElement = UtilXml.firstChildElement(activityElement, "FinishMode");        if (finishModeElement != null) {            if (UtilXml.firstChildElement(finishModeElement, "Automatic") != null)                activityValue.set("finishModeEnumId", "WAM_AUTOMATIC");            else if (UtilXml.firstChildElement(finishModeElement, "Manual") != null)                activityValue.set("finishModeEnumId", "WAM_MANUAL");            else                throw new DefinitionParserException("Could not find Mode under FinishMode");        }        // Priority?        String priorityStr = UtilXml.childElementValue(activityElement, "Priority");        if (priorityStr != null) {            try {                activityValue.set("objectPriority", Long.valueOf(priorityStr));            } catch (NumberFormatException e) {                throw new DefinitionParserException("Invalid whole number format in Activity->Priority: " + priorityStr, e);            }        }        // SimulationInformation?        Element simulationInformationElement = UtilXml.firstChildElement(activityElement, "SimulationInformation");        if (simulationInformationElement != null) {            if (simulationInformationElement.getAttribute("Instantiation") != null)                activityValue.set("instantiationLimitEnumId", "WFI_" + simulationInformationElement.getAttribute("Instantiation"));            String costStr = UtilXml.childElementValue(simulationInformationElement, "Cost");            if (costStr != null) {                try {                    activityValue.set("cost", Double.valueOf(costStr));                } catch (NumberFormatException e) {                    throw new DefinitionParserException("Invalid decimal number format in Activity->SimulationInformation->Cost: " + costStr, e);                }            }            // TimeEstimation            Element timeEstimationElement = UtilXml.firstChildElement(simulationInformationElement, "TimeEstimation");            if (timeEstimationElement != null) {                String waitingTimeStr = UtilXml.childElementValue(timeEstimationElement, "WaitingTime");                if (waitingTimeStr != null) {                    try {                        activityValue.set("waitingTime", Double.valueOf(waitingTimeStr));                    } catch (NumberFormatException e) {                        throw new DefinitionParserException("Invalid decimal number format in Activity->SimulationInformation->TimeEstimation->WaitingTime: " + waitingTimeStr, e);                    }                }                String workingTimeStr = UtilXml.childElementValue(timeEstimationElement, "WorkingTime");                if (workingTimeStr != null) {                    try {                        activityValue.set("waitingTime", Double.valueOf(workingTimeStr));                    } catch (NumberFormatException e) {                        throw new DefinitionParserException("Invalid decimal number format in Activity->SimulationInformation->TimeEstimation->WorkingTime: " + workingTimeStr, e);                    }                }                String durationStr = UtilXml.childElementValue(timeEstimationElement, "Duration");                if (durationStr != null) {                    try {                        activityValue.set("duration", Double.valueOf(durationStr));                    } catch (NumberFormatException e) {                        throw new DefinitionParserException("Invalid decimal number format in Activity->SimulationInformation->TimeEstimation->Duration: " + durationStr, e);                    }                }            }        }        activityValue.set("iconUrl", UtilXml.childElementValue(activityElement, "Icon"));        activityValue.set("documentationUrl", UtilXml.childElementValue(activityElement, "Documentation"));        // TransitionRestrictions?        Element transitionRestrictionsElement = UtilXml.firstChildElement(activityElement, "TransitionRestrictions");        List transitionRestrictions = UtilXml.childElementList(transitionRestrictionsElement, "TransitionRestriction");        readTransitionRestrictions(transitionRestrictions, activityValue);        // ExtendedAttributes?        activityValue.set("acceptAllAssignments", getExtendedAttributeValue(activityElement, "acceptAllAssignments", "N"));        activityValue.set("completeAllAssignments", getExtendedAttributeValue(activityElement, "completeAllAssignments", "N"));        activityValue.set("limitService", getExtendedAttributeValue(activityElement, "limitService", null), false);        activityValue.set("limitAfterStart", getExtendedAttributeValue(activityElement, "limitAfterStart", "Y"));        activityValue.set("restartOnDelegate", getExtendedAttributeValue(activityElement, "restartOnDelegate", "N"));        activityValue.set("delegateAfterStart", getExtendedAttributeValue(activityElement, "delegateAfterStart", "Y"));        activityValue.set("inheritPriority", getExtendedAttributeValue(activityElement, "inheritPriority", "N"));        activityValue.set("canStart", getExtendedAttributeValue(activityElement, "canStart", "Y"));    }    protected void readSubFlow(Element subFlowElement, String packageId, String packageVersion, String processId,        String processVersion, String activityId) throws DefinitionParserException {        if (subFlowElement == null)            return;        GenericValue subFlowValue = delegator.makeValue("WorkflowActivitySubFlow", null);        values.add(subFlowValue);        subFlowValue.set("packageId", packageId);        subFlowValue.set("packageVersion", packageVersion);        subFlowValue.set("processId", processId);        subFlowValue.set("processVersion", processVersion);        subFlowValue.set("activityId", activityId);        subFlowValue.set("subFlowProcessId", subFlowElement.getAttribute("Id"));        if (subFlowElement.getAttribute("Execution") != null)            subFlowValue.set("executionEnumId", "WSE_" + subFlowElement.getAttribute("Execution"));        else            subFlowValue.set("executionEnumId", "WSE_ASYNCHR");        // ActualParameters?        Element actualParametersElement = UtilXml.firstChildElement(subFlowElement, "ActualParameters");        List actualParameters = UtilXml.childElementList(actualParametersElement, "ActualParameter");        subFlowValue.set("actualParameters", readActualParameters(actualParameters), false);    }    protected void readLoop(Element loopElement, String packageId, String packageVersion, String processId,        String processVersion, String activityId) throws DefinitionParserException {        if (loopElement == null)            return;        GenericValue loopValue = delegator.makeValue("WorkflowActivityLoop", null);        values.add(loopValue);        loopValue.set("packageId", packageId);        loopValue.set("packageVersion", packageVersion);        loopValue.set("processId", processId);        loopValue.set("processVersion", processVersion);        loopValue.set("activityId", activityId);        if (loopElement.getAttribute("Kind") != null)            loopValue.set("loopKindEnumId", "WLK_" + loopElement.getAttribute("Kind"));        else            loopValue.set("loopKindEnumId", "WLK_WHILE");        // Condition?        loopValue.set("conditionExpr", UtilXml.childElementValue(loopElement, "Condition"));    }    protected void readTools(List tools, String packageId, String packageVersion, String processId,        String processVersion, String activityId) throws DefinitionParserException {        if (tools == null || tools.size() == 0)            return;        Iterator toolsIter = tools.iterator();        while (toolsIter.hasNext()) {            Element toolElement = (Element) toolsIter.next();            readTool(toolElement, packageId, packageVersion, processId, processVersion, activityId);        }    }    protected void readTool(Element toolElement, String packageId, String packageVersion, String processId,        String processVersion, String activityId) throws DefinitionParserException {        if (toolElement == null)

⌨️ 快捷键说明

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