// Path: sample/src/main/java/com/sys1yagi/fragmentcreator/model/Product.java
// public class Product {
// 
//     public int id;
// 
//     public String name;
// 
//     public int getId() {
//         return id;
//     }
// 
//     public void setId(int id) {
//         this.id = id;
//     }
// 
//     public String getName() {
//         return name;
//     }
// 
//     public void setName(String name) {
//         this.name = name;
//     }
// }
// 
// Path: sample/src/main/java/com/sys1yagi/fragmentcreator/model/Shop.java
// public class Shop implements Parcelable {
// 
//     int id;
// 
//     String name;
// 
//     public Shop(int id, String name) {
//         this.id = id;
//         this.name = name;
//     }
// 
//     public int getId() {
//         return id;
//     }
// 
//     public String getName() {
//         return name;
//     }
// 
//     @Override
//     public int describeContents() {
//         return 0;
//     }
// 
//     @Override
//     public void writeToParcel(Parcel dest, int flags) {
//         dest.writeInt(this.id);
//         dest.writeString(this.name);
//     }
// 
//     public Shop() {
//     }
// 
//     protected Shop(Parcel in) {
//         this.id = in.readInt();
//         this.name = in.readString();
//     }
// 
//     public static final Parcelable.Creator<Shop> CREATOR = new Parcelable.Creator<Shop>() {
//         public Shop createFromParcel(Parcel source) {
//             return new Shop(source);
//         }
// 
//         public Shop[] newArray(int size) {
//             return new Shop[size];
//         }
//     };
// }


import com.sys1yagi.fragmentcreator.R;
import com.sys1yagi.fragmentcreator.annotation.FragmentCreator;
import com.sys1yagi.fragmentcreator.model.Product;
import com.sys1yagi.fragmentcreator.model.Shop;
import android.os.Bundle;
import androidx.annotation.Nullable;
import androidx.fragment.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.Toast;
import java.util.ArrayList;
import java.util.List;

    void openFragment(String title) {
        switch (title) {
            case REQUIRED_ARGUMENTS:
                openRequiredArgumentsFragment();
                break;
            case OPTIONAL_ARGUMENTS:
                openOptionalArgumentsFragment();
                break;
            case NO_ARGUMENTS:
                openNoArgumentsFragment();
                break;
            case DEFAULT_VALUES:
                openDefaultValueArgumentsFragment();
                break;
            case TYPE_SERIALIZER:
                openTypeSerializerFragment();
                break;
            default:
                Toast.makeText(getContext(), "Not Yet Implemented...", Toast.LENGTH_SHORT).show();
        }
    }

    void openRequiredArgumentsFragment() {
        getFragmentManager()
                .beginTransaction()
                .addToBackStack(REQUIRED_ARGUMENTS)
                .replace(
                        R.id.container,
                        RequiredArgumentsFragmentCreator
// Path: sample/src/main/java/com/sys1yagi/fragmentcreator/model/Product.java
// public class Product {
// 
//     public int id;
// 
//     public String name;
// 
//     public int getId() {
//         return id;
//     }
// 
//     public void setId(int id) {
//         this.id = id;
//     }
// 
//     public String getName() {
//         return name;
//     }
// 
//     public void setName(String name) {
//         this.name = name;
//     }
// }
// 
// Path: sample/src/main/java/com/sys1yagi/fragmentcreator/model/Shop.java
// public class Shop implements Parcelable {
// 
//     int id;
// 
//     String name;
// 
//     public Shop(int id, String name) {
//         this.id = id;
//         this.name = name;
//     }
// 
//     public int getId() {
//         return id;
//     }
// 
//     public String getName() {
//         return name;
//     }
// 
//     @Override
//     public int describeContents() {
//         return 0;
//     }
// 
//     @Override
//     public void writeToParcel(Parcel dest, int flags) {
//         dest.writeInt(this.id);
//         dest.writeString(this.name);
//     }
// 
//     public Shop() {
//     }
// 
//     protected Shop(Parcel in) {
//         this.id = in.readInt();
//         this.name = in.readString();
//     }
// 
//     public static final Parcelable.Creator<Shop> CREATOR = new Parcelable.Creator<Shop>() {
//         public Shop createFromParcel(Parcel source) {
//             return new Shop(source);
//         }
// 
//         public Shop[] newArray(int size) {
//             return new Shop[size];
//         }
//     };
// }


// Path: sample/src/main/java/com/sys1yagi/fragmentcreator/fragment/MainFragment.java
import com.sys1yagi.fragmentcreator.R;
import com.sys1yagi.fragmentcreator.annotation.FragmentCreator;
import com.sys1yagi.fragmentcreator.model.Product;
import com.sys1yagi.fragmentcreator.model.Shop;
import android.os.Bundle;
import androidx.annotation.Nullable;
import androidx.fragment.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.Toast;
import java.util.ArrayList;
import java.util.List;


    void openFragment(String title) {
        switch (title) {
            case REQUIRED_ARGUMENTS:
                openRequiredArgumentsFragment();
                break;
            case OPTIONAL_ARGUMENTS:
                openOptionalArgumentsFragment();
                break;
            case NO_ARGUMENTS:
                openNoArgumentsFragment();
                break;
            case DEFAULT_VALUES:
                openDefaultValueArgumentsFragment();
                break;
            case TYPE_SERIALIZER:
                openTypeSerializerFragment();
                break;
            default:
                Toast.makeText(getContext(), "Not Yet Implemented...", Toast.LENGTH_SHORT).show();
        }
    }

    void openRequiredArgumentsFragment() {
        getFragmentManager()
                .beginTransaction()
                .addToBackStack(REQUIRED_ARGUMENTS)
                .replace(
                        R.id.container,
                        RequiredArgumentsFragmentCreator
                                .newBuilder("Hello Fragment Creator", new Shop(10, "Fragment Creator Store"))