package java.lang.annotation {
import java.lang.Class__;
import java.lang.Enum;
import java.lang.JavaArray;
import java.lang.System;
public class RetentionPolicy extends java.lang.Enum {
  private static var _CLASS : java.lang.annotation.RetentionPolicy;
  public static function get CLASS() : java.lang.annotation.RetentionPolicy {
    if (_CLASS=== null) {
      _CLASS = new RetentionPolicy("CLASS", 0);
    }
    return _CLASS;
  }
  private static var _RUNTIME : RetentionPolicy;
  public static function get RUNTIME() : RetentionPolicy {
    if (_RUNTIME=== null) {
      _RUNTIME = new RetentionPolicy("RUNTIME", 1);
    }
    return _RUNTIME;
  }
  private static var _SOURCE : RetentionPolicy;
  public static function get SOURCE() : RetentionPolicy {
    if (_SOURCE=== null) {
      _SOURCE = new RetentionPolicy("SOURCE", 2);
    }
    return _SOURCE;
  }
  private static var ENUM$VALUES: JavaArray;
  function RetentionPolicy(arg0: String, arg1: int) {
    super(arg0, arg1);
    return;
  }
  public static function values(): JavaArray {
    if (ENUM$VALUES === null) {
      var tab : JavaArray = new JavaArray("[Ljava/lang/annotation/RetentionPolicy;").lengths(3);
      tab[0] = CLASS;
      tab[1] = RUNTIME;
      tab[2] = SOURCE;
      ENUM$VALUES = tab;
    }
    var length: int = ENUM$VALUES.length;
    var tab2 : JavaArray = new JavaArray("[Ljava/lang/annotation/RetentionPolicy;").lengths(3);
    System.arraycopy__Ljava_lang_Object_2ILjava_lang_Object_2II(ENUM$VALUES, 0, tab2, 0, length);
    return tab2;
  }
  public static function valueOf(arg0: String): RetentionPolicy {
    return java.lang.annotation.RetentionPolicy(Enum.valueOf__Ljava_lang_Class_2Ljava_lang_String_2(Class__.forName__Ljava_lang_String_2("java.lang.annotation.RetentionPolicy"), arg0));
  }
}
}
