Groovy 2.2.1

groovy.lang
[Java] Annotation Type Singleton

java.lang.Object
  groovy.lang.Singleton

@Retention(RetentionPolicy.SOURCE)
@Target({ElementType.TYPE})
@GroovyASTTransformationClass("org.codehaus.groovy.transform.SingletonASTTransformation")
public @interface Singleton

Class annotation to make a singleton class. The singleton is obtained through normal property access using the singleton property (defaults to "instance"). Such classes can be initialized during normal static initialization of the class or lazily (on first access). To make the singleton lazy use @Singleton(lazy=true). Lazy singletons are implemented with double-checked locking and a volatile backing field. By default, no explicit constructors are allowed. To create one or more explicit constructors use @Singleton(strict=false). This could be used to:

Authors:
Alex Tkachman
Paul King


 
Optional Element Summary
boolean lazy

@default false

Returns:
if this singleton should be lazy

java.lang.String property

@default "instance"

Returns:
the singleton property name

boolean strict

@default true

Returns:
if this singleton should have strict semantics

 
Method Summary
 
Methods inherited from class Object
wait, wait, wait, equals, toString, hashCode, getClass, notify, notifyAll
 

Element Detail

lazy

public boolean lazy
@default false
Returns:
if this singleton should be lazy


property

public String property
@default "instance"
Returns:
the singleton property name


strict

public boolean strict
@default true
Returns:
if this singleton should have strict semantics


 

Copyright © 2003-2013 The Codehaus. All rights reserved.