You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
34 lines
1.2 KiB
34 lines
1.2 KiB
6 years ago
|
// Copyright 2000-2018 JetBrains s.r.o. Use of this source code is governed by the Apache 2.0 license that can be found in the LICENSE file.
|
||
|
package org.jetbrains.annotations;
|
||
|
|
||
|
import java.lang.annotation.ElementType;
|
||
|
import java.lang.annotation.Retention;
|
||
|
import java.lang.annotation.RetentionPolicy;
|
||
|
import java.lang.annotation.Target;
|
||
|
|
||
|
/**
|
||
|
* Helper annotations for asynchronous computation.
|
||
|
* Used for example in IDEA debugger for async stacktraces feature.
|
||
|
*
|
||
|
* @author egor
|
||
|
*/
|
||
|
public interface Async {
|
||
|
|
||
|
/**
|
||
|
* Indicates that the marked method schedules async computation.
|
||
|
* Scheduled object is either {@code this}, or the annotated parameter value.
|
||
|
*/
|
||
|
@Retention(RetentionPolicy.CLASS)
|
||
|
@Target({ElementType.METHOD, ElementType.CONSTRUCTOR, ElementType.PARAMETER})
|
||
|
@interface Schedule {}
|
||
|
|
||
|
/**
|
||
|
* Indicates that the marked method executes async computation.
|
||
|
* Executed object is either {@code this}, or the annotated parameter value.
|
||
|
* This object needs to match with the one annotated with {@link Schedule}
|
||
|
*/
|
||
|
@Retention(RetentionPolicy.CLASS)
|
||
|
@Target({ElementType.METHOD, ElementType.CONSTRUCTOR, ElementType.PARAMETER})
|
||
|
@interface Execute {}
|
||
|
}
|