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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? dataview.java

?? linux 下的源代碼分析閱讀器 red hat公司新版
?? JAVA
?? 第 1 頁 / 共 2 頁
字號:
/*- * See the file LICENSE for redistribution information. * * Copyright (c) 2000,2007 Oracle.  All rights reserved. * * $Id: DataView.java,v 12.6 2007/05/04 00:28:25 mark Exp $ */package com.sleepycat.collections;import com.sleepycat.bind.EntityBinding;import com.sleepycat.bind.EntryBinding;import com.sleepycat.compat.DbCompat;import com.sleepycat.db.CursorConfig;import com.sleepycat.db.Database;import com.sleepycat.db.DatabaseConfig;import com.sleepycat.db.DatabaseEntry;import com.sleepycat.db.DatabaseException;import com.sleepycat.db.Environment;import com.sleepycat.db.JoinConfig;import com.sleepycat.db.OperationStatus;import com.sleepycat.db.SecondaryConfig;import com.sleepycat.db.SecondaryDatabase;import com.sleepycat.db.SecondaryKeyCreator;import com.sleepycat.db.Transaction;import com.sleepycat.util.RuntimeExceptionWrapper;import com.sleepycat.util.keyrange.KeyRange;import com.sleepycat.util.keyrange.KeyRangeException;/** * Represents a Berkeley DB database and adds support for indices, bindings and * key ranges. * * <p>This class defines a view and takes care of reading and updating indices, * calling bindings, constraining access to a key range, etc.</p> * * @author Mark Hayes */final class DataView implements Cloneable {    Database db;    SecondaryDatabase secDb;    CurrentTransaction currentTxn;    KeyRange range;    EntryBinding keyBinding;    EntryBinding valueBinding;    EntityBinding entityBinding;    PrimaryKeyAssigner keyAssigner;    SecondaryKeyCreator secKeyCreator;    CursorConfig cursorConfig;      // Used for all operations via this view    boolean writeAllowed;           // Read-write view    boolean ordered;                // Not a HASH Db    boolean recNumAllowed;          // QUEUE, RECNO, or BTREE-RECNUM Db    boolean recNumAccess;           // recNumAllowed && using a rec num binding    boolean btreeRecNumDb;          // BTREE-RECNUM Db    boolean btreeRecNumAccess;      // recNumAccess && BTREE-RECNUM Db    boolean recNumRenumber;         // RECNO-RENUM Db    boolean keysRenumbered;         // recNumRenumber || btreeRecNumAccess    boolean dupsAllowed;            // Dups configured    boolean dupsOrdered;            // Sorted dups configured    boolean transactional;          // Db is transactional    boolean readUncommittedAllowed; // Read-uncommited is optional in DB-CORE    /*     * If duplicatesView is called, dupsView will be true and dupsKey will be     * the secondary key used as the "single key" range.  dupRange will be set     * as the range of the primary key values if subRange is subsequently     * called, to further narrow the view.     */    DatabaseEntry dupsKey;    boolean dupsView;    KeyRange dupsRange;    /**     * Creates a view for a given database and bindings.  The initial key range     * of the view will be open.     */    DataView(Database database, EntryBinding keyBinding,             EntryBinding valueBinding, EntityBinding entityBinding,             boolean writeAllowed, PrimaryKeyAssigner keyAssigner)        throws IllegalArgumentException {        if (database == null) {            throw new IllegalArgumentException("database is null");        }        db = database;        try {            currentTxn =                CurrentTransaction.getInstanceInternal(db.getEnvironment());            DatabaseConfig dbConfig;            if (db instanceof SecondaryDatabase) {                secDb = (SecondaryDatabase) database;                SecondaryConfig secConfig = secDb.getSecondaryConfig();                secKeyCreator = secConfig.getKeyCreator();                dbConfig = secConfig;            } else {                dbConfig = db.getConfig();            }            ordered = !DbCompat.isTypeHash(dbConfig);            recNumAllowed = DbCompat.isTypeQueue(dbConfig) ||                            DbCompat.isTypeRecno(dbConfig) ||                            DbCompat.getBtreeRecordNumbers(dbConfig);            recNumRenumber = DbCompat.getRenumbering(dbConfig);            dupsAllowed = DbCompat.getSortedDuplicates(dbConfig) ||                          DbCompat.getUnsortedDuplicates(dbConfig);            dupsOrdered = DbCompat.getSortedDuplicates(dbConfig);            transactional = currentTxn.isTxnMode() &&                            dbConfig.getTransactional();            readUncommittedAllowed = DbCompat.getReadUncommitted(dbConfig);            btreeRecNumDb = recNumAllowed && DbCompat.isTypeBtree(dbConfig);            range = new KeyRange(dbConfig.getBtreeComparator());        } catch (DatabaseException e) {            throw new RuntimeExceptionWrapper(e);        }        this.writeAllowed = writeAllowed;        this.keyBinding = keyBinding;        this.valueBinding = valueBinding;        this.entityBinding = entityBinding;        this.keyAssigner = keyAssigner;        cursorConfig = CursorConfig.DEFAULT;        if (valueBinding != null && entityBinding != null)            throw new IllegalArgumentException(                "both valueBinding and entityBinding are non-null");        if (keyBinding instanceof com.sleepycat.bind.RecordNumberBinding) {            if (!recNumAllowed) {                throw new IllegalArgumentException(                    "RecordNumberBinding requires DB_BTREE/DB_RECNUM, " +                    "DB_RECNO, or DB_QUEUE");            }            recNumAccess = true;            if (btreeRecNumDb) {                btreeRecNumAccess = true;            }        }        keysRenumbered = recNumRenumber || btreeRecNumAccess;    }    /**     * Clones the view.     */    private DataView cloneView() {        try {            return (DataView) super.clone();        } catch (CloneNotSupportedException willNeverOccur) {            throw new IllegalStateException();        }    }    /**     * Return a new key-set view derived from this view by setting the     * entity and value binding to null.     *     * @return the derived view.     */    DataView keySetView() {        if (keyBinding == null) {            throw new UnsupportedOperationException("must have keyBinding");        }        DataView view = cloneView();        view.valueBinding = null;        view.entityBinding = null;        return view;    }    /**     * Return a new value-set view derived from this view by setting the     * key binding to null.     *     * @return the derived view.     */    DataView valueSetView() {        if (valueBinding == null && entityBinding == null) {            throw new UnsupportedOperationException(                "must have valueBinding or entityBinding");        }        DataView view = cloneView();        view.keyBinding = null;        return view;    }    /**     * Return a new value-set view for single key range.     *     * @param singleKey the single key value.     *     * @return the derived view.     *     * @throws DatabaseException if a database problem occurs.     *     * @throws KeyRangeException if the specified range is not within the     * current range.     */    DataView valueSetView(Object singleKey)        throws DatabaseException, KeyRangeException {        /*         * Must do subRange before valueSetView since the latter clears the         * key binding needed for the former.         */        KeyRange singleKeyRange = subRange(range, singleKey);        DataView view = valueSetView();        view.range = singleKeyRange;        return view;    }    /**     * Return a new value-set view for key range, optionally changing     * the key binding.     */    DataView subView(Object beginKey, boolean beginInclusive,                     Object endKey, boolean endInclusive,                     EntryBinding keyBinding)        throws DatabaseException, KeyRangeException {        DataView view = cloneView();        view.setRange(beginKey, beginInclusive, endKey, endInclusive);        if (keyBinding != null) view.keyBinding = keyBinding;        return view;    }    /**     * Return a new duplicates view for a given secondary key.     */    DataView duplicatesView(Object secondaryKey,                            EntryBinding primaryKeyBinding)        throws DatabaseException, KeyRangeException {        if (!isSecondary()) {            throw new UnsupportedOperationException                ("Only allowed for maps on secondary databases");        }        if (dupsView) {            throw new IllegalStateException();        }        DataView view = cloneView();        view.range = subRange(view.range, secondaryKey);        view.dupsKey = view.range.getSingleKey();        view.dupsView = true;        view.keyBinding = primaryKeyBinding;        return view;    }    /**     * Returns a new view with a specified cursor configuration.     */    DataView configuredView(CursorConfig config) {        DataView view = cloneView();        view.cursorConfig = (config != null) ?            DbCompat.cloneCursorConfig(config) : CursorConfig.DEFAULT;        return view;    }    /**     * Returns the current transaction for the view or null if the environment     * is non-transactional.     */    CurrentTransaction getCurrentTxn() {        return transactional ? currentTxn : null;    }    /**     * Sets this view's range to a subrange with the given parameters.     */    private void setRange(Object beginKey, boolean beginInclusive,                          Object endKey, boolean endInclusive)        throws DatabaseException, KeyRangeException {        KeyRange useRange = useSubRange();        useRange = subRange            (useRange, beginKey, beginInclusive, endKey, endInclusive);        if (dupsView) {            dupsRange = useRange;        } else {            range = useRange;        }    }    /**     * Returns the key thang for a single key range, or null if a single key     * range is not used.     */    DatabaseEntry getSingleKeyThang() {        return range.getSingleKey();    }    /**     * Returns the environment for the database.     */    final Environment getEnv() {        return currentTxn.getEnvironment();    }    /**     * Returns whether this is a view on a secondary database rather     * than directly on a primary database.     */    final boolean isSecondary() {        return (secDb != null);    }    /**     * Returns whether no records are present in the view.     */    boolean isEmpty()        throws DatabaseException {        DataCursor cursor = new DataCursor(this, false);        try {            return cursor.getFirst(false) != OperationStatus.SUCCESS;        } finally {            cursor.close();        }    }    /**     * Appends a value and returns the new key.  If a key assigner is used     * it assigns the key, otherwise a QUEUE or RECNO database is required.     */    OperationStatus append(Object value, Object[] retPrimaryKey,                           Object[] retValue)        throws DatabaseException {        /*         * Flags will be NOOVERWRITE if used with assigner, or APPEND         * otherwise.

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
中文字幕乱码久久午夜不卡| 亚洲精品日产精品乱码不卡| 99精品桃花视频在线观看| 亚洲小少妇裸体bbw| 久久九九99视频| 在线播放中文一区| av不卡免费在线观看| 精品写真视频在线观看| 亚洲最大的成人av| 国产欧美日韩激情| 欧美成人在线直播| 欧美性极品少妇| 91视频国产观看| 国产成人免费视频网站 | 精品处破学生在线二十三| 91免费看`日韩一区二区| 国产伦精品一区二区三区免费| 亚洲成人1区2区| 一级中文字幕一区二区| 国产精品的网站| 日本一区二区三区免费乱视频| 日韩视频一区二区三区在线播放| 欧美色图一区二区三区| 91在线观看成人| 波多野结衣一区二区三区| 国产剧情一区在线| 精品影视av免费| 看片的网站亚洲| 久久国产人妖系列| 久久av资源站| 黄页网站大全一区二区| 久久av中文字幕片| 国产在线视频一区二区三区| 日本不卡在线视频| 日本不卡在线视频| 免费成人在线观看| 精品一区二区三区在线视频| 老汉av免费一区二区三区| 视频一区欧美日韩| 美女视频一区在线观看| 奇米精品一区二区三区在线观看| 日本不卡的三区四区五区| 日本大胆欧美人术艺术动态| 青青草97国产精品免费观看无弹窗版| 亚洲国产精品视频| 日本成人超碰在线观看| 美女网站视频久久| 国精产品一区一区三区mba桃花| 久久国产精品99久久人人澡| 青青草精品视频| 国产主播一区二区| 国产成人精品aa毛片| 成人高清免费在线播放| 91视频精品在这里| 欧美日韩日日骚| 欧美大度的电影原声| 久久久久久久网| 国产精品卡一卡二| 亚洲一区二区三区在线播放| 日韩中文欧美在线| 国产精品一区二区果冻传媒| 不卡一区在线观看| 欧美日韩情趣电影| 久久这里只有精品视频网| 中文字幕一区不卡| 午夜精彩视频在线观看不卡| 麻豆精品视频在线| 成人av在线播放网址| 欧美影院一区二区| 欧美大片顶级少妇| 亚洲色图欧洲色图| 日本伊人色综合网| 成人听书哪个软件好| 中文字幕在线观看一区| 亚洲一区二区三区不卡国产欧美| 蜜臀av性久久久久av蜜臀妖精 | 色94色欧美sute亚洲线路一ni| 欧美视频在线不卡| 日韩美女视频在线| 亚洲欧洲日韩av| 青青草国产成人av片免费| 成人美女视频在线看| 欧美精品 国产精品| 国产欧美日韩在线看| 亚洲成av人片在线观看| 国产成人精品三级麻豆| 欧美精品日日鲁夜夜添| 国产精品视频第一区| 欧美a级理论片| 成人av电影观看| 精品国产一区二区国模嫣然| 一区二区三区精品视频在线| 久久福利视频一区二区| 色呦呦网站一区| 久久这里只有精品6| 亚洲成人1区2区| 99国产一区二区三精品乱码| 久久在线观看免费| 亚洲午夜精品网| 91麻豆自制传媒国产之光| 精品成人在线观看| 五月婷婷综合网| 一本色道亚洲精品aⅴ| 久久综合九色综合97婷婷女人| 亚洲成人一区二区在线观看| 成人av在线一区二区三区| 精品国产91乱码一区二区三区| 亚洲一区二区欧美激情| 99久久精品一区二区| 国产无人区一区二区三区| 日本一区中文字幕 | 日韩精品中文字幕一区| 一区二区三区精密机械公司| 国产精品影视网| 日韩三级视频中文字幕| 亚洲r级在线视频| 91久久精品日日躁夜夜躁欧美| 国产精品国产三级国产aⅴ原创 | 欧美一区二区三区播放老司机| 综合精品久久久| 成人丝袜18视频在线观看| 国产午夜精品在线观看| 激情都市一区二区| 欧美精品一区男女天堂| 韩国av一区二区| 精品美女在线播放| 精品一区二区三区免费| 精品欧美乱码久久久久久| 美国三级日本三级久久99| 日韩精品专区在线| 6080yy午夜一二三区久久| 亚洲成人综合在线| 欧亚洲嫩模精品一区三区| 亚洲一区视频在线| 在线播放视频一区| 日本不卡的三区四区五区| 欧美一区二区视频免费观看| 日本一区中文字幕| 精品国产一区二区三区久久久蜜月| 日韩高清在线一区| 精品福利视频一区二区三区| 国产另类ts人妖一区二区| 国产日产欧美一区| 99国产欧美另类久久久精品| 亚洲日本在线观看| 欧美无砖专区一中文字| 日韩精品1区2区3区| 日韩免费观看高清完整版| 国产一区二区三区香蕉| 国产精品视频免费看| 91丨porny丨国产| 亚洲大片一区二区三区| 91精品在线免费| 国产精品1区2区3区在线观看| 国产精品国产自产拍高清av王其| 91麻豆国产福利精品| 婷婷开心久久网| 久久久久国产精品厨房| av电影在线观看一区| 亚洲va在线va天堂| 精品国产一区二区在线观看| 成人黄色免费短视频| 一区二区三区不卡在线观看| 欧美一区二区性放荡片| 国产aⅴ综合色| 亚洲一级在线观看| 精品国偷自产国产一区| 99久久精品国产一区| 日本亚洲天堂网| 中文欧美字幕免费| 在线成人免费观看| 成人性生交大片免费看视频在线 | 日韩三级av在线播放| 成人免费视频免费观看| 午夜电影一区二区三区| 久久久久免费观看| 欧美日韩免费在线视频| 国产伦精品一区二区三区免费迷 | 国产伦精一区二区三区| 亚洲老妇xxxxxx| 欧美不卡一区二区三区| 色综合久久九月婷婷色综合| 日本成人在线看| 亚洲另类春色校园小说| 久久久久久久综合| 欧美精品一级二级三级| 99久久久免费精品国产一区二区| 麻豆一区二区三区| 伊人婷婷欧美激情| 国产日韩影视精品| 538在线一区二区精品国产| 成人app在线| 国产乱码精品一区二区三区忘忧草| 亚洲精品老司机| 久久久久亚洲蜜桃| 欧美一二三区在线观看| 在线日韩av片| 久久久久久久久岛国免费| 欧美日韩精品综合在线| 99久久精品情趣|