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

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

?? abstracthibernateworkflowstore.java

?? 一個很好實用的工作流OSWORKFLOW開發例子.有著非常優秀的靈活性.
?? JAVA
?? 第 1 頁 / 共 2 頁
字號:
                }            });    }    // Companion method of InternalCallback class    protected abstract Object execute(InternalCallback action) throws StoreException;    protected String getCacheRegion() {        return cacheRegion;    }    protected boolean isCacheable() {        return cacheable;    }    protected Criterion getExpression(final WorkflowQuery query) throws StoreException {        return (Criterion) execute(new InternalCallback() {                public Object doInHibernate(Session session) throws HibernateException {                    int operator = query.getOperator();                    switch (operator) {                    case WorkflowQuery.EQUALS:                        return Expression.eq(getFieldName(query.getField()), query.getValue());                    case WorkflowQuery.NOT_EQUALS:                        return Expression.not(Expression.like(getFieldName(query.getField()), query.getValue()));                    case WorkflowQuery.GT:                        return Expression.gt(getFieldName(query.getField()), query.getValue());                    case WorkflowQuery.LT:                        return Expression.lt(getFieldName(query.getField()), query.getValue());                    default:                        return Expression.eq(getFieldName(query.getField()), query.getValue());                    }                }            });    }    protected void delete(final Object entry) throws StoreException {        execute(new InternalCallback() {                public Object doInHibernate(Session session) throws HibernateException {                    session.delete(entry);                    return null;                }            });    }    // ~ DAO Methods ////////////////////////////////////////////////////////////////    protected HibernateWorkflowEntry loadEntry(final long entryId) throws StoreException {        return (HibernateWorkflowEntry) execute(new InternalCallback() {                public Object doInHibernate(Session session) throws HibernateException {                    return session.load(HibernateWorkflowEntry.class, new Long(entryId));                }            });    }    protected void save(final Object entry) throws StoreException {        execute(new InternalCallback() {                public Object doInHibernate(Session session) throws HibernateException {                    session.save(entry);                    return null;                }            });    }    private String getFieldName(int field) {        switch (field) {        case FieldExpression.ACTION: // actionId            return "actionId";        case FieldExpression.CALLER:            return "caller";        case FieldExpression.FINISH_DATE:            return "finishDate";        case FieldExpression.OWNER:            return "owner";        case FieldExpression.START_DATE:            return "startDate";        case FieldExpression.STEP: // stepId            return "stepId";        case FieldExpression.STATUS:            return "status";        case FieldExpression.STATE:            return "state";        case FieldExpression.NAME:            return "workflowName";        case FieldExpression.DUE_DATE:            return "dueDate";        default:            return "1";        }    }    private Class getQueryClass(com.opensymphony.workflow.query.Expression expr, Collection classesCache) {        if (classesCache == null) {            classesCache = new HashSet();        }        if (expr instanceof FieldExpression) {            FieldExpression fieldExpression = (FieldExpression) expr;            switch (fieldExpression.getContext()) {            case FieldExpression.CURRENT_STEPS:                classesCache.add(HibernateCurrentStep.class);                break;            case FieldExpression.HISTORY_STEPS:                classesCache.add(HibernateHistoryStep.class);                break;            case FieldExpression.ENTRY:                classesCache.add(HibernateWorkflowEntry.class);                break;            default:                throw new QueryNotSupportedException("Query for unsupported context " + fieldExpression.getContext());            }        } else {            NestedExpression nestedExpression = (NestedExpression) expr;            for (int i = 0; i < nestedExpression.getExpressionCount(); i++) {                com.opensymphony.workflow.query.Expression expression = nestedExpression.getExpression(i);                if (expression.isNested()) {                    classesCache.add(getQueryClass(nestedExpression.getExpression(i), classesCache));                } else {                    classesCache.add(getQueryClass(expression, classesCache));                }            }        }        if (classesCache.size() > 1) {            throw new QueryNotSupportedException("Store does not support nested queries of different types (types found:" + classesCache + ")");        }        return (Class) classesCache.iterator().next();    }    private Criterion buildExpression(WorkflowQuery query) throws StoreException {        if (query.getLeft() == null) {            if (query.getRight() == null) {                return getExpression(query); // leaf node            } else {                throw new StoreException("Invalid WorkflowQuery object.  QueryLeft is null but QueryRight is not.");            }        } else {            if (query.getRight() == null) {                throw new StoreException("Invalid WorkflowQuery object.  QueryLeft is not null but QueryRight is.");            }            int operator = query.getOperator();            WorkflowQuery left = query.getLeft();            WorkflowQuery right = query.getRight();            switch (operator) {            case WorkflowQuery.AND:                return Expression.and(buildExpression(left), buildExpression(right));            case WorkflowQuery.OR:                return Expression.or(buildExpression(left), buildExpression(right));            case WorkflowQuery.XOR:                throw new QueryNotSupportedException("XOR Operator in Queries not supported by " + this.getClass().getName());            default:                throw new QueryNotSupportedException("Operator '" + operator + "' is not supported by " + this.getClass().getName());            }        }    }    private Criterion buildNested(NestedExpression nestedExpression) {        Criterion full = null;        for (int i = 0; i < nestedExpression.getExpressionCount(); i++) {            Criterion expr;            com.opensymphony.workflow.query.Expression expression = nestedExpression.getExpression(i);            if (expression.isNested()) {                expr = buildNested((NestedExpression) nestedExpression.getExpression(i));            } else {                FieldExpression sub = (FieldExpression) nestedExpression.getExpression(i);                expr = queryComparison(sub);                if (sub.isNegate()) {                    expr = Expression.not(expr);                }            }            if (full == null) {                full = expr;            } else {                switch (nestedExpression.getExpressionOperator()) {                case NestedExpression.AND:                    full = Expression.and(full, expr);                    break;                case NestedExpression.OR:                    full = Expression.or(full, expr);                }            }        }        return full;    }    private Criterion queryComparison(FieldExpression expression) {        int operator = expression.getOperator();        switch (operator) {        case FieldExpression.EQUALS:            return Expression.eq(getFieldName(expression.getField()), expression.getValue());        case FieldExpression.NOT_EQUALS:            return Expression.not(Expression.like(getFieldName(expression.getField()), expression.getValue()));        case FieldExpression.GT:            return Expression.gt(getFieldName(expression.getField()), expression.getValue());        case FieldExpression.LT:            return Expression.lt(getFieldName(expression.getField()), expression.getValue());        default:            return Expression.eq(getFieldName(expression.getField()), expression.getValue());        }    }    //~ Inner Interfaces ///////////////////////////////////////////////////////    // ~ Internal Interfaces /////////////////////////////////////////////////////    // Template method pattern to delegate implementation of Session     // management to subclasses    protected interface InternalCallback {        public Object doInHibernate(Session session) throws HibernateException, StoreException;    }}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
