// Path: autobundle/src/main/java/com/yatatsu/autobundle/AutoBundle.java
// public class AutoBundle {
// 
//     private static AutoBundleDispatcher dispatcher = new AutoBundleBindingDispatcher();
// 
//     private AutoBundle() {
//         throw new AssertionError("no instances");
//     }
// 
//     /**
//      * assign to target fields from {@link Activity#getIntent()}
//      * @param activity target activity which has {@link AutoBundleField} annotated fields.
//      */
//     public static void bind(@NonNull Activity activity) {
//         bind(activity, activity.getIntent());
//     }
// 
//     /**
//      * assign to target fields from {@link Fragment#getArguments()}.
//      *
//      * target may be {@link Fragment} or compat.
//      *
//      * @param target target Fragment which has {@link AutoBundleField} annotated fields.
//      */
//     public static void bind(@NonNull Object target) {
//         try {
//             dispatcher.bind(target);
//         } catch (Exception e) {
//             throw new RuntimeException("AutoBundle cannot bind with " + target.getClass(), e);
//         }
//     }
// 
//     /**
//      * assign arguments to target fields.
//      *
//      * @param target target which has {@link AutoBundleField} annotated fields.
//      * @param args source bundle.
//      */
//     public static void bind(@NonNull Object target, @NonNull Bundle args) {
//         try {
//             dispatcher.bind(target, args);
//         } catch (Exception e) {
//             throw new RuntimeException("AutoBundle cannot bind with " + target.getClass(), e);
//         }
//     }
// 
//     /**
//      * assign to target fields from {@link Intent#getExtras()}.
//      *
//      * target may be {@link android.app.Activity},
//      * {@link android.content.BroadcastReceiver},
//      * {@link android.app.Service} or these compatibility class.
//      *
//      * @param target target which has {@link AutoBundleField} annotated fields.
//      * @param intent source bundle.
//      */
//     public static void bind(@NonNull Object target, @NonNull Intent intent) {
//         try {
//             if (intent.getExtras() != null) {
//                 dispatcher.bind(target, intent.getExtras());
//             }
//         } catch (Exception e) {
//             throw new RuntimeException("AutoBundle cannot bind with " + target.getClass(), e);
//         }
//     }
// 
//     /**
//      * set arguments from source fields.
//      *
//      * target may be {@link android.app.Activity},
//      * {@link android.content.BroadcastReceiver},
//      * {@link android.app.Service},
//      * {@link android.app.Fragment} or these compatibility class.
//      *
//      * @param source source instance which has {@link AutoBundleField} annotated fields.
//      * @param args target bundle.
//      */
//     public static void pack(@NonNull Object source, @NonNull Bundle args) {
//         try {
//             dispatcher.pack(source, args);
//         } catch (Exception e) {
//             throw new RuntimeException("AutoBundle cannot bind with " + source.getClass(), e);
//         }
//     }
// }


