h2-1.4.197.jar
登录
|
com.h2database:h2:1.4.197
META-INF
org
h2
jdbc
message
expression
engine
upgrade
Driver.java
security
fulltext
api
compress
index
table
constraint
store
util
ValueHashMap.java
AbbaLockingDetector.java
DateTimeFunctions.java
DoneFuture.java
ColumnNamer.java
SourceCompiler.java
ToChar.java
ToDateParser.java
Tool.java
Task.java
Permutations.java
AbbaDetector.java
LazyFuture.java
SmallLRUCache.java
OsgiDataSourceFactory.java
ColumnNamerConfiguration.java
CacheHead.java
CacheSecondLevel.java
CloseWatcher.java
MergedResultSet.java
CacheWriter.java
NetUtils.java
IOUtils.java
SoftHashMap.java
DbDriverActivator.java
CacheObject.java
CacheTQ.java
Bits.java
BitField.java
DateTimeUtils.java
SortedProperties.java
LocalDateTimeUtils.java
Utils.java
Profiler.java
StringUtils.java
MathUtils.java
IntIntHashMap.java
IntArray.java
ParserUtil.java
StatementBuilder.java
DebuggingThreadLocal.java
SmallMap.java
HashBase.java
CacheLRU.java
ThreadDeadlockDetector.java
JdbcUtils.java
Cache.java
New.java
ToDateTokenizer.java
SynchronizedVerifier.java
ScriptReader.java
TempFileDeleter.java
bnf
command
tools
server
mode
jdbcx
result
JdbcDriverBackwardsCompat.java
jmx
value
schema
mvstore
LazyFuture.java
清空
类结构
/* * Copyright 2004-2018 H2 Group. Multiple-Licensed under the MPL 2.0, * and the EPL 1.0 (http://h2database.com/html/license.html). * Initial Developer: H2 Group */ package org.h2.util; import java.util.concurrent.
CancellationException
; import java.util.concurrent.
ExecutionException
; import java.util.concurrent.
Future
; import java.util.concurrent.
TimeUnit
; import org.h2.message.
DbException
; /** * Single threaded lazy future. * * @author Sergi Vladykin * * @param <T> the result type */ public abstract class
LazyFuture
<T> implements
Future
<T> { private static final int
S_READY
= 0; private static final int
S_DONE
= 1; private static final int
S_ERROR
= 2; private static final int
S_CANCELED
= 3; private int
state
=
S_READY
; private T
result
; private
Exception
error
; /** * Reset this future to the initial state. * * @return {@code false} if it was already in initial state */ public boolean
reset
() { if (
state
==
S_READY
) { return false; }
state
=
S_READY
;
result
= null;
error
= null; return true; } /** * Run computation and produce the result. * * @return the result of computation */ protected abstract T
run
() throws
Exception
; @
Override
public boolean
cancel
(boolean
mayInterruptIfRunning
) { if (
state
!=
S_READY
) { return false; }
state
=
S_CANCELED
; return true; } @
Override
public T
get
() throws
InterruptedException
,
ExecutionException
{ switch (
state
) { case
S_READY
: try {
result
=
run
();
state
=
S_DONE
; } catch (
Exception
e
) {
error
=
e
; if (
e
instanceof
InterruptedException
) { throw (
InterruptedException
)
e
; } throw new
ExecutionException
(
e
); } finally { if (
state
!=
S_DONE
) {
state
=
S_ERROR
; } } return
result
; case
S_DONE
: return
result
; case
S_ERROR
: throw new
ExecutionException
(
error
); case
S_CANCELED
: throw new
CancellationException
(); default: throw
DbException
.
throwInternalError
("" +
state
); } } @
Override
public T
get
(long
timeout
,
TimeUnit
unit
) throws
InterruptedException
,
ExecutionException
{ return
get
(); } @
Override
public boolean
isCancelled
() { return
state
==
S_CANCELED
; } @
Override
public boolean
isDone
() { return
state
!=
S_READY
; } }
查找资源
Jre/Lib
输入类名或文件名
类结构窗口