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

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

?? ojbworkflowstore.java

?? Java編譯osworkflow工作流系統的安裝和源代碼
?? JAVA
字號:
/* * Copyright (c) 2002-2003 by OpenSymphony * All rights reserved. */package com.opensymphony.workflow.spi.ojb;import com.opensymphony.module.propertyset.PropertySet;import com.opensymphony.module.propertyset.PropertySetManager;import com.opensymphony.workflow.QueryNotSupportedException;import com.opensymphony.workflow.StoreException;import com.opensymphony.workflow.query.WorkflowExpressionQuery;import com.opensymphony.workflow.query.WorkflowQuery;import com.opensymphony.workflow.spi.Step;import com.opensymphony.workflow.spi.WorkflowEntry;import com.opensymphony.workflow.spi.WorkflowStore;import org.apache.commons.logging.Log;import org.apache.commons.logging.LogFactory;import org.apache.ojb.broker.PBFactoryException;import org.apache.ojb.broker.PersistenceBroker;import org.apache.ojb.broker.PersistenceBrokerFactory;import org.apache.ojb.broker.query.*;import java.math.BigDecimal;import java.util.*;/** * @author picard * Created on 9 sept. 2003 */public class OJBWorkflowStore implements WorkflowStore {    //~ Static fields/initializers /////////////////////////////////////////////    private static final Log log = LogFactory.getLog(OJBWorkflowStore.class);    //~ Constructors ///////////////////////////////////////////////////////////    public OJBWorkflowStore() {        super();    }    //~ Methods ////////////////////////////////////////////////////////////////    public void setEntryState(long entryId, int state) throws StoreException {        PersistenceBroker broker = null;        try {            broker = this.getBroker();            Criteria criteria = new Criteria();            criteria.addEqualTo("id", new Long(entryId));            Query query = new QueryByCriteria(OJBWorkflowEntry.class, criteria);            OJBWorkflowEntry entry = (OJBWorkflowEntry) broker.getObjectByQuery(query);            entry.setState(state);            broker.store(entry);        } catch (Throwable e) {            throw new StoreException("Error to retrieve entry", new Exception(e));        } finally {            if (broker != null) {                broker.close();            }        }    }    public PropertySet getPropertySet(long entryId) throws StoreException {        HashMap args = new HashMap();        args.put("globalKey", "osff_" + entryId);        return PropertySetManager.getInstance("ojb", args);    }    public Step createCurrentStep(long entryId, int stepId, String owner, Date startDate, Date dueDate, String status, long[] previousIds) throws StoreException {        PersistenceBroker broker = null;        OJBCurrentStep step = new OJBCurrentStep();        OJBWorkflowEntry entry;        try {            broker = this.getBroker();            Criteria criteria = new Criteria();            criteria.addEqualTo("id", new Long(entryId));            Query requete = new QueryByCriteria(OJBWorkflowEntry.class, criteria);            entry = (OJBWorkflowEntry) broker.getObjectByQuery(requete);            step.setEntry(entry);            step.setStepId(stepId);            step.setOwner(owner);            step.setStartDate(startDate);            step.setDueDate(dueDate);            step.setStatus(status);            List stepIdList = new ArrayList(previousIds.length);            for (int i = 0; i < previousIds.length; i++) {                long previousId = previousIds[i];                stepIdList.add(new Long(previousId));            }            if (!stepIdList.isEmpty()) {                criteria = new Criteria();                criteria.addIn("id", stepIdList);                requete = new QueryByCriteria(OJBCurrentStep.class, criteria);                Collection clPreviousStep = broker.getCollectionByQuery(requete);                step.setPreviousSteps(new ArrayList(clPreviousStep));            } else {                step.setPreviousSteps(Collections.EMPTY_LIST);            }            if (entry.getCurrentSteps() == null) {                ArrayList cSteps = new ArrayList(1);                cSteps.add(step);                entry.setCurrentSteps(cSteps);            } else {                entry.getCurrentSteps().add(step);            }            broker.store(entry);        } catch (Exception e) {            step = null;            throw new StoreException("Error creating new workflow entry", e);        } finally {            if (broker != null) {                broker.close();            }        }        return step;    }    public WorkflowEntry createEntry(String workflowName) throws StoreException {        PersistenceBroker broker = null;        OJBWorkflowEntry entry = new OJBWorkflowEntry();        entry.setState(WorkflowEntry.CREATED);        entry.setWorkflowName(workflowName);        try {            broker = this.getBroker();            broker.store(entry);        } catch (Exception e) {            throw new StoreException("Error creating new workflow entry", e);        } finally {            if (broker != null) {                broker.close();            }        }        return entry;    }    /* (non-Javadoc)     * @see com.opensymphony.workflow.spi.WorkflowStore#findCurrentSteps(long)     */    public List findCurrentSteps(long entryId) throws StoreException {        PersistenceBroker broker = null;        Collection clStep = Collections.EMPTY_LIST;        try {            broker = this.getBroker();            Criteria critere = new Criteria();            critere.addEqualTo("entry.id", new Long(entryId));            Query requete = new QueryByCriteria(OJBCurrentStep.class, critere);            clStep = broker.getCollectionByQuery(requete);        } catch (Exception e) {            throw new StoreException("Error to retrieve current steps", e);        } finally {            if (broker != null) {                broker.close();            }        }        return new ArrayList(clStep);    }    /* (non-Javadoc)     * @see com.opensymphony.workflow.spi.WorkflowStore#findEntry(long)     */    public WorkflowEntry findEntry(long entryId) throws StoreException {        PersistenceBroker broker = null;        WorkflowEntry entry = null;        try {            broker = this.getBroker();            Criteria criteria = new Criteria();            criteria.addEqualTo("id", new Long(entryId));            Query query = new QueryByCriteria(OJBWorkflowEntry.class, criteria);            entry = (OJBWorkflowEntry) broker.getObjectByQuery(query);        } catch (Throwable e) {            throw new StoreException("Error to retrieve entry", new Exception(e));        } finally {            if (broker != null) {                broker.close();            }        }        return entry;    }    public List findHistorySteps(long entryId) throws StoreException {        PersistenceBroker broker = null;        Collection clStep = Collections.EMPTY_LIST;        try {            broker = this.getBroker();            Criteria critere = new Criteria();            critere.addEqualTo("entry.id", new Long(entryId));            Query requete = new QueryByCriteria(OJBHistoryStep.class, critere);            clStep = broker.getCollectionByQuery(requete);        } catch (Exception e) {            throw new StoreException("Error to retrieve history steps", e);        } finally {            if (broker != null) {                broker.close();            }        }        return new ArrayList(clStep);    }    public void init(Map props) throws StoreException {    }    public Step markFinished(Step step, int actionId, Date finishDate, String status, String caller) throws StoreException {        PersistenceBroker broker = null;        OJBCurrentStep currentStep = (OJBCurrentStep) step;        try {            broker = this.getBroker();            currentStep.setActionId(actionId);            currentStep.setFinishDate(finishDate);            currentStep.setStatus(status);            currentStep.setCaller(caller);            broker.store(currentStep);        } catch (Exception e) {            log.error("An exception occured", e);            throw new StoreException("Error to store current step", e);        } finally {            if (broker != null) {                broker.close();            }        }        return step;    }    public void moveToHistory(Step step) throws StoreException {        PersistenceBroker broker = null;        try {            broker = this.getBroker();            Criteria criteria = new Criteria();            criteria.addEqualTo("id", new Long(step.getEntryId()));            Query query = new QueryByCriteria(OJBWorkflowEntry.class, criteria);            OJBWorkflowEntry entry = (OJBWorkflowEntry) broker.getObjectByQuery(query);            if (entry != null) {                OJBHistoryStep hstep = new OJBHistoryStep((OJBStep) step);                entry.getCurrentSteps().remove(step);                if (entry.getHistorySteps() == null) {                    ArrayList hSteps = new ArrayList(1);                    hSteps.add(hstep);                    entry.setHistorySteps(hSteps);                } else {                    entry.getHistorySteps().add(hstep);                }                broker.delete(new OJBCurrentStep((OJBStep) step));                broker.store(entry);            }        } catch (Exception e) {            throw new StoreException("Error to move current step to history", e);        } finally {            if (broker != null) {                broker.close();            }        }    }    public List query(WorkflowExpressionQuery query) throws StoreException {        throw new QueryNotSupportedException("OJB Store does not support WorkflowExpressionQuery");    }    public List query(WorkflowQuery query) throws StoreException {        PersistenceBroker broker = null;        List results = new ArrayList();        try {            broker = this.getBroker();            int qtype = query.getType();            if (qtype == 0) { // then not set, so look in sub queries                              // todo: not sure if you would have a query that would look in both old and new, if so, i'll have to change this - TR                              // but then again, why are there redundant tables in the first place? the data model should probably change                if (query.getLeft() != null) {                    qtype = query.getLeft().getType();                }            }            String sel = queryWhere(query);            if (log.isDebugEnabled()) {                log.debug(sel);            }            Criteria critere = new Criteria();            critere.addSql(sel);            ReportQueryByCriteria report;            if (qtype == WorkflowQuery.CURRENT) {                report = new ReportQueryByCriteria(OJBCurrentStep.class, critere, true); // true = Select distinct            } else {                report = new ReportQueryByCriteria(OJBHistoryStep.class, critere, true); // true = Select distinct            }            report.setColumns(new String[] {"entryId"});            Iterator iter = broker.getReportQueryIteratorByQuery(report);            while (iter.hasNext()) {                Object[] obj = (Object[]) iter.next();                BigDecimal entryId = (BigDecimal) obj[0];                results.add(new Long(entryId.longValue()));            }        } catch (Exception e) {            throw new StoreException("SQL Exception in query: " + e.getMessage());        } finally {            if (broker != null) {                broker.close();            }        }        return results;    }    private PersistenceBroker getBroker() throws PBFactoryException {        PersistenceBroker broker = PersistenceBrokerFactory.defaultPersistenceBroker();        return broker;    }    private static String escape(String s) {        StringBuffer sb = new StringBuffer(s);        char c;        char[] chars = s.toCharArray();        for (int i = 0; i < chars.length; i++) {            c = chars[i];            switch (c) {            case '\'':                sb.insert(i, '\'');                i++;                break;            case '\\':                sb.insert(i, '\\');                i++;            }        }        return sb.toString();    }    private String queryComparison(WorkflowQuery query) {        Object value = query.getValue();        int operator = query.getOperator();        int field = query.getField();        //int type = query.getType();        String oper;        switch (operator) {        case WorkflowQuery.EQUALS:            oper = " = ";            break;        case WorkflowQuery.NOT_EQUALS:            oper = " <> ";            break;        case WorkflowQuery.GT:            oper = " > ";            break;        case WorkflowQuery.LT:            oper = " < ";            break;        default:            oper = " = ";        }        String left;        String right;        switch (field) {        case WorkflowQuery.ACTION: // actionId            left = "ACTION_ID";            break;        case WorkflowQuery.CALLER:            left = "CALLER";            break;        case WorkflowQuery.FINISH_DATE:            left = "FINISH_DATE";            break;        case WorkflowQuery.OWNER:            left = "OWNER";            break;        case WorkflowQuery.START_DATE:            left = "START_DATE";            break;        case WorkflowQuery.STEP: // stepId            left = "STEP_ID";            break;        case WorkflowQuery.STATUS:            left = "STATUS";            break;        default:            left = "1";        }        if (value != null) {            right = "'" + escape(value.toString()) + "'";        } else {            right = "null";        }        return left + oper + right;    }    private String queryWhere(WorkflowQuery query) {        if (query.getLeft() == null) {            // leaf node            return queryComparison(query);        } else {            int operator = query.getOperator();            WorkflowQuery left = query.getLeft();            WorkflowQuery right = query.getRight();            switch (operator) {            case WorkflowQuery.AND:                return "(" + queryWhere(left) + " AND " + queryWhere(right) + ")";            case WorkflowQuery.OR:                return "(" + queryWhere(left) + " OR " + queryWhere(right) + ")";            case WorkflowQuery.XOR:                return "(" + queryWhere(left) + " XOR " + queryWhere(right) + ")";            }        }        return ""; // not sure if we should throw an exception or how this should be handled    }}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美日韩一区二区在线观看| 一区二区国产视频| 激情综合色播五月| 欧美一卡二卡三卡| 蜜桃av一区二区三区| 欧美大度的电影原声| 秋霞电影一区二区| 国产亚洲欧美色| 99精品国产视频| 亚洲国产另类av| 欧美xxxx在线观看| 国产成人亚洲综合a∨猫咪| 中文字幕一区日韩精品欧美| 日本高清成人免费播放| 午夜精品成人在线视频| 精品剧情在线观看| 91丝袜美腿高跟国产极品老师 | 欧美videofree性高清杂交| 亚洲成av人**亚洲成av**| 日韩欧美一区二区视频| 亚洲色图制服诱惑 | 久久精品日韩一区二区三区| 丰满岳乱妇一区二区三区| 一区二区三区在线视频免费观看| 欧美视频日韩视频在线观看| 国内精品伊人久久久久av影院| 国产精品日韩成人| 91麻豆精品国产综合久久久久久| 激情丁香综合五月| 亚洲欧美日韩中文播放| 欧美大白屁股肥臀xxxxxx| 成人精品一区二区三区四区| 亚瑟在线精品视频| 欧美韩国日本综合| 日韩一级精品视频在线观看| 91美女在线观看| 国产精品一区二区久久不卡| 一片黄亚洲嫩模| 日本一区二区三区dvd视频在线| 在线观看欧美黄色| 成人自拍视频在线| 蜜桃视频在线观看一区二区| 一区二区在线电影| 国产色爱av资源综合区| 日韩一区二区在线观看视频| 不卡一区在线观看| 国内精品写真在线观看| 五月开心婷婷久久| 亚洲欧美日本在线| 欧美激情一区二区在线| 亚洲精品一线二线三线无人区| 91丝袜美女网| 国产在线精品一区二区三区不卡 | 欧美色网一区二区| av影院午夜一区| 激情伊人五月天久久综合| 亚洲丶国产丶欧美一区二区三区| 国产欧美日韩视频一区二区| 欧美一级夜夜爽| 欧美日韩国产成人在线91| 99亚偷拍自图区亚洲| 国产一区二区三区黄视频 | 激情综合色综合久久| 亚洲成人午夜电影| 亚洲精品视频观看| 亚洲视频综合在线| 日韩一区欧美一区| 国产精品视频一二三区| 中文字幕不卡在线| 国产精品婷婷午夜在线观看| 精品国产乱码久久久久久蜜臀| 91.com在线观看| 91精品欧美福利在线观看| 555www色欧美视频| 欧美精品aⅴ在线视频| 欧美三级电影网站| 91久久国产最好的精华液| 色视频欧美一区二区三区| 成人毛片在线观看| 91视频在线观看| 91丨九色丨黑人外教| 成人在线视频一区| av亚洲精华国产精华精| 成人污污视频在线观看| 不卡一区二区在线| 色综合中文字幕| 色偷偷成人一区二区三区91| 色爱区综合激月婷婷| 欧美三级蜜桃2在线观看| 欧美日韩激情一区二区三区| 欧美精品久久天天躁| 制服丝袜中文字幕一区| 欧美精品一二三四| 日韩免费在线观看| 精品福利在线导航| 日本一区二区三区四区| 亚洲日本一区二区| 午夜电影一区二区三区| 另类小说视频一区二区| 国产高清不卡一区| 国产成人精品免费看| 91麻豆国产福利精品| 欧美精品亚洲二区| 欧美精品一区二区不卡| 亚洲视频精选在线| 日本特黄久久久高潮| 国产精品456| 91免费视频网| 91精品在线麻豆| 久久久久久久电影| 亚洲在线中文字幕| 精品制服美女丁香| 成人av片在线观看| 欧美日本在线一区| 亚洲国产高清在线观看视频| 亚洲 欧美综合在线网络| 精品一区二区三区不卡| 色先锋久久av资源部| 欧美一级久久久久久久大片| 国产精品国产a| 免费视频最近日韩| 色综合色狠狠天天综合色| 日韩情涩欧美日韩视频| 中文字幕乱码日本亚洲一区二区| 亚洲综合激情网| 国产成人自拍在线| 91精品国产综合久久福利| 国产色91在线| 蜜臀av在线播放一区二区三区| 成人激情动漫在线观看| 日韩欧美国产午夜精品| 一区二区三区四区不卡在线| 国产精品12区| 欧美一区二区视频在线观看2020 | 色偷偷久久一区二区三区| 精品国精品自拍自在线| 亚洲大片在线观看| 92精品国产成人观看免费| 久久夜色精品国产噜噜av| 亚洲高清视频中文字幕| 成人毛片在线观看| 久久久久国产精品厨房| 日韩激情中文字幕| 欧洲一区在线电影| 中文字幕一区二区三区av| 久久国产福利国产秒拍| 欧美精品亚洲一区二区在线播放| 亚洲免费在线看| www.日韩精品| 欧美极品xxx| 国产精品一区二区在线看| 日韩精品一区二区在线观看| 亚洲成人免费电影| 色综合久久六月婷婷中文字幕| 国产三级精品三级| 国产精品一二三四| wwww国产精品欧美| 免费成人在线视频观看| 欧美一卡2卡三卡4卡5免费| 婷婷中文字幕一区三区| 欧美日韩一区在线| 亚洲国产精品影院| 欧美日韩亚洲综合在线 欧美亚洲特黄一级| 日韩毛片精品高清免费| 91女人视频在线观看| 亚洲色图.com| 色综合激情久久| 亚洲一区在线看| 欧美日韩一区高清| 日本亚洲一区二区| 91精品久久久久久久99蜜桃 | 一区二区三区精品在线观看| 99精品热视频| 一级中文字幕一区二区| 久久综合九色综合欧美98| 精品亚洲成a人在线观看| 久久婷婷一区二区三区| 国产麻豆精品久久一二三| 国产精品色哟哟网站| 成人精品视频一区二区三区| 国产精品久久久久久久久免费桃花| 成人黄色777网| 一区二区三区免费网站| 欧美乱妇一区二区三区不卡视频| 亚洲电影激情视频网站| 欧美片网站yy| 国产一区二区三区综合| 久久这里都是精品| 成人动漫精品一区二区| 一区二区三区日本| 69堂国产成人免费视频| 精品一区二区三区视频| 成人免费一区二区三区在线观看| 色婷婷综合激情| 奇米在线7777在线精品| 中文一区一区三区高中清不卡| 成人黄色一级视频| 香港成人在线视频| 精品国产乱码91久久久久久网站| 国产不卡一区视频|