com.unboundid.util
Annotation Type ThreadSafety


@Documented
@Retention(value=RUNTIME)
@Target(value={TYPE,METHOD})
public @interface ThreadSafety

This annotation type may be used to indicate the level of thread safety for a class or method. Any class or interface which does not include the ThreadSafety annotation should be assumed to be not threadsafe unless otherwise specified in the documentation for that class or interface.

If the ThreadSafety annotation is applied to a method, then it will override the class-level annotation for the scope of that method. That is, if a class is declared to be ThreadSafetyLevel.MOSTLY_NOT_THREADSAFE but a method within that class is declared to be ThreadSafetyLevel.METHOD_THREADSAFE, then that method may be invoked concurrently by multiple threads against the same instance. If a class is declared to be ThreadSafetyLevel.MOSTLY_THREADSAFE but a method within that class is declared to be ThreadSafetyLevel.METHOD_NOT_THREADSAFE, then that method must not be invoked on an instance while any other thread is attempting to access the same instance. Methods within a class may only be annotated with either the ThreadSafetyLevel.METHOD_THREADSAFE or ThreadSafetyLevel.METHOD_NOT_THREADSAFE level, and only if the class is annotated with one of the ThreadSafetyLevel.MOSTLY_THREADSAFE, ThreadSafetyLevel.MOSTLY_NOT_THREADSAFE, or ThreadSafetyLevel.INTERFACE_NOT_THREADSAFE level. Classes annotated with either the ThreadSafetyLevel.COMPLETELY_THREADSAFE or ThreadSafetyLevel.NOT_THREADSAFE levels must not provide alternate method-level ThreadSafety annotations.

Note that there are some caveats regarding thread safety and immutability of elements in the LDAP SDK that are true regardless of the stated thread safety level:


Required Element Summary
 ThreadSafetyLevel level
          The thread safety level for the associated class, interface, enum, or method.
 

Element Detail

level

public abstract ThreadSafetyLevel level
The thread safety level for the associated class, interface, enum, or method.