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

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

?? ojbworkflowstore.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一区二区三区免费野_久草精品视频
久久精品一级爱片| 成人网页在线观看| 亚洲卡通动漫在线| www久久久久| 欧美电影免费提供在线观看| 91福利精品视频| 成人精品高清在线| 国产成人午夜精品影院观看视频| 男男成人高潮片免费网站| 亚洲欧洲中文日韩久久av乱码| 欧美日本一区二区| 欧美日韩二区三区| 欧美日韩亚洲综合在线| 97精品久久久午夜一区二区三区| 成人午夜电影久久影院| 国产盗摄女厕一区二区三区| 老司机午夜精品| 麻豆精品一区二区av白丝在线 | 国产精品久久久久久久久果冻传媒| 91亚洲国产成人精品一区二区三| 粉嫩av一区二区三区粉嫩| 成人一区在线看| 高清不卡在线观看| 成人天堂资源www在线| 青青草国产成人av片免费 | 91高清在线观看| 91久久国产最好的精华液| 在线影视一区二区三区| 91在线视频免费91| 欧美性受xxxx黑人xyx| 欧美日韩激情一区二区| 91精品国产综合久久蜜臀| 日韩欧美的一区| 7777精品伊人久久久大香线蕉经典版下载 | 国产精品一区三区| www.亚洲色图.com| 在线观看免费成人| 91精品国产色综合久久久蜜香臀| 精品区一区二区| 国产亚洲综合色| 亚洲精品高清在线观看| 视频一区欧美日韩| 国产精品一区二区久久不卡| 菠萝蜜视频在线观看一区| 国产成人av网站| 欧美视频你懂的| 2020国产成人综合网| 亚洲日本中文字幕区| 亚洲国产成人av| 国产高清在线精品| 欧美日韩国产综合一区二区三区| 欧美电影免费观看高清完整版| 久久众筹精品私拍模特| 亚洲欧美色图小说| 麻豆国产欧美日韩综合精品二区 | 欧美伦理影视网| 国产欧美日韩卡一| 日韩精品午夜视频| 91在线porny国产在线看| 欧美一区国产二区| 日韩美女精品在线| 国产美女视频一区| 欧美电影一区二区三区| 中文字幕一区不卡| 国产在线精品一区在线观看麻豆| 色哦色哦哦色天天综合| 欧美成人一区二区三区在线观看| 国产欧美日本一区视频| 日韩高清中文字幕一区| 97精品国产露脸对白| 久久精品人人爽人人爽| 青青国产91久久久久久| 日本高清免费不卡视频| 国产日韩欧美电影| 极品美女销魂一区二区三区| 欧美精三区欧美精三区| 一区二区三区欧美亚洲| 黄页网站大全一区二区| 欧美日韩不卡视频| 亚洲精选视频免费看| 不卡电影免费在线播放一区| 久久色成人在线| 午夜精品久久久久影视| 91国模大尺度私拍在线视频| 中文字幕亚洲一区二区av在线 | 日韩免费视频一区二区| 亚洲一区二区视频在线观看| 久久福利资源站| 日韩一区二区在线播放| 丝瓜av网站精品一区二区| 91高清在线观看| 日韩精品色哟哟| 国产日韩高清在线| 欧洲另类一二三四区| 日本欧美在线观看| 久久蜜臀中文字幕| 日本精品一级二级| 麻豆精品蜜桃视频网站| 国产精品欧美一级免费| 欧洲激情一区二区| 狠狠色丁香久久婷婷综合丁香| 国产校园另类小说区| 色94色欧美sute亚洲13| 男女视频一区二区| 国产精品网曝门| 欧美美女bb生活片| 波多野结衣中文字幕一区| 亚洲主播在线播放| 久久先锋资源网| 欧美视频在线播放| 成人精品小蝌蚪| 奇米一区二区三区av| 国产精品免费看片| 日韩欧美国产一区在线观看| 91年精品国产| 国产一区二区三区| 视频在线观看一区二区三区| 国产精品免费观看视频| 欧美一区二区三区啪啪| 91首页免费视频| 国产一区二区三区精品欧美日韩一区二区三区 | 高清shemale亚洲人妖| 亚洲成人精品一区二区| 欧美激情艳妇裸体舞| 欧美大片一区二区三区| 日本高清视频一区二区| 成人久久久精品乱码一区二区三区| 日本少妇一区二区| 亚洲五月六月丁香激情| 中文字幕制服丝袜成人av| 精品国产麻豆免费人成网站| 欧美亚洲综合另类| 91视频你懂的| 岛国av在线一区| 国产精品99久久久久久久女警| 日韩电影一区二区三区四区| 亚洲日本在线a| 国产精品国产三级国产aⅴ入口| 日韩免费看的电影| 日韩欧美亚洲一区二区| 欧美日韩不卡在线| 欧美群妇大交群中文字幕| 欧美性受极品xxxx喷水| 色综合激情久久| 91在线高清观看| 色先锋资源久久综合| 91丨九色丨国产丨porny| 99久久精品一区二区| 成人午夜电影小说| 99国产欧美另类久久久精品| 97超碰欧美中文字幕| 91色乱码一区二区三区| 色就色 综合激情| 欧美日韩色一区| 91精品国产综合久久精品性色| 欧美三电影在线| 欧美一级片在线看| 欧美一区二区三区电影| 欧美mv日韩mv国产网站| 久久先锋资源网| 国产精品不卡在线| 亚洲国产日韩在线一区模特| 亚洲午夜久久久久久久久电影院 | 天堂一区二区在线| 蜜臀av一区二区在线免费观看| 麻豆高清免费国产一区| 国产高清久久久久| 91浏览器在线视频| 欧美日韩精品欧美日韩精品 | www..com久久爱| 欧美性xxxxx极品少妇| 欧美精品视频www在线观看| 日韩欧美一区二区免费| 国产亚洲综合色| 一区二区三区在线免费观看| 日本美女视频一区二区| 国产精品一区二区免费不卡| av亚洲精华国产精华精华| 精品视频在线免费观看| 久久亚洲精品小早川怜子| 国产精品久久久久久久久晋中| 一区二区三国产精华液| 韩国精品主播一区二区在线观看 | 亚洲一区二区三区四区在线观看| 天天色 色综合| 国产精品综合一区二区| 色婷婷综合久久久久中文一区二区| 欧美日韩日日骚| 国产精品无码永久免费888| 亚洲高清视频在线| 狠狠色丁香久久婷婷综合_中| 99riav一区二区三区| 日韩一区二区三区三四区视频在线观看 | 欧美一级xxx| 亚洲欧美激情插| 国产精品一区二区在线看| 欧美日韩免费一区二区三区| 欧美经典一区二区| 免费在线视频一区| 91小视频在线|