本文整理汇总了Java中org.dbflute.hook.AccessContext类的典型用法代码示例。如果您正苦于以下问题:Java AccessContext类的具体用法?Java AccessContext怎么用?Java AccessContext使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
AccessContext类属于org.dbflute.hook包,在下文中一共展示了AccessContext类的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: apply
import org.dbflute.hook.AccessContext; //导入依赖的package包/类
@Override
public Statement apply(final Statement base, final Description description) {
return new Statement() {
@Override
public void evaluate() throws Throwable {
accessContext = new AccessContext();
accessContext.setAccessUser(user);
accessContext.setAccessProcess(process);
accessContext.setAccessModule(module);
timestamp = defaultTimestamp;
accessContext.setAccessDateProvider(new AccessDateProvider());
accessContext.setAccessTimestampProvider(new AccessTimestampProvider());
accessContext.setAccessLocalDateProvider(new AccessLocalDateProvider());
accessContext.setAccessLocalDateTimeProvider(new AccessLocalDateTimeProvider());
AccessContext.setAccessContextOnThread(accessContext);
base.evaluate();
}
};
}
示例2: createRunnable
import org.dbflute.hook.AccessContext; //导入依赖的package包/类
protected Runnable createRunnable(ConcurrentAsyncCall call, String keyword) { // in caller thread
final Map<String, Object> threadCacheMap = inheritThreadCacheContext(call);
final AccessContext accessContext = inheritAccessContext(call);
final CallbackContext callbackContext = inheritCallbackContext(call);
final Map<String, Object> variousContextMap = findCallerVariousContextMap();
return () -> { // in new thread
prepareThreadCacheContext(call, threadCacheMap);
preparePreparedAccessContext(call, accessContext);
prepareCallbackContext(call, callbackContext);
final Object variousPreparedObj = prepareVariousContext(call, variousContextMap);
final long before = showRunning(keyword);
Throwable cause = null;
try {
call.callback();
} catch (Throwable e) {
handleAsyncCallbackException(call, before, e);
cause = e;
} finally {
showFinishing(keyword, before, cause); // should be before clearing because of using them
clearVariousContext(call, variousContextMap, variousPreparedObj);
clearCallbackContext(call);
clearPreparedAccessContext(call);
clearThreadCacheContext(call);
}
};
}
示例3: clearContextJustInCase
import org.dbflute.hook.AccessContext; //导入依赖的package包/类
/**
* Clear various contexts that might be initialized in action just in case
*/
public void clearContextJustInCase() {
TransactionTimeContext.clear();
PreparedAccessContext.clearAccessContextOnThread();
AccessContext.clearAccessContextOnThread();
CallbackContext.clearCallbackContextOnThread();
}
示例4: setAccessContextOnThread
import org.dbflute.hook.AccessContext; //导入依赖的package包/类
/**
* Set prepared access-context on thread.
* @param accessContext The context of DB access. (NotNull)
*/
public static void setAccessContextOnThread(AccessContext accessContext) {
if (accessContext == null) {
String msg = "The argument[accessContext] must not be null.";
throw new IllegalArgumentException(msg);
}
Stack<AccessContext> stack = threadLocal.get();
if (stack == null) {
stack = new Stack<AccessContext>();
threadLocal.set(stack);
}
stack.add(accessContext);
}
示例5: clearAccessContextOnThread
import org.dbflute.hook.AccessContext; //导入依赖的package包/类
/**
* Clear prepared access-context on thread.
*/
public static void clearAccessContextOnThread() {
final Stack<AccessContext> stack = threadLocal.get();
if (stack != null) {
stack.pop(); // remove latest
if (stack.isEmpty()) {
perfectlyClear();
}
}
}
示例6: beginAccessContext
import org.dbflute.hook.AccessContext; //导入依赖的package包/类
/**
* Begin access-context use for DBFlute. <br>
* You can update entities after calling this.
*/
public static void beginAccessContext() {
if (AccessContext.isExistAccessContextOnThread()) { // suspend
SuspendedAccessContext.setAccessContextOnThread(AccessContext.getAccessContextOnThread());
}
AccessContext.setAccessContextOnThread(getAccessContextOnThread());
}
示例7: endAccessContext
import org.dbflute.hook.AccessContext; //导入依赖的package包/类
/**
* End access-context use for DBFlute.
*/
public static void endAccessContext() {
AccessContext.clearAccessContextOnThread();
final AccessContext accessContext = SuspendedAccessContext.getAccessContextOnThread();
if (accessContext != null) { // resume
AccessContext.setAccessContextOnThread(accessContext);
SuspendedAccessContext.clearAccessContextOnThread();
}
}
示例8: clearAccessContextOnThread
import org.dbflute.hook.AccessContext; //导入依赖的package包/类
/**
* Clear prepared access-context on thread.
*/
public static void clearAccessContextOnThread() {
final Stack<AccessContext> stack = threadLocal.get();
if (stack != null) {
stack.pop();
if (stack.isEmpty()) {
perfectlyClear();
}
}
}
示例9: create
import org.dbflute.hook.AccessContext; //导入依赖的package包/类
public AccessContext create(AccessContextResource resource, UserTypeSupplier userTypeSupplier, UserInfoSupplier userInfoSupplier,
AppTypeSupplier appTypeSupplier) {
final AccessContext context = new AccessContext();
context.setAccessLocalDateTimeProvider(() -> timeManager.currentDateTime());
context.setAccessUserProvider(() -> buildAccessUserTrace(resource, userTypeSupplier, userInfoSupplier, appTypeSupplier));
return context;
}
示例10: createAccessContext
import org.dbflute.hook.AccessContext; //导入依赖的package包/类
protected AccessContext createAccessContext() {
AccessContext accessContext = new AccessContext();
accessContext.setAccessLocalDateTimeProvider(LocalDateTime::now);
accessContext.setAccessUserProvider(() -> {
return getAccessUser(Http.Context.current.get());
});
return accessContext;
}
示例11: save
import org.dbflute.hook.AccessContext; //导入依赖的package包/类
@Override
public void save(AccessContext accessContext) {
if (Http.Context.current.get() == null) {
final Application application = applicationProvider.get();
if (application.isTest()) {
threadLocalAccessContext.set(accessContext);
return;
}
}
Http.Context.current().args.put(Constants.CTX_ARGS_KEY_ACCESS_CONTEXT, accessContext);
}
示例12: provide
import org.dbflute.hook.AccessContext; //导入依赖的package包/类
@Override
public AccessContext provide() {
if (Http.Context.current.get() == null) {
final Application application = applicationProvider.get();
if (application.isTest()) {
return threadLocalAccessContext.get();
}
}
return (AccessContext)Http.Context.current().args.get(Constants.CTX_ARGS_KEY_ACCESS_CONTEXT);
}
示例13: setAccessContextInTest
import org.dbflute.hook.AccessContext; //导入依赖的package包/类
public static void setAccessContextInTest() {
// DBFlute AccessContextの設定
AccessContext accessContext = new AccessContext();
accessContext.setAccessLocalDateTimeProvider(LocalDateTime::now);
accessContext.setAccessUser("TESTUSER");
AccessContext.setAccessContextOnThread(accessContext);
}
示例14: arrangePreparedAccessContext
import org.dbflute.hook.AccessContext; //导入依赖的package包/类
/**
* Arrange prepared access context for DBFlute, which is used for common columns setup. <br>
* This is called by callback process so you should NOT call this directly in your action.
* @param runtime The runtime meta of action execute. (NotNull)
*/
protected void arrangePreparedAccessContext(ActionRuntime runtime) { // called by callback
final AccessContextResource resource = createAccessContextResource(runtime);
final AccessContext accessContext = accessContextArranger.arrangePreparedAccessContext(resource);
PreparedAccessContext.setAccessContextOnThread(accessContext);
}
示例15: getAccessContextOnThread
import org.dbflute.hook.AccessContext; //导入依赖的package包/类
/**
* Get prepared access-context on thread.
* @return The context of DB access. (NullAllowed)
*/
public static AccessContext getAccessContextOnThread() {
final Stack<AccessContext> stack = threadLocal.get();
return stack != null ? stack.peek() : null;
}