Overview | Package | Class | Deprecated | Index | Help
| Groovy Documentation
| FRAMES NO FRAMES
SUMMARY: REQUIRED | OPTIONAL | DETAIL: ELEMENT

## groovy.transform
[Java] Annotation Type PackageScope

    java.lang.Object
      groovy.transform.PackageScope

    @Retention(RetentionPolicy.SOURCE)
    @Target({ElementType.TYPE, ElementType.METHOD, ElementType.FIELD})
    @GroovyASTTransformationClass("org.codehaus.groovy.transform.PackageScopeASTTransformation")
    public @interface PackageScope

Class, method or field annotation used for turning off Groovy's auto visibility conventions. By default, Groovy automatically turns package protected fields into properties and makes package protected methods and classes public. This annotation allows this feature to be turned off and revert back to Java behavior if needed. Place it on classes, fields or methods of interest as follows:

     @PackageScope class Bar {      // package protected
         @PackageScope int field    // package protected; not a property
         @PackageScope method(){}   // package protected
     }

or for greater control, at the class level with one or more `PackageScopeTarget` values:

     import static groovy.transform.PackageScopeTarget.*
     @PackageScope([CLASS, FIELDS])
     class Foo {              // class will have package protected scope
         int field1, field2   // both package protected
         def method(){}       // public
     }
     @PackageScope(METHODS)
     class Bar {         // public
         int field       // treated as a property
         def method1(){} // package protected
         def method2(){} // package protected
     }

This transformation is typically only used in conjunction with a third-party library or framework which relies upon package scoping.

Authors:
  Paul King

Since:
  1.8.0

Optional Element Summary
`PackageScopeTarget[]` | `value` @default {PackageScopeTarget.CLASS}

Method Summary

Methods inherited from class java.lang.Object
java.lang.Object#wait(long), java.lang.Object#wait(long, int), java.lang.Object#wait(), java.lang.Object#equals(java.lang.Object), java.lang.Object#toString(), java.lang.Object#hashCode(), java.lang.Object#getClass(), java.lang.Object#notify(), java.lang.Object#notifyAll()

Element Detail

### value

    public PackageScopeTarget[] value

  @default {PackageScopeTarget.CLASS}

Groovy Documentation