⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rangecursor.java

📁 berkeleyDB,强大的嵌入式数据,多个数据库的内核
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
                                        DatabaseEntry pKey,                                        DatabaseEntry data,                                        LockMode lockMode)        throws DatabaseException {        OperationStatus status;        if (!initialized) {            return getLast(key, pKey, data, lockMode);        }        if (!range.hasBound()) {            setParams(key, pKey, data);            status = doGetPrevNoDup(lockMode);            endOperation(null, status, null, null, null);            return status;        }        if (range.singleKey) {            status = OperationStatus.NOTFOUND;        } else {            status = OperationStatus.NOTFOUND;            Cursor oldCursor = beginOperation();            try {                status = doGetPrevNoDup(lockMode);                if (status == OperationStatus.SUCCESS &&                    !range.check(privKey)) {                    status = OperationStatus.NOTFOUND;                }            } finally {                endOperation(oldCursor, status, key, pKey, data);            }        }        return status;    }    public OperationStatus getSearchKey(DatabaseEntry key,                                        DatabaseEntry pKey,                                        DatabaseEntry data,                                        LockMode lockMode)        throws DatabaseException {        OperationStatus status;        if (!range.hasBound()) {            setParams(key, pKey, data);            status = doGetSearchKey(lockMode);            endOperation(null, status, null, null, null);            return status;        }        if (!range.check(key)) {            status = OperationStatus.NOTFOUND;        } else {            shareData(key, privKey);            status = doGetSearchKey(lockMode);            endOperation(null, status, key, pKey, data);        }        return status;    }    public OperationStatus getSearchBoth(DatabaseEntry key,                                         DatabaseEntry pKey,                                         DatabaseEntry data,                                         LockMode lockMode)        throws DatabaseException {        OperationStatus status;        if (!range.hasBound()) {            setParams(key, pKey, data);            status = doGetSearchBoth(lockMode);            endOperation(null, status, null, null, null);            return status;        }        if (!range.check(key)) {            status = OperationStatus.NOTFOUND;        } else {            shareData(key, privKey);            if (secCursor != null) {                shareData(pKey, privPKey);            } else {                shareData(data, privData);            }            status = doGetSearchBoth(lockMode);            endOperation(null, status, key, pKey, data);        }        return status;    }    public OperationStatus getSearchKeyRange(DatabaseEntry key,                                             DatabaseEntry pKey,                                             DatabaseEntry data,                                             LockMode lockMode)        throws DatabaseException {        OperationStatus status = OperationStatus.NOTFOUND;        if (!range.hasBound()) {            setParams(key, pKey, data);            status = doGetSearchKeyRange(lockMode);            endOperation(null, status, null, null, null);            return status;        }        Cursor oldCursor = beginOperation();        try {            shareData(key, privKey);            status = doGetSearchKeyRange(lockMode);            if (status == OperationStatus.SUCCESS &&                !range.check(privKey)) {                status = OperationStatus.NOTFOUND;            }        } finally {            endOperation(oldCursor, status, key, pKey, data);        }        return status;    }    public OperationStatus getSearchBothRange(DatabaseEntry key,                                              DatabaseEntry pKey,                                              DatabaseEntry data,                                              LockMode lockMode)        throws DatabaseException {        OperationStatus status = OperationStatus.NOTFOUND;        if (!range.hasBound()) {            setParams(key, pKey, data);            status = doGetSearchBothRange(lockMode);            endOperation(null, status, null, null, null);            return status;        }        Cursor oldCursor = beginOperation();        try {            shareData(key, privKey);            if (secCursor != null) {                shareData(pKey, privPKey);            } else {                shareData(data, privData);            }            status = doGetSearchBothRange(lockMode);            if (status == OperationStatus.SUCCESS &&                !range.check(privKey)) {                status = OperationStatus.NOTFOUND;            }        } finally {            endOperation(oldCursor, status, key, pKey, data);        }        return status;    }    public OperationStatus getSearchRecordNumber(DatabaseEntry key,                                                 DatabaseEntry pKey,                                                 DatabaseEntry data,                                                 LockMode lockMode)        throws DatabaseException {        OperationStatus status;        if (!range.hasBound()) {            setParams(key, pKey, data);            status = doGetSearchRecordNumber(lockMode);            endOperation(null, status, null, null, null);            return status;        }        if (!range.check(key)) {            status = OperationStatus.NOTFOUND;        } else {            shareData(key, privKey);            status = doGetSearchRecordNumber(lockMode);            endOperation(null, status, key, pKey, data);        }        return status;    }    public OperationStatus getNextDup(DatabaseEntry key,                                      DatabaseEntry pKey,                                      DatabaseEntry data,                                      LockMode lockMode)        throws DatabaseException {        if (!initialized) {            throw new DatabaseException("Cursor not initialized");        }        OperationStatus status;        if (!range.hasBound()) {            setParams(key, pKey, data);            status = doGetNextDup(lockMode);            endOperation(null, status, null, null, null);        } else {            status = doGetNextDup(lockMode);            endOperation(null, status, key, pKey, data);        }        return status;    }    public OperationStatus getPrevDup(DatabaseEntry key,                                      DatabaseEntry pKey,                                      DatabaseEntry data,                                      LockMode lockMode)        throws DatabaseException {        if (!initialized) {            throw new DatabaseException("Cursor not initialized");        }        OperationStatus status;        if (!range.hasBound()) {            setParams(key, pKey, data);            status = doGetPrevDup(lockMode);            endOperation(null, status, null, null, null);        } else {            status = doGetPrevDup(lockMode);            endOperation(null, status, key, pKey, data);        }        return status;    }    public OperationStatus getCurrent(DatabaseEntry key,                                      DatabaseEntry pKey,                                      DatabaseEntry data,                                      LockMode lockMode)        throws DatabaseException {        if (!initialized) {            throw new DatabaseException("Cursor not initialized");        }        if (secCursor != null && pKey != null) {            return secCursor.getCurrent(key, pKey, data, lockMode);        } else {            return cursor.getCurrent(key, data, lockMode);        }    }    /*     * Pass-thru methods.     */    public void close()        throws DatabaseException {        currentTxn.closeCursor(cursor);    }    public int count()        throws DatabaseException {	return cursor.count();    }    public OperationStatus delete()        throws DatabaseException {	return cursor.delete();    }    public OperationStatus put(DatabaseEntry key, DatabaseEntry data)        throws DatabaseException {        return cursor.put(key, data);    }    public OperationStatus putNoOverwrite(DatabaseEntry key,                                          DatabaseEntry data)        throws DatabaseException {        return cursor.putNoOverwrite(key, data);    }    public OperationStatus putNoDupData(DatabaseEntry key, DatabaseEntry data)        throws DatabaseException {        return cursor.putNoDupData(key, data);    }    public OperationStatus putCurrent(DatabaseEntry data)        throws DatabaseException {        return cursor.putCurrent(data);    }    public OperationStatus putAfter(DatabaseEntry key, DatabaseEntry data)        throws DatabaseException {        return DbCompat.putAfter(cursor, key, data);    }    public OperationStatus putBefore(DatabaseEntry key, DatabaseEntry data)        throws DatabaseException {        return DbCompat.putBefore(cursor, key, data);    }    private OperationStatus doGetFirst(LockMode lockMode)        throws DatabaseException {        if (secCursor != null && privPKey != null) {            return secCursor.getFirst(privKey, privPKey, privData, lockMode);        } else {            return cursor.getFirst(privKey, privData, lockMode);        }    }    private OperationStatus doGetLast(LockMode lockMode)        throws DatabaseException {        if (secCursor != null && privPKey != null) {            return secCursor.getLast(privKey, privPKey, privData, lockMode);        } else {            return cursor.getLast(privKey, privData, lockMode);        }    }    private OperationStatus doGetNext(LockMode lockMode)        throws DatabaseException {        if (secCursor != null && privPKey != null) {            return secCursor.getNext(privKey, privPKey, privData, lockMode);        } else {            return cursor.getNext(privKey, privData, lockMode);        }    }    private OperationStatus doGetNextDup(LockMode lockMode)        throws DatabaseException {        if (secCursor != null && privPKey != null) {            return secCursor.getNextDup(privKey, privPKey, privData, lockMode);        } else {            return cursor.getNextDup(privKey, privData, lockMode);        }    }    private OperationStatus doGetNextNoDup(LockMode lockMode)        throws DatabaseException {        if (secCursor != null && privPKey != null) {            return secCursor.getNextNoDup(privKey, privPKey, privData,                                          lockMode);        } else {            return cursor.getNextNoDup(privKey, privData, lockMode);        }    }    private OperationStatus doGetPrev(LockMode lockMode)        throws DatabaseException {        if (secCursor != null && privPKey != null) {            return secCursor.getPrev(privKey, privPKey, privData, lockMode);        } else {            return cursor.getPrev(privKey, privData, lockMode);        }    }    private OperationStatus doGetPrevDup(LockMode lockMode)        throws DatabaseException {        if (secCursor != null && privPKey != null) {            return secCursor.getPrevDup(privKey, privPKey, privData, lockMode);        } else {            return cursor.getPrevDup(privKey, privData, lockMode);        }    }    private OperationStatus doGetPrevNoDup(LockMode lockMode)        throws DatabaseException {        if (secCursor != null && privPKey != null) {            return secCursor.getPrevNoDup(privKey, privPKey, privData,                                          lockMode);        } else {            return cursor.getPrevNoDup(privKey, privData, lockMode);        }    }    private OperationStatus doGetSearchKey(LockMode lockMode)        throws DatabaseException {        if (isRecnoOrQueue && DbCompat.getRecordNumber(privKey) <= 0) {            return OperationStatus.NOTFOUND;        }        if (secCursor != null && privPKey != null) {            return secCursor.getSearchKey(privKey, privPKey, privData,                                          lockMode);        } else {            return cursor.getSearchKey(privKey, privData, lockMode);        }    }    private OperationStatus doGetSearchKeyRange(LockMode lockMode)        throws DatabaseException {        if (isRecnoOrQueue && DbCompat.getRecordNumber(privKey) <= 0) {            return OperationStatus.NOTFOUND;        }        if (secCursor != null && privPKey != null) {            return secCursor.getSearchKeyRange(privKey, privPKey, privData,                                               lockMode);        } else {            return cursor.getSearchKeyRange(privKey, privData, lockMode);        }    }    private OperationStatus doGetSearchBoth(LockMode lockMode)        throws DatabaseException {        if (isRecnoOrQueue && DbCompat.getRecordNumber(privKey) <= 0) {            return OperationStatus.NOTFOUND;        }        if (secCursor != null && privPKey != null) {            return secCursor.getSearchBoth(privKey, privPKey, privData,                                           lockMode);        } else {            return cursor.getSearchBoth(privKey, privData, lockMode);        }    }    private OperationStatus doGetSearchBothRange(LockMode lockMode)        throws DatabaseException {        if (isRecnoOrQueue && DbCompat.getRecordNumber(privKey) <= 0) {            return OperationStatus.NOTFOUND;        }        if (secCursor != null && privPKey != null) {            return secCursor.getSearchBothRange(privKey, privPKey, privData,                                                lockMode);        } else {            return cursor.getSearchBothRange(privKey, privData, lockMode);        }    }    private OperationStatus doGetSearchRecordNumber(LockMode lockMode)        throws DatabaseException {        if (DbCompat.getRecordNumber(privKey) <= 0) {            return OperationStatus.NOTFOUND;        }        if (secCursor != null && privPKey != null) {            return DbCompat.getSearchRecordNumber(secCursor, privKey, privPKey,                                                  privData, lockMode);        } else {            return DbCompat.getSearchRecordNumber(cursor, privKey, privData,                                                  lockMode);        }    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -