亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? abstractworkflow.java

?? Java編譯osworkflow工作流系統的安裝和源代碼
?? JAVA
?? 第 1 頁 / 共 4 頁
字號:
        List actions = s.getActions();        if ((actions == null) || (actions.size() == 0)) {            return l;        }        for (Iterator iterator2 = actions.iterator(); iterator2.hasNext();) {            ActionDescriptor action = (ActionDescriptor) iterator2.next();            transientVars.put("actionId", new Integer(action.getId()));            //check auto            if (action.getAutoExecute()) {                if (isActionAvailable(action, transientVars, ps, s.getId())) {                    l.add(new Integer(action.getId()));                }            }        }        return l;    }    protected WorkflowStore getPersistence() throws StoreException {        return getConfiguration().getWorkflowStore();    }    protected void checkImplicitFinish(ActionDescriptor action, long id) throws WorkflowException {        WorkflowStore store = getPersistence();        WorkflowEntry entry = store.findEntry(id);        WorkflowDescriptor wf = getConfiguration().getWorkflow(entry.getWorkflowName());        Collection currentSteps = store.findCurrentSteps(id);        boolean isCompleted = true;        for (Iterator iterator = currentSteps.iterator(); iterator.hasNext();) {            Step step = (Step) iterator.next();            StepDescriptor stepDes = wf.getStep(step.getStepId());            // if at least on current step have an available action            if (stepDes.getActions().size() > 0) {                isCompleted = false;            }        }        if (isCompleted) {            completeEntry(action, id, currentSteps, WorkflowEntry.COMPLETED);        }    }    /**     * Mark the specified entry as completed, and move all current steps to history.     */    protected void completeEntry(ActionDescriptor action, long id, Collection currentSteps, int state) throws StoreException {        getPersistence().setEntryState(id, state);        Iterator i = new ArrayList(currentSteps).iterator();        while (i.hasNext()) {            Step step = (Step) i.next();            String oldStatus = (action != null) ? action.getUnconditionalResult().getOldStatus() : "Finished";            getPersistence().markFinished(step, (action != null) ? action.getId() : (-1), new Date(), oldStatus, context.getCaller());            getPersistence().moveToHistory(step);        }    }    /**     * Executes a function.     *     * @param function the function to execute     * @param transientVars the transientVars given by the end-user     * @param ps the persistence variables     */    protected void executeFunction(FunctionDescriptor function, Map transientVars, PropertySet ps) throws WorkflowException {        if (function != null) {            String type = function.getType();            Map args = new HashMap(function.getArgs());            for (Iterator iterator = args.entrySet().iterator();                    iterator.hasNext();) {                Map.Entry mapEntry = (Map.Entry) iterator.next();                mapEntry.setValue(getConfiguration().getVariableResolver().translateVariables((String) mapEntry.getValue(), transientVars, ps));            }            FunctionProvider provider = getResolver().getFunction(type, args);            if (provider == null) {                String message = "Could not load FunctionProvider class";                context.setRollbackOnly();                throw new WorkflowException(message);            }            try {                provider.execute(transientVars, args, ps);            } catch (WorkflowException e) {                context.setRollbackOnly();                throw e;            }        }    }    protected boolean passesCondition(ConditionDescriptor conditionDesc, Map transientVars, PropertySet ps, int currentStepId) throws WorkflowException {        String type = conditionDesc.getType();        Map args = new HashMap(conditionDesc.getArgs());        for (Iterator iterator = args.entrySet().iterator();                iterator.hasNext();) {            Map.Entry mapEntry = (Map.Entry) iterator.next();            mapEntry.setValue(getConfiguration().getVariableResolver().translateVariables((String) mapEntry.getValue(), transientVars, ps));        }        if (currentStepId != -1) {            Object stepId = args.get("stepId");            if ((stepId != null) && stepId.equals("-1")) {                args.put("stepId", String.valueOf(currentStepId));            }        }        Condition condition = getResolver().getCondition(type, args);        if (condition == null) {            context.setRollbackOnly();            throw new WorkflowException("Could not load condition");        }        try {            boolean passed = condition.passesCondition(transientVars, args, ps);            if (conditionDesc.isNegate()) {                passed = !passed;            }            return passed;        } catch (Exception e) {            context.setRollbackOnly();            if (e instanceof WorkflowException) {                throw (WorkflowException) e;            }            throw new WorkflowException("Unknown exception encountered when checking condition " + condition, e);        }    }    protected boolean passesConditions(String conditionType, List conditions, Map transientVars, PropertySet ps, int currentStepId) throws WorkflowException {        if ((conditions == null) || (conditions.size() == 0)) {            return true;        }        boolean and = "AND".equals(conditionType);        boolean or = !and;        for (Iterator iterator = conditions.iterator(); iterator.hasNext();) {            AbstractDescriptor descriptor = (AbstractDescriptor) iterator.next();            boolean result;            if (descriptor instanceof ConditionsDescriptor) {                ConditionsDescriptor conditionsDescriptor = (ConditionsDescriptor) descriptor;                result = passesConditions(conditionsDescriptor.getType(), conditionsDescriptor.getConditions(), transientVars, ps, currentStepId);            } else {                result = passesCondition((ConditionDescriptor) descriptor, transientVars, ps, currentStepId);            }            if (and && !result) {                return false;            } else if (or && result) {                return true;            }        }        if (and) {            return true;        } else if (or) {            return false;        } else {            return false;        }    }    protected boolean passesConditions(ConditionsDescriptor descriptor, Map transientVars, PropertySet ps, int currentStepId) throws WorkflowException {        if (descriptor == null) {            return true;        }        return passesConditions(descriptor.getType(), descriptor.getConditions(), transientVars, ps, currentStepId);    }    protected void populateTransientMap(WorkflowEntry entry, Map transientVars, List registers, Integer actionId, Collection currentSteps, PropertySet ps) throws WorkflowException {        transientVars.put("context", context);        transientVars.put("entry", entry);        transientVars.put("store", getPersistence());        transientVars.put("configuration", getConfiguration());        transientVars.put("descriptor", getConfiguration().getWorkflow(entry.getWorkflowName()));        if (actionId != null) {            transientVars.put("actionId", actionId);        }        transientVars.put("currentSteps", new ArrayList(currentSteps));        // now talk to the registers for any extra objects needed in scope        for (Iterator iterator = registers.iterator(); iterator.hasNext();) {            RegisterDescriptor register = (RegisterDescriptor) iterator.next();            Map args = register.getArgs();            String type = register.getType();            Register r = getResolver().getRegister(type, args);            if (r == null) {                String message = "Could not load register class";                context.setRollbackOnly();                throw new WorkflowException(message);            }            try {                transientVars.put(register.getVariableName(), r.registerVariable(context, entry, args, ps));            } catch (Exception e) {                context.setRollbackOnly();                if (e instanceof WorkflowException) {                    throw (WorkflowException) e;                }                throw new WorkflowException("An unknown exception occured while registering variable using register " + r, e);            }        }    }    /**     * @return true if the instance has been explicitly completed is this transition, false otherwise     * @throws WorkflowException     */    protected boolean transitionWorkflow(WorkflowEntry entry, List currentSteps, WorkflowStore store, WorkflowDescriptor wf, ActionDescriptor action, Map transientVars, Map inputs, PropertySet ps) throws WorkflowException {        Map cache = (Map) stateCache.get();        if (cache != null) {            cache.clear();        } else {            stateCache.set(new HashMap());        }        Step step = getCurrentStep(wf, action.getId(), currentSteps, transientVars, ps);        if (action.getValidators().size() > 0) {            verifyInputs(entry, action.getValidators(), Collections.unmodifiableMap(transientVars), ps);        }        //we're leaving the current step, so let's execute its post-functions        //check if we actually have a current step        if (step != null) {            List stepPostFunctions = wf.getStep(step.getStepId()).getPostFunctions();            for (Iterator iterator = stepPostFunctions.iterator();                    iterator.hasNext();) {                FunctionDescriptor function = (FunctionDescriptor) iterator.next();                executeFunction(function, transientVars, ps);            }        }        // preFunctions        List preFunctions = action.getPreFunctions();        for (Iterator iterator = preFunctions.iterator(); iterator.hasNext();) {            FunctionDescriptor function = (FunctionDescriptor) iterator.next();            executeFunction(function, transientVars, ps);        }        // check each conditional result        List conditionalResults = action.getConditionalResults();        List extraPreFunctions = null;        List extraPostFunctions = null;        ResultDescriptor[] theResults = new ResultDescriptor[1];        for (Iterator iterator = conditionalResults.iterator();                iterator.hasNext();) {            ConditionalResultDescriptor conditionalResult = (ConditionalResultDescriptor) iterator.next();            if (passesConditions(null, conditionalResult.getConditions(), Collections.unmodifiableMap(transientVars), ps, (step != null) ? step.getStepId() : (-1))) {                //if (evaluateExpression(conditionalResult.getCondition(), entry, wf.getRegisters(), null, transientVars)) {                theResults[0] = conditionalResult;                if (conditionalResult.getValidators().size() > 0) {                    verifyInputs(entry, conditionalResult.getValidators(), Collections.unmodifiableMap(transientVars), ps);                }                extraPreFunctions = conditionalResult.getPreFunctions();                extraPostFunctions = conditionalResult.getPostFunctions();                break;            }        }        // use unconditional-result if a condition hasn't been met        if (theResults[0] == null) {            theResults[0] = action.getUnconditionalResult();            verifyInputs(entry, theResults[0].getValidators(), Collections.unmodifiableMap(transientVars), ps);            extraPreFunctions = theResults[0].getPreFunctions();            extraPostFunctions = theResults[0].getPostFunctions();        }        if (log.isDebugEnabled()) {            log.debug("theResult=" + theResults[0].getStep() + ' ' + theResults[0].getStatus());        }        if ((extraPreFunctions != null) && (extraPreFunctions.size() > 0)) {            // run any extra pre-functions that haven't been run already            for (Iterator iterator = extraPreFunctions.iterator();                    iterator.hasNext();) {                FunctionDescriptor function = (FunctionDescriptor) iterator.next();                executeFunction(function, transientVars, ps);            }        }        // go to next step        if (theResults[0].getSplit() != 0) {            // the result is a split request, handle it correctly            SplitDescriptor splitDesc = wf.getSplit(theResults[0].getSplit());            Collection results = splitDesc.getResults();            List splitPreFunctions = new ArrayList();            List splitPostFunctions = new ArrayList();            //check all results in the split and verify the input against any validators specified            //also build up all the pre and post functions that should be called.            for (Iterator iterator = results.iterator(); iterator.hasNext();) {                ResultDescriptor resultDescriptor = (ResultDescriptor) iterator.next();                if (resultDescriptor.getValidators().size() > 0) {                    verifyInputs(entry, resultDescriptor.getValidators(), Collections.unmodifiableMap(transientVars), ps);                }                splitPreFunctions.addAll(resultDescriptor.getPreFunctions());                splitPostFunctions.addAll(resultDescriptor.getPostFunctions());            }            // now execute the pre-functions            for (Iterator iterator = splitPreFunctions.iterator();                    iterator.hasNext();) {                FunctionDescriptor function = (FunctionDescriptor) iterator.next();                executeFunction(function, transientVars, ps);            }            if (!action.isFinish()) {                // now make these steps...                boolean moveFirst = true;                theResults = new ResultDescriptor[results.size()];                results.toArray(theResults);                for (Iterator iterator = results.iterator();                        iterator.hasNext();) {                    ResultDescriptor resultDescriptor = (ResultDescriptor) iterator.next();                    Step moveToHistoryStep = null;                    if (moveFirst) {                        moveToHistoryStep = step;                    }                    long[] previousIds = null;                    if (step != null) {                        previousIds = new long[] {step.getId()};                    }                    createNewCurrentStep(resultDescriptor, entry, store, action.getId(), moveToHistoryStep, previousIds, transientVars, ps);                    moveFirst = false;                }            }            // now execute the post-functions            for (Iterator iterator = splitPostFunctions.iterator();                    iterator.hasNext();) {                FunctionDescriptor function = (FunctionDescriptor) iterator.next();                executeFunction(function, transientVars, ps);            }        } else if (theResults[0].getJoin() != 0) {            // this is a join, finish this step...            JoinDescriptor joinDesc = wf.getJoin(theResults[0].getJoin());            step = store.markFinished(step, action.getId(), new Date(), theResults[0].getOldStatus(), context.getCaller());            store.moveToHistory(step);            // ... now check to see if the expression evaluates

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
老色鬼精品视频在线观看播放| 亚洲一二三区视频在线观看| 亚洲国产精品久久人人爱| 久久精品久久精品| 欧美日韩黄色影视| 中文字幕日本不卡| 狠狠色丁香久久婷婷综| 欧美日韩国产中文| 亚洲人成人一区二区在线观看 | 精品国产乱码久久久久久久| 亚洲精品久久久久久国产精华液| 国产一级精品在线| 欧美一级视频精品观看| 亚洲主播在线观看| 99r精品视频| 国产欧美一区二区三区在线老狼| 日韩av中文字幕一区二区三区| 91色porny蝌蚪| 国产精品久久免费看| 国产精品亚洲午夜一区二区三区| 日韩一级片在线观看| 亚洲国产欧美一区二区三区丁香婷| 成人免费高清视频| 久久精品一区蜜桃臀影院| 日本伊人精品一区二区三区观看方式| 色8久久精品久久久久久蜜| 国产精品色噜噜| 国产精品一卡二| 亚洲一区二区影院| 色综合久久天天综合网| 亚洲三级小视频| av激情成人网| 亚洲人妖av一区二区| www.亚洲激情.com| 中文字幕制服丝袜一区二区三区| 成人h版在线观看| 国产精品嫩草久久久久| 国产成人在线免费| 国产日韩精品视频一区| 国产酒店精品激情| 国产拍揄自揄精品视频麻豆| 国产成人午夜视频| 国产情人综合久久777777| 国产激情一区二区三区桃花岛亚洲| 精品对白一区国产伦| 国产精品自拍毛片| 日本一区二区成人在线| 不卡视频免费播放| 亚洲男同性视频| 欧美亚洲国产怡红院影院| 五月天激情综合| 日韩欧美一二三四区| 国产一区二区精品在线观看| 久久九九久精品国产免费直播| 国产高清在线精品| 亚洲视频一二三| 日本韩国精品在线| 亚洲h在线观看| 日韩欧美一区中文| 国产精品亚洲人在线观看| 国产精品美日韩| 色爱区综合激月婷婷| 天天影视涩香欲综合网 | 国产福利一区在线| 中文字幕在线不卡| 在线精品视频免费播放| 日韩精品视频网站| 久久久久国产精品人| 99国产一区二区三精品乱码| 夜夜爽夜夜爽精品视频| 91精品久久久久久久99蜜桃| 经典一区二区三区| 国产精品久久久久久久蜜臀| 欧美综合在线视频| 免费观看在线色综合| 国产无一区二区| 在线免费av一区| 另类调教123区| 欧美激情综合五月色丁香小说| 色久优优欧美色久优优| 婷婷成人激情在线网| 久久九九久精品国产免费直播| 一本久道中文字幕精品亚洲嫩| 天天综合天天做天天综合| 久久蜜桃av一区精品变态类天堂| 99精品视频在线播放观看| 日日骚欧美日韩| 久久久99久久| 欧美性大战xxxxx久久久| 久久97超碰国产精品超碰| 国产精品美女一区二区三区| 欧美日韩一区二区三区高清| 韩国精品主播一区二区在线观看 | 青青国产91久久久久久| 国产精品美女久久久久久久久久久| 在线观看视频一区二区| 国产一区二区伦理| 亚洲第一在线综合网站| 欧美国产精品专区| 欧美日韩电影一区| aaa亚洲精品| 久久99国产精品久久99| 一区二区成人在线视频| 久久精品夜色噜噜亚洲a∨| 欧美日韩的一区二区| 成人免费黄色大片| 久久99精品视频| 亚洲成a人片在线观看中文| 国产精品视频观看| 欧美一区欧美二区| 在线观看视频一区二区 | 首页国产丝袜综合| 亚洲视频一区在线观看| 久久久久国产精品免费免费搜索| 欧美日韩大陆一区二区| 91影视在线播放| 国产传媒一区在线| 麻豆一区二区在线| 亚洲电影中文字幕在线观看| 国产精品丝袜一区| 久久色在线视频| 日韩午夜在线观看视频| 欧洲精品在线观看| av综合在线播放| 国产精品香蕉一区二区三区| 免播放器亚洲一区| 亚洲成国产人片在线观看| 亚洲欧洲av色图| 欧美激情中文不卡| 2019国产精品| 欧美电影免费观看高清完整版| 欧美日韩极品在线观看一区| 91免费版pro下载短视频| 大桥未久av一区二区三区中文| 国内成人精品2018免费看| 日韩高清不卡一区| 日韩综合小视频| 亚洲第一久久影院| 一区二区三区在线观看视频| 国产精品精品国产色婷婷| 久久久www成人免费毛片麻豆| 日韩欧美一级在线播放| 日韩欧美一区在线| 欧美一区二区三区性视频| 欧美日本免费一区二区三区| 欧美日韩色综合| 欧美吞精做爰啪啪高潮| 在线一区二区三区四区| 色天使色偷偷av一区二区| 97se亚洲国产综合自在线| 成人免费视频视频| 99久久精品免费看| 99精品视频在线观看免费| 91丝袜国产在线播放| 色一情一乱一乱一91av| 日本精品视频一区二区三区| 色综合久久66| 欧美中文一区二区三区| 欧美午夜理伦三级在线观看| 欧美视频在线一区二区三区| 欧美日韩视频在线观看一区二区三区 | 亚洲另类在线视频| 亚洲黄色免费电影| 亚洲第一狼人社区| 日本成人在线电影网| 久久精品国产第一区二区三区| 久久9热精品视频| 国产精品伊人色| 成人网页在线观看| 99久久精品国产毛片| 在线观看中文字幕不卡| 欧美日韩在线播放一区| 7799精品视频| 精品国产三级a在线观看| 日本一区二区三区四区在线视频| 国产精品高清亚洲| 亚洲一区二区综合| 男人的天堂久久精品| 国产一区欧美日韩| 成人国产电影网| 在线观看免费一区| 欧美一区二区三区喷汁尤物| 精品国产免费视频| 国产精品电影院| 亚洲资源在线观看| 久久国产麻豆精品| 成人v精品蜜桃久久一区| 欧美亚洲一区二区在线| 日韩欧美一区二区在线视频| 国产婷婷色一区二区三区四区 | 亚洲男人天堂一区| 日韩专区在线视频| 国产成人8x视频一区二区| 99久久精品国产观看| 在线不卡a资源高清| 国产亚洲美州欧州综合国| 亚洲欧美日韩一区二区 | 亚洲午夜电影在线| 韩国女主播成人在线| 色婷婷亚洲精品|