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

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

?? abstracthibernateworkflowstore.java

?? 一個很好實用的工作流OSWORKFLOW開發例子.有著非常優秀的靈活性.
?? JAVA
?? 第 1 頁 / 共 2 頁
字號:
/* * Copyright (c) 2002-2003 by OpenSymphony * All rights reserved. */package com.opensymphony.workflow.spi.hibernate;import com.opensymphony.module.propertyset.PropertySet;import com.opensymphony.workflow.QueryNotSupportedException;import com.opensymphony.workflow.StoreException;import com.opensymphony.workflow.query.FieldExpression;import com.opensymphony.workflow.query.NestedExpression;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 com.opensymphony.workflow.util.PropertySetDelegate;import net.sf.hibernate.Criteria;import net.sf.hibernate.HibernateException;import net.sf.hibernate.Session;import net.sf.hibernate.expression.Criterion;import net.sf.hibernate.expression.Expression;import java.util.ArrayList;import java.util.Collection;import java.util.Date;import java.util.HashSet;import java.util.Iterator;import java.util.List;import java.util.Set;/** * @author Luca Masini * @since 2005-9-23 * */public abstract class AbstractHibernateWorkflowStore implements WorkflowStore {    //~ Instance fields ////////////////////////////////////////////////////////    private PropertySetDelegate propertySetDelegate;    private String cacheRegion = null;    private boolean cacheable = false;    //~ Methods ////////////////////////////////////////////////////////////////    // ~ Getter/Setter ////////////////////////////////////////////////////////////////    public void setCacheRegion(String cacheRegion) {        this.cacheRegion = cacheRegion;    }    public void setCacheable(boolean cacheable) {        this.cacheable = cacheable;    }    public void setEntryState(final long entryId, final int state) throws StoreException {        loadEntry(entryId).setState(state);    }    public PropertySet getPropertySet(long entryId) throws StoreException {        if (getPropertySetDelegate() == null) {            throw new StoreException("PropertySetDelegate is not properly configured");        }        return getPropertySetDelegate().getPropertySet(entryId);    }    public void setPropertySetDelegate(PropertySetDelegate propertySetDelegate) {        this.propertySetDelegate = propertySetDelegate;    }    public PropertySetDelegate getPropertySetDelegate() {        return propertySetDelegate;    }    public Step createCurrentStep(final long entryId, final int stepId, final String owner, final Date startDate, final Date dueDate, final String status, final long[] previousIds) throws StoreException {        final HibernateWorkflowEntry entry = loadEntry(entryId);        final HibernateCurrentStep step = new HibernateCurrentStep();        step.setStepId(stepId);        step.setOwner(owner);        step.setStartDate(startDate);        step.setDueDate(dueDate);        step.setStatus(status);        // This is for backward compatibility, but current Store doesn't         // persist this collection, nor is such property visibile outside         // OSWF internal classes        List previousSteps = new ArrayList(previousIds.length);        for (int i = 0; i < previousIds.length; i++) {            HibernateCurrentStep previousStep = new HibernateCurrentStep();            previousSteps.add(previousStep);        }        step.setPreviousSteps(previousSteps);        entry.addCurrentSteps(step);        // We need to save here because we soon will need the stepId         // that hibernate calculate on save or flush        save(step);        return step;    }    public WorkflowEntry createEntry(String workflowName) throws StoreException {        final HibernateWorkflowEntry entry = new HibernateWorkflowEntry();        entry.setState(WorkflowEntry.CREATED);        entry.setWorkflowName(workflowName);        save(entry);        return entry;    }    public List findCurrentSteps(final long entryId) throws StoreException {        // We are asking for current step list, so here we have an anti-lazy        // copy of the Hibernate array in memory. This also prevents problem         // in case the use is going with a pattern that span a session         // for method call        return new ArrayList(loadEntry(entryId).getCurrentSteps());    }    public WorkflowEntry findEntry(long entryId) throws StoreException {        return loadEntry(entryId);    }    public List findHistorySteps(final long entryId) throws StoreException {        // We are asking for current step list, so here we have an anti-lazy        // copy of the Hibernate array in memory. This also prevents problem         // in case the use is going with a pattern that span a session         // for method call        return new ArrayList(loadEntry(entryId).getHistorySteps());    }    public Step markFinished(Step step, int actionId, Date finishDate, String status, String caller) throws StoreException {        final HibernateCurrentStep currentStep = (HibernateCurrentStep) step;        currentStep.setActionId(actionId);        currentStep.setFinishDate(finishDate);        currentStep.setStatus(status);        currentStep.setCaller(caller);        return currentStep;    }    public void moveToHistory(final Step step) throws StoreException {        final HibernateCurrentStep currentStep = (HibernateCurrentStep) step;        final HibernateWorkflowEntry entry = currentStep.getEntry();        final HibernateHistoryStep hStep = new HibernateHistoryStep(currentStep);        entry.removeCurrentSteps(currentStep);        delete(currentStep);        entry.addHistorySteps(hStep);        // We need to save here because we soon will need the stepId         // that hibernate calculate on save or flush        save(hStep);    }    public List query(final WorkflowQuery query) throws StoreException {        return (List) execute(new InternalCallback() {                public Object doInHibernate(Session session) throws HibernateException, StoreException {                    Class entityClass;                    int qtype = query.getType();                    if (qtype == 0) { // then not set, so look in sub queries                        if (query.getLeft() != null) {                            qtype = query.getLeft().getType();                        }                    }                    if (qtype == WorkflowQuery.CURRENT) {                        entityClass = HibernateCurrentStep.class;                    } else {                        entityClass = HibernateHistoryStep.class;                    }                    Criteria criteria = session.createCriteria(entityClass);                    Criterion expression = buildExpression(query);                    criteria.setCacheable(isCacheable());                    if (isCacheable()) {                        criteria.setCacheRegion(getCacheRegion());                    }                    criteria.add(expression);                    Set results = new HashSet();                    Iterator iter = criteria.list().iterator();                    while (iter.hasNext()) {                        HibernateStep step = (HibernateStep) iter.next();                        results.add(new Long(step.getEntryId()));                    }                    return new ArrayList(results);                }            });    }    /*     * (non-Javadoc)     *     * @see com.opensymphony.workflow.spi.WorkflowStore#query(com.opensymphony.workflow.query.WorkflowExpressionQuery)     */    public List query(final WorkflowExpressionQuery query) throws StoreException {        return (List) execute(new InternalCallback() {                public Object doInHibernate(Session session) throws HibernateException {                    com.opensymphony.workflow.query.Expression expression = query.getExpression();                    Criterion expr;                    Class entityClass = getQueryClass(expression, null);                    if (expression.isNested()) {                        expr = buildNested((NestedExpression) expression);                    } else {                        expr = queryComparison((FieldExpression) expression);                    }                    Criteria criteria = session.createCriteria(entityClass);                    criteria.setCacheable(isCacheable());                    if (isCacheable()) {                        criteria.setCacheRegion(getCacheRegion());                    }                    criteria.add(expr);                    Set results = new HashSet();                    Iterator iter = criteria.list().iterator();                    while (iter.hasNext()) {                        Object next = iter.next();                        Object item;                        if (next instanceof HibernateStep) {                            HibernateStep step = (HibernateStep) next;                            item = new Long(step.getEntryId());                        } else {                            WorkflowEntry entry = (WorkflowEntry) next;                            item = new Long(entry.getId());                        }                        results.add(item);                    }                    return new ArrayList(results);

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲国产日韩一区二区| 欧美日韩一区二区三区不卡| 色呦呦日韩精品| 日韩欧美一级片| 亚洲欧美另类图片小说| 国产一区中文字幕| 在线视频你懂得一区| 欧美高清在线一区二区| 日本美女一区二区三区| 欧美在线观看视频一区二区 | 国产精品白丝在线| 日本成人在线一区| 欧美日韩午夜在线视频| 国产精品乱人伦一区二区| 国产在线视频不卡二| 91精品国产综合久久久久久久久久 | 欧美激情一区二区三区蜜桃视频 | 日韩视频在线一区二区| 亚洲一区二区视频| 色狠狠一区二区三区香蕉| 国产精品色在线观看| 国产黄色精品视频| 2023国产精品| 久久精品国产一区二区三区免费看 | 色综合久久久久久久| 国产免费成人在线视频| 国产一区二区三区在线观看免费视频 | 成人精品在线视频观看| 国产欧美日韩视频在线观看| 国产老肥熟一区二区三区| 日韩精品专区在线| 精品一区二区三区日韩| 日韩欧美一区二区在线视频| 日韩av不卡在线观看| 欧美一三区三区四区免费在线看| 日韩av在线免费观看不卡| 69久久夜色精品国产69蝌蚪网| 天天操天天干天天综合网| 欧美年轻男男videosbes| 午夜精品福利一区二区三区蜜桃| 91精品免费观看| 麻豆91小视频| 国产视频一区二区在线| 97久久精品人人爽人人爽蜜臀| 国产精品久久久久影院亚瑟| 91在线视频观看| 亚洲国产日日夜夜| 日韩视频国产视频| 国产69精品久久久久毛片| 国产精品久久99| 欧美色综合天天久久综合精品| 亚洲福利视频一区| 日韩视频中午一区| 成人美女视频在线看| 亚洲在线免费播放| 欧美一区二区三区日韩视频| 久88久久88久久久| 中文字幕在线不卡国产视频| 欧美三级韩国三级日本三斤| 蜜臀av一级做a爰片久久| 国产欧美日韩麻豆91| 在线观看一区日韩| 国产一区二区导航在线播放| 亚洲精品亚洲人成人网在线播放| 欧美精品乱码久久久久久按摩| 狠狠v欧美v日韩v亚洲ⅴ| 亚洲欧洲www| 日韩一区二区麻豆国产| 国产成a人亚洲精| 亚洲一区二区综合| 久久精品日韩一区二区三区| 色94色欧美sute亚洲线路一久| 蜜臀av一区二区在线观看| 国产精品免费av| 日韩欧美中文字幕制服| 色综合一个色综合亚洲| 麻豆精品一区二区综合av| |精品福利一区二区三区| 精品奇米国产一区二区三区| 色综合久久中文字幕| 国产九色精品成人porny| 亚洲一区二区三区国产| 国产视频一区在线播放| 日韩视频在线你懂得| 91免费看片在线观看| 精品夜夜嗨av一区二区三区| 亚洲在线视频网站| 中文字幕日韩欧美一区二区三区| 欧美一区三区四区| 欧美性大战久久| 99久久久国产精品| 国产白丝精品91爽爽久久| 奇米影视在线99精品| 亚洲综合在线电影| 中文字幕制服丝袜成人av | 欧美日韩国产美| 成a人片亚洲日本久久| 黄网站免费久久| 男人的j进女人的j一区| 亚洲国产日日夜夜| 亚洲欧美区自拍先锋| 国产日韩成人精品| 久久午夜国产精品| 精品卡一卡二卡三卡四在线| 欧美一级二级在线观看| 精品视频999| 欧美专区在线观看一区| 日本乱码高清不卡字幕| 91免费观看视频在线| youjizz久久| 成人黄色电影在线| 成人免费视频视频在线观看免费| 美女视频一区在线观看| 蜜桃一区二区三区在线| 蜜臀久久99精品久久久久宅男| 日韩黄色在线观看| 美女一区二区久久| 国产一区二区在线电影| 国产iv一区二区三区| 国产69精品久久99不卡| www.日韩av| 95精品视频在线| 91黄色免费看| 欧美日韩亚洲综合在线 | 亚洲欧洲国产日韩| 亚洲免费观看高清在线观看| 亚洲欧美一区二区三区国产精品| 亚洲女同ⅹxx女同tv| 亚洲综合丁香婷婷六月香| 午夜电影网亚洲视频| 久久精品国产999大香线蕉| 国产很黄免费观看久久| 成人国产视频在线观看| 色88888久久久久久影院按摩| 欧美三级日韩三级| 精品国产人成亚洲区| 国产女人18毛片水真多成人如厕 | 国产精品热久久久久夜色精品三区 | 性做久久久久久久久| 久久精品国产亚洲aⅴ| 高清成人免费视频| 在线一区二区三区四区五区| 欧美一三区三区四区免费在线看| 久久嫩草精品久久久精品一| 中文字幕欧美一| 日产国产欧美视频一区精品| 国产乱码精品一区二区三区av | 日韩欧美精品在线视频| 欧美激情在线看| 午夜视频久久久久久| 国模少妇一区二区三区| 色久综合一二码| 欧美精品一区二区三区视频| 亚洲蜜臀av乱码久久精品蜜桃| 视频一区在线播放| 懂色av一区二区三区免费看| 欧美在线视频不卡| 国产欧美一区二区在线观看| 亚洲国产日韩a在线播放性色| 国产伦精品一区二区三区视频青涩| 色综合天天综合网国产成人综合天 | 亚洲天堂2014| 麻豆视频一区二区| 色噜噜狠狠色综合中国| 2023国产一二三区日本精品2022| 一区二区三区高清不卡| 高清免费成人av| 欧美一区二区三区白人| 国产精品盗摄一区二区三区| 另类综合日韩欧美亚洲| 日本国产一区二区| 中文幕一区二区三区久久蜜桃| 日本女优在线视频一区二区| 91搞黄在线观看| 国产精品免费丝袜| 国产福利一区二区| 精品国产百合女同互慰| 亚洲国产精品一区二区久久| 99r国产精品| 久久久久国产精品厨房| 精品中文字幕一区二区小辣椒| 欧美少妇bbb| 亚洲午夜电影网| 色综合视频在线观看| 国产精品家庭影院| 国产91露脸合集magnet | 日韩免费高清电影| 午夜久久久久久| 欧美视频一区二区在线观看| 亚洲免费在线观看| 91久久一区二区| 一区二区三区中文字幕精品精品 | 国产精品综合二区| 精品国产伦一区二区三区免费| 偷拍一区二区三区| 91精品国产品国语在线不卡| 天天综合日日夜夜精品| 欧美疯狂性受xxxxx喷水图片| 亚洲一区av在线| 欧美性生交片4|