blob: a1457e06ed52e6d787438ca96dfb5aa2ed7fb62a [file] [log] [blame]
/*
* This file is auto-generated. DO NOT MODIFY.
*/
package android.aidl.tests.unions;
public final class UnionInUnion implements android.os.Parcelable {
// tags for union fields
public final static int first = 0; // android.aidl.tests.unions.EnumUnion first;
public final static int second = 1; // int second;
private int _tag;
private Object _value;
public UnionInUnion() {
android.aidl.tests.unions.EnumUnion _value = null;
this._tag = first;
this._value = _value;
}
private UnionInUnion(android.os.Parcel _aidl_parcel) {
readFromParcel(_aidl_parcel);
}
private UnionInUnion(int _tag, Object _value) {
this._tag = _tag;
this._value = _value;
}
public int getTag() {
return _tag;
}
// android.aidl.tests.unions.EnumUnion first;
public static UnionInUnion first(android.aidl.tests.unions.EnumUnion _value) {
return new UnionInUnion(first, _value);
}
public android.aidl.tests.unions.EnumUnion getFirst() {
_assertTag(first);
return (android.aidl.tests.unions.EnumUnion) _value;
}
public void setFirst(android.aidl.tests.unions.EnumUnion _value) {
_set(first, _value);
}
// int second;
public static UnionInUnion second(int _value) {
return new UnionInUnion(second, _value);
}
public int getSecond() {
_assertTag(second);
return (int) _value;
}
public void setSecond(int _value) {
_set(second, _value);
}
public static final android.os.Parcelable.Creator<UnionInUnion> CREATOR = new android.os.Parcelable.Creator<UnionInUnion>() {
@Override
public UnionInUnion createFromParcel(android.os.Parcel _aidl_source) {
return new UnionInUnion(_aidl_source);
}
@Override
public UnionInUnion[] newArray(int _aidl_size) {
return new UnionInUnion[_aidl_size];
}
};
@Override
public final void writeToParcel(android.os.Parcel _aidl_parcel, int _aidl_flag) {
_aidl_parcel.writeInt(_tag);
switch (_tag) {
case first:
if ((getFirst()!=null)) {
_aidl_parcel.writeInt(1);
getFirst().writeToParcel(_aidl_parcel, 0);
}
else {
_aidl_parcel.writeInt(0);
}
break;
case second:
_aidl_parcel.writeInt(getSecond());
break;
}
}
public void readFromParcel(android.os.Parcel _aidl_parcel) {
int _aidl_tag;
_aidl_tag = _aidl_parcel.readInt();
switch (_aidl_tag) {
case first: {
android.aidl.tests.unions.EnumUnion _aidl_value;
if ((0!=_aidl_parcel.readInt())) {
_aidl_value = android.aidl.tests.unions.EnumUnion.CREATOR.createFromParcel(_aidl_parcel);
}
else {
_aidl_value = null;
}
_set(_aidl_tag, _aidl_value);
return; }
case second: {
int _aidl_value;
_aidl_value = _aidl_parcel.readInt();
_set(_aidl_tag, _aidl_value);
return; }
}
throw new IllegalArgumentException("union: unknown tag: " + _aidl_tag);
}
@Override
public int describeContents() {
int _mask = 0;
switch (getTag()) {
case first:
_mask |= describeContents(getFirst());
break;
}
return _mask;
}
private int describeContents(Object _v) {
if (_v == null) return 0;
if (_v instanceof android.os.Parcelable) {
return ((android.os.Parcelable) _v).describeContents();
}
return 0;
}
@Override
public String toString() {
switch (_tag) {
case first: return "android.aidl.tests.unions.UnionInUnion.first(" + (java.util.Objects.toString(getFirst())) + ")";
case second: return "android.aidl.tests.unions.UnionInUnion.second(" + (getSecond()) + ")";
}
throw new IllegalStateException("unknown field: " + _tag);
}
@Override
public boolean equals(Object other) {
if (this == other) return true;
if (other == null) return false;
if (!(other instanceof UnionInUnion)) return false;
UnionInUnion that = (UnionInUnion)other;
if (_tag != that._tag) return false;
if (!java.util.Objects.deepEquals(_value, that._value)) return false;
return true;
}
@Override
public int hashCode() {
return java.util.Arrays.deepHashCode(java.util.Arrays.asList(_tag, _value).toArray());
}
private void _assertTag(int tag) {
if (getTag() != tag) {
throw new IllegalStateException("bad access: " + _tagString(tag) + ", " + _tagString(getTag()) + " is available.");
}
}
private String _tagString(int _tag) {
switch (_tag) {
case first: return "first";
case second: return "second";
}
throw new IllegalStateException("unknown field: " + _tag);
}
private void _set(int _tag, Object _value) {
this._tag = _tag;
this._value = _value;
}
}