琪琪一区二区三区| 免费成人你懂的| 久久综合久久综合亚洲| 欧美日韩高清一区二区三区| 色婷婷av一区| 色一情一伦一子一伦一区| 99久久国产免费看| 99re在线视频这里只有精品| 成人av在线网站| 成人午夜免费电影| 99精品国产一区二区三区不卡| 成人污污视频在线观看| 粉嫩嫩av羞羞动漫久久久| 国产麻豆视频一区| 国产成人一区在线| 成人av资源网站| 日本高清成人免费播放| 欧美日韩免费观看一区二区三区| 欧美日韩亚洲高清一区二区| 欧美日韩卡一卡二| 337p日本欧洲亚洲大胆精品| 亚洲国产精品成人综合色在线婷婷| 国产日韩欧美一区二区三区乱码 | 午夜成人在线视频| 日韩高清一级片| 国产在线一区观看| 99国产精品久久久| 在线播放中文字幕一区| 欧美变态口味重另类| 国产精品美女www爽爽爽| 亚洲欧美日韩国产综合| 天天av天天翘天天综合网| 奇米色一区二区| 成人小视频免费观看| 欧美日韩一区高清| 国产视频在线观看一区二区三区 | 欧美精品在线观看一区二区| 欧美一区二区久久久| 国产欧美一区二区精品婷婷 | 五月婷婷激情综合| 国产成人午夜精品5599| 日本二三区不卡| 久久色成人在线| 一区二区三区四区不卡视频| 午夜精品久久久久久不卡8050| 久久er99精品| 欧美唯美清纯偷拍| 2017欧美狠狠色| 亚洲超丰满肉感bbw| 国产成人av一区二区| 5月丁香婷婷综合| 日韩美女久久久| 激情综合五月婷婷| 欧美丰满嫩嫩电影| 亚洲人快播电影网| 国产高清久久久| 欧美一区二区三级| 亚洲成人中文在线| 一本大道综合伊人精品热热| 国产清纯白嫩初高生在线观看91 | 国产偷v国产偷v亚洲高清| 天天亚洲美女在线视频| 91一区二区在线| 中文字幕精品一区二区三区精品 | 国产精品无码永久免费888| 日韩成人一级片| 欧美色偷偷大香| 一区二区三区在线播放| 99久久夜色精品国产网站| 欧美国产精品v| 国产成人av电影在线观看| 久久久久久一级片| 国产在线精品视频| 久久久久久一二三区| 国产在线视频精品一区| 欧美成人video| 精品在线你懂的| 精品成人私密视频| 国产不卡在线一区| 久久久久久久久久美女| 国产一区二区按摩在线观看| 精品99久久久久久| 国产美女在线观看一区| 欧美韩国日本一区| 99久久久久免费精品国产 | 亚洲精品视频在线观看免费| 成人免费黄色在线| 亚洲视频香蕉人妖| 欧美在线免费观看亚洲| 亚洲一区二区三区激情| 欧美三级电影在线观看| 日韩精品视频网| 日韩美女视频在线| 成人性生交大片免费看中文网站| 亚洲国产精华液网站w| 91亚洲精华国产精华精华液| 一区二区三区免费| 欧美日韩aaaaaa| 久久国产欧美日韩精品| 国产午夜亚洲精品午夜鲁丝片| 国产成人精品一区二区三区网站观看| 久久久亚洲欧洲日产国码αv| 国产91精品一区二区麻豆网站 | 亚洲美女偷拍久久| 777色狠狠一区二区三区| 国产一区二区三区四区在线观看| 欧美国产日韩精品免费观看| 91成人免费在线视频| 激情av综合网| 一区二区三区小说| 欧美大片一区二区| 91在线观看一区二区| 午夜婷婷国产麻豆精品| 久久蜜桃香蕉精品一区二区三区| 91麻豆精品在线观看| 人妖欧美一区二区| 亚洲靠逼com| 精品久久人人做人人爱| 日本韩国欧美一区| 国产成人精品一区二| 日韩电影在线免费| 中文字幕日本不卡| 精品三级av在线| 欧美视频一区二区三区四区 | 天堂av在线一区| 亚洲国产岛国毛片在线| 欧美高清dvd| 99麻豆久久久国产精品免费 | 成人午夜视频网站| 美女脱光内衣内裤视频久久网站| 中文字幕在线观看不卡| 精品国产人成亚洲区| 欧美日韩在线播放三区| 成人激情免费网站| 韩国女主播成人在线| 亚洲3atv精品一区二区三区| 国产精品久久久爽爽爽麻豆色哟哟| 日韩精品一区二区三区三区免费| 一本久久a久久免费精品不卡| 国产乱码精品一区二区三区五月婷| 视频一区中文字幕| 亚洲一区二区三区四区在线免费观看 | 国产欧美精品国产国产专区| 日韩视频免费直播| 91麻豆精品国产| 欧美日韩一区小说| 欧美综合天天夜夜久久| 91小视频在线观看| 99精品国产99久久久久久白柏| 国产99久久久国产精品潘金| 精品综合久久久久久8888| 久久精品国产在热久久| 蜜臀a∨国产成人精品| 日本欧美大码aⅴ在线播放| 亚洲成人综合网站| 日韩高清在线观看| 人人精品人人爱| 久草在线在线精品观看| 久久精品国产99国产精品| 日本中文字幕一区| 激情小说欧美图片| 国产91对白在线观看九色| 成人国产精品免费| 色哟哟亚洲精品| 欧美福利视频一区| 日韩你懂的在线观看| 精品国产露脸精彩对白| 久久网这里都是精品| 国产三级欧美三级日产三级99| 中文字幕免费观看一区| 亚洲日本韩国一区| 污片在线观看一区二区| 久久99久久99小草精品免视看| 国产精品一区二区你懂的| 成人av综合一区| 欧美日韩亚洲综合一区二区三区| 欧美一区日韩一区| 久久日韩粉嫩一区二区三区| 中文字幕永久在线不卡| 亚洲精品久久7777| 麻豆极品一区二区三区| 处破女av一区二区| 欧美色图天堂网| 久久九九99视频| 亚洲一卡二卡三卡四卡| 久久狠狠亚洲综合| av电影在线不卡| 欧美巨大另类极品videosbest | 亚洲免费在线观看| 蜜桃视频第一区免费观看| 成人一区二区三区在线观看| 在线一区二区三区四区| 久久免费电影网| 亚洲成人午夜电影| 国产精品亚洲视频| 在线综合视频播放| 亚洲视频一区在线| 国产精品一色哟哟哟| 欧美日韩视频在线第一区 | 91免费看`日韩一区二区|