// THIS FILE IS AUTOGENERATED. DO NOT MODIFY.

<?cs if:creator_package ?>
package <?cs var:creator_package ?>;
<?cs /if ?>

/**
 * @hide
 */
@SuppressWarnings({"unchecked", "rawtypes", "Var", "WrongConstant"})
<?cs each:annotation=annotations ?>
<?cs var:annotation ?>
<?cs /each ?>
public <?cs if:creatorIsFinal ?>final<?cs /if ?> class <?cs var:creator_name ?> implements android.os.Parcelable.Creator< <?cs var:class ?> > {
    public static final int CONTENT_DESCRIPTION = 0;

    public <?cs var:creator_name ?>() {
    }

    @Override
    public <?cs var:class ?> createFromParcel(final android.os.Parcel parcel) {
        final int end = android.app.appsearch.safeparcel.SafeParcelReader.validateObjectHeader(parcel);

        <?cs each:declaration=declarations ?><?cs
          if:declaration.var_name == indicator.read_name ?>
        <?cs var:declaration.type ?> <?cs var:declaration.var_name ?> = new java.util.HashSet<Integer>();<?cs
          else ?>
        <?cs var:declaration.type ?> <?cs var:declaration.var_name ?> = <?cs var:declaration.initial_value ?>;<?cs
          /if ?>
        <?cs /each ?>

        while (parcel.dataPosition() < end) {
            final int header = android.app.appsearch.safeparcel.SafeParcelReader.readHeader(parcel);
            switch (android.app.appsearch.safeparcel.SafeParcelReader.getFieldId(header)) {
                <?cs each:field=fields ?>
                    case <?cs var:field.id ?>:
                        <?cs if:field.is_assignment ?>
                            <?cs var:field.read_name ?>
                                    = android.app.appsearch.safeparcel.SafeParcelReader.<?cs var:field.create ?>(
                                            parcel, header
                                            <?cs if:field.creator ?>, <?cs var:field.creator ?><?cs /if ?>
                                            );
                        <?cs else ?>
                            android.app.appsearch.safeparcel.SafeParcelReader.<?cs var:field.create ?>(
                                    parcel, header, <?cs var:field.read_name ?>
                                    <?cs if:field.creator ?>, <?cs var:field.creator ?><?cs /if ?>
                                    );
                        <?cs /if ?>
                        <?cs var:indicator.read_name ?>.add(<?cs var:field.id ?>);
                        break;
                <?cs /each ?>
                default:
                    android.app.appsearch.safeparcel.SafeParcelReader.skipUnknownField(parcel, header);
                    break;
            }
        }

        if (parcel.dataPosition() != end) {
            throw new android.app.appsearch.safeparcel.SafeParcelReader.ParseException("Overread allowed size end=" + end, parcel);
        }

        final <?cs var:class ?> obj = new <?cs var:class ?>(<?cs var:params ?>);

        <?cs if:call_validateContents ?>
        obj.validateContents();
        <?cs /if ?>

        return obj;
    }

    @Override
    public <?cs var:class ?>[] newArray(int size) {
        return new <?cs var:class ?>[size];
    }

    static void writeToParcel(<?cs var:class ?> obj, android.os.Parcel parcel, int flags) {
        int myStart = android.app.appsearch.safeparcel.SafeParcelWriter.beginObjectHeader(parcel);

        java.util.Set<Integer> __setFields = obj.<?cs var:indicator.write_name ?>;

        <?cs each:field=fields ?>
        <?cs if:field.write ?>
        if (__setFields.contains(<?cs var:field.id ?>)) {
            android.app.appsearch.safeparcel.SafeParcelWriter.<?cs var:field.write ?>(parcel
                    , <?cs var:field.id ?>
                    , obj.<?cs var:field.write_name ?>
                    <?cs if:field.writeWithFlags ?>, flags<?cs /if ?>
                    <?cs if:field.hasWriteNull ?>, true<?cs /if ?>
                    );
        }
        <?cs /if ?>
        <?cs /each ?>

        android.app.appsearch.safeparcel.SafeParcelWriter.finishObjectHeader(parcel, myStart);
    }
}