package part05.generated.v1;
//==============================================================================
//
// THIS FILE HAS BEEN GENERATED BY OBJECTFABRIC
//
//==============================================================================
@SuppressWarnings({ "hiding", "unchecked", "static-access", "unused", "cast", "rawtypes" })
public class Car extends org.objectfabric.TGenerated {
public Car(org.objectfabric.Resource resource, java.lang.String brand) {
this(resource, new Version(FIELD_COUNT), FIELD_COUNT, brand);
}
protected Car(org.objectfabric.Resource resource, org.objectfabric.TObject.Version shared, int length, java.lang.String brand) {
super(resource, shared, FIELD_COUNT);
((Version) shared)._brand = brand;
if (brand != null)
((Version) shared).setBit(BRAND_INDEX);
}
public Car(Car toCopy) {
this(toCopy.resource(), toCopy.brand());
field(toCopy.field());
}
public static final org.objectfabric.TType TYPE = new org.objectfabric.TType(part05.generated.v1.ObjectModel.instance(), part05.generated.v1.ObjectModel.PART05_GENERATED_V1_CAR_CLASS_ID);
public final java.lang.String brand() {
Version v = (Version) shared_();
return v._brand;
}
public final java.lang.String field() {
org.objectfabric.TObject.Transaction outer = current_();
org.objectfabric.TObject.Transaction inner = startRead_(outer);
Version v = (Version) getVersion32_(inner, FIELD_INDEX);
java.lang.String value = v != null ? v._field : null;
endRead_(outer, inner);
return value;
}
public final void field(java.lang.String value) {
org.objectfabric.TObject.Transaction outer = current_();
org.objectfabric.TObject.Transaction inner = startWrite_(outer);
Version v = (Version) getOrCreateVersion_(inner);
v._field = value;
v.setBit(FIELD_INDEX);
endWrite_(outer, inner);
}
public static final int BRAND_INDEX = 0;
public static final java.lang.String BRAND_NAME = "brand";
public static final org.objectfabric.TType BRAND_TYPE = org.objectfabric.Immutable.STRING.type();
public static final int FIELD_INDEX = 1;
public static final java.lang.String FIELD_NAME = "field";
public static final org.objectfabric.TType FIELD_TYPE = org.objectfabric.Immutable.STRING.type();
public static final int FIELD_COUNT = 2;
public static java.lang.String fieldName(int index) {
switch (index) {
case BRAND_INDEX:
return BRAND_NAME;
case FIELD_INDEX:
return FIELD_NAME;
default:
throw new IllegalArgumentException();
}
}
public static org.objectfabric.TType fieldType(int index) {
switch (index) {
case BRAND_INDEX:
return BRAND_TYPE;
case FIELD_INDEX:
return FIELD_TYPE;
default:
throw new IllegalArgumentException();
}
}
@Override
protected org.objectfabric.TObject.Version createVersion_() {
Version version = new Version(0);
version.setObject(this);
return version;
}
@Override
protected int classId_() {
return part05.generated.v1.ObjectModel.PART05_GENERATED_V1_CAR_CLASS_ID;
}
@Override
protected org.objectfabric.ObjectModel objectModel_() {
return part05.generated.v1.ObjectModel.instance();
}
protected static class Version extends org.objectfabric.TIndexed.Version32 {
public java.lang.String _brand;
public java.lang.String _field;
private static final int _readOnlys;
static {
int readOnlys = 0;
readOnlys = setBit(readOnlys, BRAND_INDEX);
_readOnlys = readOnlys;
}
public Version(int length) {
super(length);
}
@Override
public java.lang.String getFieldName(int index) {
return fieldName(index);
}
@Override
public org.objectfabric.TType getFieldType(int index) {
return fieldType(index);
}
@Override
public java.lang.Object getAsObject(int index) {
switch (index) {
case BRAND_INDEX:
return _brand;
case FIELD_INDEX:
return _field;
default:
return super.getAsObject(index);
}
}
@Override
public void setAsObject(int index, java.lang.Object value) {
switch (index) {
case BRAND_INDEX:
_brand = (java.lang.String) value;
break;
case FIELD_INDEX:
_field = (java.lang.String) value;
break;
default:
super.setAsObject(index, value);
break;
}
}
@Override
public void merge(org.objectfabric.TObject.Version next) {
Car.Version source = (Car.Version) next;
if (source.hasBits()) {
if (source.getBit(BRAND_INDEX))
_brand = source._brand;
if (source.getBit(FIELD_INDEX))
_field = source._field;
}
super.merge(next);
}
@Override
public int getReadOnlys() {
return _readOnlys;
}
@Override
public void writeWrite(org.objectfabric.Writer writer, int index) {
if (writer.interrupted())
writer.resume();
switch (index) {
case BRAND_INDEX: {
writer.writeString(_brand);
if (writer.interrupted()) {
writer.interrupt(null);
return;
}
break;
}
case FIELD_INDEX: {
writer.writeString(_field);
if (writer.interrupted()) {
writer.interrupt(null);
return;
}
break;
}
default: {
super.writeWrite(writer, index);
if (writer.interrupted()) {
writer.interrupt(null);
return;
}
break;
}
}
}
@Override
public void readWrite(org.objectfabric.Reader reader, int index, java.lang.Object[] versions) {
if (reader.interrupted())
reader.resume();
switch (index) {
case BRAND_INDEX: {
java.lang.String value = reader.readString();
if (reader.interrupted()) {
reader.interrupt(null);
return;
}
for (int i = versions.length - 1; i >= 0; i--)
((Version) versions[i])._brand = value;
break;
}
case FIELD_INDEX: {
java.lang.String value = reader.readString();
if (reader.interrupted()) {
reader.interrupt(null);
return;
}
for (int i = versions.length - 1; i >= 0; i--)
((Version) versions[i])._field = value;
break;
}
default: {
super.readWrite(reader, index, versions);
if (reader.interrupted()) {
reader.interrupt(null);
return;
}
break;
}
}
}
}
}