import android.os.Bundle;
import androidx.annotation.IntDef;
import androidx.appcompat.app.AppCompatActivity;
import android.text.TextUtils;
import android.util.Log;
import android.widget.TextView;
import com.yatatsu.autobundle.AutoBundle;
import com.yatatsu.autobundle.AutoBundleField;
import com.yatatsu.autobundle.AutoBundleGetter;
import com.yatatsu.autobundle.AutoBundleSetter;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.util.ArrayList;
    }

    void setName(String name) {
        this.name = name;
    }

    @AutoBundleSetter(key = "optionalName")
    protected void setAltName(String name) {
        this.optionalName = name;
    }

    @AutoBundleGetter(key = "optionalName")
    public String getAltName() {
        return optionalName;
    }

    public void setExampleData2(ExampleData exampleData2) {
        this.exampleData2 = exampleData2;
    }

    public ExampleData getExampleData2() {
        return exampleData2;
    }

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        TextView view = new TextView(this);
        setContentView(view);
        if (savedInstanceState != null) {
// Path: autobundle/src/main/java/com/yatatsu/autobundle/AutoBundle.java
// public class AutoBundle {
// 
//     private static AutoBundleDispatcher dispatcher = new AutoBundleBindingDispatcher();
// 
//     private AutoBundle() {
//         throw new AssertionError("no instances");
//     }
// 
//     /**
//      * assign to target fields from {@link Activity#getIntent()}
//      * @param activity target activity which has {@link AutoBundleField} annotated fields.
//      */
//     public static void bind(@NonNull Activity activity) {
//         bind(activity, activity.getIntent());
//     }
// 
//     /**
//      * assign to target fields from {@link Fragment#getArguments()}.
//      *
//      * target may be {@link Fragment} or compat.
//      *
//      * @param target target Fragment which has {@link AutoBundleField} annotated fields.
//      */
//     public static void bind(@NonNull Object target) {
//         try {
//             dispatcher.bind(target);
//         } catch (Exception e) {
//             throw new RuntimeException("AutoBundle cannot bind with " + target.getClass(), e);
//         }
//     }
// 
//     /**
//      * assign arguments to target fields.
//      *
//      * @param target target which has {@link AutoBundleField} annotated fields.
//      * @param args source bundle.
//      */
//     public static void bind(@NonNull Object target, @NonNull Bundle args) {
//         try {
//             dispatcher.bind(target, args);
//         } catch (Exception e) {
//             throw new RuntimeException("AutoBundle cannot bind with " + target.getClass(), e);
//         }
//     }
// 
//     /**
//      * assign to target fields from {@link Intent#getExtras()}.
//      *
//      * target may be {@link android.app.Activity},
//      * {@link android.content.BroadcastReceiver},
//      * {@link android.app.Service} or these compatibility class.
//      *
//      * @param target target which has {@link AutoBundleField} annotated fields.
//      * @param intent source bundle.
//      */
//     public static void bind(@NonNull Object target, @NonNull Intent intent) {
//         try {
//             if (intent.getExtras() != null) {
//                 dispatcher.bind(target, intent.getExtras());
//             }
//         } catch (Exception e) {
//             throw new RuntimeException("AutoBundle cannot bind with " + target.getClass(), e);
//         }
//     }
// 
//     /**
//      * set arguments from source fields.
//      *
//      * target may be {@link android.app.Activity},
//      * {@link android.content.BroadcastReceiver},
//      * {@link android.app.Service},
//      * {@link android.app.Fragment} or these compatibility class.
//      *
//      * @param source source instance which has {@link AutoBundleField} annotated fields.
//      * @param args target bundle.
//      */
//     public static void pack(@NonNull Object source, @NonNull Bundle args) {
//         try {
//             dispatcher.pack(source, args);
//         } catch (Exception e) {
//             throw new RuntimeException("AutoBundle cannot bind with " + source.getClass(), e);
//         }
//     }
// }


// Path: example/src/main/java/com/yatatsu/autobundle/example/ExampleActivity.java
import android.os.Bundle;
import androidx.annotation.IntDef;
import androidx.appcompat.app.AppCompatActivity;
import android.text.TextUtils;
import android.util.Log;
import android.widget.TextView;
import com.yatatsu.autobundle.AutoBundle;
import com.yatatsu.autobundle.AutoBundleField;
import com.yatatsu.autobundle.AutoBundleGetter;
import com.yatatsu.autobundle.AutoBundleSetter;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.util.ArrayList;

    }

    void setName(String name) {
        this.name = name;
    }

    @AutoBundleSetter(key = "optionalName")
    protected void setAltName(String name) {
        this.optionalName = name;
    }

    @AutoBundleGetter(key = "optionalName")
    public String getAltName() {
        return optionalName;
    }

    public void setExampleData2(ExampleData exampleData2) {
        this.exampleData2 = exampleData2;
    }

    public ExampleData getExampleData2() {
        return exampleData2;
    }

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        TextView view = new TextView(this);
        setContentView(view);
        if (savedInstanceState != null) {
            AutoBundle.bind(this, savedInstanceState);