// Path: aircycle-api/src/main/java/com/github/simonpercic/aircycle/ActivityLifecycle.java
// public final class ActivityLifecycle {
// 
//     @IntDef({CREATE, START, RESUME, PAUSE, STOP, SAVE_INSTANCE_STATE, DESTROY})
//     @Retention(RetentionPolicy.SOURCE)
//     public @interface ActivityLifecycleEvent {
//     }
// 
//     public static final int CREATE = 1;
//     public static final int START = 2;
//     public static final int RESUME = 3;
//     public static final int PAUSE = 4;
//     public static final int STOP = 5;
//     public static final int SAVE_INSTANCE_STATE = 6;
//     public static final int DESTROY = 7;
// 
//     private ActivityLifecycle() {
//         // no instance
//     }
// }
// 
// Path: aircycle-compiler/src/main/java/com/github/simonpercic/aircycle/model/type/ActivityLifecycleType.java
// public enum ActivityLifecycleType {
//     CREATE,
//     START,
//     RESUME,
//     PAUSE,
//     STOP,
//     SAVE_INSTANCE_STATE,
//     DESTROY
// }


import com.github.simonpercic.aircycle.ActivityLifecycle;
import com.github.simonpercic.aircycle.model.type.ActivityLifecycleType;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Locale;
import javax.inject.Inject;
import javax.inject.Singleton;
import javax.lang.model.element.TypeElement;
import javax.lang.model.element.VariableElement;
        List<ActivityLifecycleType> result = new ArrayList<>();

        for (int value : values) {
            ActivityLifecycleType activityLifecycle = fromInt(value);
            if (activityLifecycle == null) {
                String message = String.format(Locale.US, "Field `%s` in `%s` has an invalid lifecycle type `%d`. "
                                + "Valid values are: \n"
                                + "ActivityLifecycle.CREATE (1), \n"
                                + "ActivityLifecycle.START (2), \n"
                                + "ActivityLifecycle.RESUME (3), \n"
                                + "ActivityLifecycle.PAUSE (4), \n"
                                + "ActivityLifecycle.STOP (5), \n"
                                + "ActivityLifecycle.SAVE_INSTANCE_STATE (6) or \n"
                                + "ActivityLifecycle.DESTROY (7).",
                        field.getSimpleName(),
                        enclosingElement.getQualifiedName(),
                        value);

                logger.e(message, enclosingElement);
                return null;
            }

            result.add(activityLifecycle);
        }

        return result;
    }

    private static ActivityLifecycleType fromInt(int value) {
        switch (value) {
// Path: aircycle-api/src/main/java/com/github/simonpercic/aircycle/ActivityLifecycle.java
// public final class ActivityLifecycle {
// 
//     @IntDef({CREATE, START, RESUME, PAUSE, STOP, SAVE_INSTANCE_STATE, DESTROY})
//     @Retention(RetentionPolicy.SOURCE)
//     public @interface ActivityLifecycleEvent {
//     }
// 
//     public static final int CREATE = 1;
//     public static final int START = 2;
//     public static final int RESUME = 3;
//     public static final int PAUSE = 4;
//     public static final int STOP = 5;
//     public static final int SAVE_INSTANCE_STATE = 6;
//     public static final int DESTROY = 7;
// 
//     private ActivityLifecycle() {
//         // no instance
//     }
// }
// 
// Path: aircycle-compiler/src/main/java/com/github/simonpercic/aircycle/model/type/ActivityLifecycleType.java
// public enum ActivityLifecycleType {
//     CREATE,
//     START,
//     RESUME,
//     PAUSE,
//     STOP,
//     SAVE_INSTANCE_STATE,
//     DESTROY
// }


// Path: aircycle-compiler/src/main/java/com/github/simonpercic/aircycle/manager/ActivityLifecycleConverter.java
import com.github.simonpercic.aircycle.ActivityLifecycle;
import com.github.simonpercic.aircycle.model.type.ActivityLifecycleType;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Locale;
import javax.inject.Inject;
import javax.inject.Singleton;
import javax.lang.model.element.TypeElement;
import javax.lang.model.element.VariableElement;

        List<ActivityLifecycleType> result = new ArrayList<>();

        for (int value : values) {
            ActivityLifecycleType activityLifecycle = fromInt(value);
            if (activityLifecycle == null) {
                String message = String.format(Locale.US, "Field `%s` in `%s` has an invalid lifecycle type `%d`. "
                                + "Valid values are: \n"
                                + "ActivityLifecycle.CREATE (1), \n"
                                + "ActivityLifecycle.START (2), \n"
                                + "ActivityLifecycle.RESUME (3), \n"
                                + "ActivityLifecycle.PAUSE (4), \n"
                                + "ActivityLifecycle.STOP (5), \n"
                                + "ActivityLifecycle.SAVE_INSTANCE_STATE (6) or \n"
                                + "ActivityLifecycle.DESTROY (7).",
                        field.getSimpleName(),
                        enclosingElement.getQualifiedName(),
                        value);

                logger.e(message, enclosingElement);
                return null;
            }

            result.add(activityLifecycle);
        }

        return result;
    }

    private static ActivityLifecycleType fromInt(int value) {
        switch (value) {
            case ActivityLifecycle.CREATE: