http://git-wip-us.apache.org/repos/asf/gora/blob/89683c74/gora-cassandra/src/examples/java/org/apache/gora/cassandra/example/generated/AvroSerialization/CassandraRecord.java ---------------------------------------------------------------------- diff --git a/gora-cassandra/src/examples/java/org/apache/gora/cassandra/example/generated/AvroSerialization/CassandraRecord.java b/gora-cassandra/src/examples/java/org/apache/gora/cassandra/example/generated/AvroSerialization/CassandraRecord.java new file mode 100644 index 0000000..da320ab --- /dev/null +++ b/gora-cassandra/src/examples/java/org/apache/gora/cassandra/example/generated/AvroSerialization/CassandraRecord.java @@ -0,0 +1,1524 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the" + * License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * <p> + * http://www.apache.org/licenses/LICENSE-2.0 + * <p> + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.gora.cassandra.example.generated.AvroSerialization; + +/** + * This object created to used as Persistent Object to test cassandra data store + */ +public class CassandraRecord extends org.apache.gora.persistency.impl.PersistentBase implements org.apache.avro.specific.SpecificRecord, org.apache.gora.persistency.Persistent { + public static final org.apache.avro.Schema SCHEMA$ = new org.apache.avro.Schema.Parser().parse("{\"type\":\"record\",\"name\":\"CassandraRecord\",\"namespace\":\"org.apache.gora.cassandra.example.generated.AvroSerialization\",\"doc\":\"This object created to used as Persistent Object to test cassandra data store\",\"fields\":[{\"name\":\"dataString\",\"type\":\"string\",\"default\":\"\"},{\"name\":\"dataInt\",\"type\":\"int\",\"default\":0},{\"name\":\"dataLong\",\"type\":[\"null\",\"long\"],\"default\":null},{\"name\":\"dataDouble\",\"type\":[\"null\",\"double\"],\"default\":null},{\"name\":\"dataBytes\",\"type\":[\"null\",\"bytes\"],\"default\":null},{\"name\":\"arrayInt\",\"type\":{\"type\":\"array\",\"items\":\"int\"},\"default\":null},{\"name\":\"arrayString\",\"type\":{\"type\":\"array\",\"items\":\"string\"},\"default\":null},{\"name\":\"arrayLong\",\"type\":{\"type\":\"array\",\"items\":\"long\"},\"default\":null},{\"name\":\"arrayDouble\",\"type\":{\"type\":\"array\",\"it ems\":\"double\"},\"default\":null},{\"name\":\"mapInt\",\"type\":{\"type\":\"map\",\"values\":\"int\"},\"default\":{}},{\"name\":\"mapString\",\"type\":{\"type\":\"map\",\"values\":\"string\"},\"default\":{}},{\"name\":\"mapLong\",\"type\":{\"type\":\"map\",\"values\":\"long\"},\"default\":{}},{\"name\":\"mapDouble\",\"type\":{\"type\":\"map\",\"values\":\"double\"},\"default\":{}}],\"default\":null}"); + public static final String[] _ALL_FIELDS = { + "dataString", + "dataInt", + "dataLong", + "dataDouble", + "dataBytes", + "arrayInt", + "arrayString", + "arrayLong", + "arrayDouble", + "mapInt", + "mapString", + "mapLong", + "mapDouble", + }; + private static final long serialVersionUID = -4030705451859358186L; + + ; + private static final Tombstone TOMBSTONE = new Tombstone(); + private static final org.apache.avro.io.DatumWriter + DATUM_WRITER$ = new org.apache.avro.specific.SpecificDatumWriter(SCHEMA$); + private static final org.apache.avro.io.DatumReader + DATUM_READER$ = new org.apache.avro.specific.SpecificDatumReader(SCHEMA$); + private java.lang.CharSequence dataString; + private int dataInt; + private java.lang.Long dataLong; + private java.lang.Double dataDouble; + private java.nio.ByteBuffer dataBytes; + private java.util.List<java.lang.Integer> arrayInt; + private java.util.List<java.lang.CharSequence> arrayString; + private java.util.List<java.lang.Long> arrayLong; + private java.util.List<java.lang.Double> arrayDouble; + private java.util.Map<java.lang.CharSequence, java.lang.Integer> mapInt; + private java.util.Map<java.lang.CharSequence, java.lang.CharSequence> mapString; + private java.util.Map<java.lang.CharSequence, java.lang.Long> mapLong; + private java.util.Map<java.lang.CharSequence, java.lang.Double> mapDouble; + + /** + * Creates a new CassandraRecord RecordBuilder + */ + public static org.apache.gora.cassandra.example.generated.AvroSerialization.CassandraRecord.Builder newBuilder() { + return new org.apache.gora.cassandra.example.generated.AvroSerialization.CassandraRecord.Builder(); + } + + /** + * Creates a new CassandraRecord RecordBuilder by copying an existing Builder + */ + public static org.apache.gora.cassandra.example.generated.AvroSerialization.CassandraRecord.Builder newBuilder(org.apache.gora.cassandra.example.generated.AvroSerialization.CassandraRecord.Builder other) { + return new org.apache.gora.cassandra.example.generated.AvroSerialization.CassandraRecord.Builder(other); + } + + /** + * Creates a new CassandraRecord RecordBuilder by copying an existing CassandraRecord instance + */ + public static org.apache.gora.cassandra.example.generated.AvroSerialization.CassandraRecord.Builder newBuilder(org.apache.gora.cassandra.example.generated.AvroSerialization.CassandraRecord other) { + return new org.apache.gora.cassandra.example.generated.AvroSerialization.CassandraRecord.Builder(other); + } + + private static java.nio.ByteBuffer deepCopyToReadOnlyBuffer( + java.nio.ByteBuffer input) { + java.nio.ByteBuffer copy = java.nio.ByteBuffer.allocate(input.capacity()); + int position = input.position(); + input.reset(); + int mark = input.position(); + int limit = input.limit(); + input.rewind(); + input.limit(input.capacity()); + copy.put(input); + input.rewind(); + copy.rewind(); + input.position(mark); + input.mark(); + copy.position(mark); + copy.mark(); + input.position(position); + copy.position(position); + input.limit(limit); + copy.limit(limit); + return copy.asReadOnlyBuffer(); + } + + /** + * Gets the total field count. + * + * @return int field count + */ + public int getFieldsCount() { + return CassandraRecord._ALL_FIELDS.length; + } + + public org.apache.avro.Schema getSchema() { + return SCHEMA$; + } + + // Used by DatumWriter. Applications should not call. + public java.lang.Object get(int field$) { + switch (field$) { + case 0: + return dataString; + case 1: + return dataInt; + case 2: + return dataLong; + case 3: + return dataDouble; + case 4: + return dataBytes; + case 5: + return arrayInt; + case 6: + return arrayString; + case 7: + return arrayLong; + case 8: + return arrayDouble; + case 9: + return mapInt; + case 10: + return mapString; + case 11: + return mapLong; + case 12: + return mapDouble; + default: + throw new org.apache.avro.AvroRuntimeException("Bad index"); + } + } + + // Used by DatumReader. Applications should not call. + @SuppressWarnings(value = "unchecked") + public void put(int field$, java.lang.Object value) { + switch (field$) { + case 0: + dataString = (java.lang.CharSequence) (value); + break; + case 1: + dataInt = (java.lang.Integer) (value); + break; + case 2: + dataLong = (java.lang.Long) (value); + break; + case 3: + dataDouble = (java.lang.Double) (value); + break; + case 4: + dataBytes = (java.nio.ByteBuffer) (value); + break; + case 5: + arrayInt = (java.util.List<java.lang.Integer>) ((value instanceof org.apache.gora.persistency.Dirtyable) ? value : new org.apache.gora.persistency.impl.DirtyListWrapper((java.util.List) value)); + break; + case 6: + arrayString = (java.util.List<java.lang.CharSequence>) ((value instanceof org.apache.gora.persistency.Dirtyable) ? value : new org.apache.gora.persistency.impl.DirtyListWrapper((java.util.List) value)); + break; + case 7: + arrayLong = (java.util.List<java.lang.Long>) ((value instanceof org.apache.gora.persistency.Dirtyable) ? value : new org.apache.gora.persistency.impl.DirtyListWrapper((java.util.List) value)); + break; + case 8: + arrayDouble = (java.util.List<java.lang.Double>) ((value instanceof org.apache.gora.persistency.Dirtyable) ? value : new org.apache.gora.persistency.impl.DirtyListWrapper((java.util.List) value)); + break; + case 9: + mapInt = (java.util.Map<java.lang.CharSequence, java.lang.Integer>) ((value instanceof org.apache.gora.persistency.Dirtyable) ? value : new org.apache.gora.persistency.impl.DirtyMapWrapper((java.util.Map) value)); + break; + case 10: + mapString = (java.util.Map<java.lang.CharSequence, java.lang.CharSequence>) ((value instanceof org.apache.gora.persistency.Dirtyable) ? value : new org.apache.gora.persistency.impl.DirtyMapWrapper((java.util.Map) value)); + break; + case 11: + mapLong = (java.util.Map<java.lang.CharSequence, java.lang.Long>) ((value instanceof org.apache.gora.persistency.Dirtyable) ? value : new org.apache.gora.persistency.impl.DirtyMapWrapper((java.util.Map) value)); + break; + case 12: + mapDouble = (java.util.Map<java.lang.CharSequence, java.lang.Double>) ((value instanceof org.apache.gora.persistency.Dirtyable) ? value : new org.apache.gora.persistency.impl.DirtyMapWrapper((java.util.Map) value)); + break; + default: + throw new org.apache.avro.AvroRuntimeException("Bad index"); + } + } + + /** + * Gets the value of the 'dataString' field. + */ + public java.lang.CharSequence getDataString() { + return dataString; + } + + /** + * Sets the value of the 'dataString' field. + * + * @param value the value to set. + */ + public void setDataString(java.lang.CharSequence value) { + this.dataString = value; + setDirty(0); + } + + /** + * Checks the dirty status of the 'dataString' field. A field is dirty if it represents a change that has not yet been written to the database. + * + * @param value the value to set. + */ + public boolean isDataStringDirty() { + return isDirty(0); + } + + /** + * Gets the value of the 'dataInt' field. + */ + public java.lang.Integer getDataInt() { + return dataInt; + } + + /** + * Sets the value of the 'dataInt' field. + * + * @param value the value to set. + */ + public void setDataInt(java.lang.Integer value) { + this.dataInt = value; + setDirty(1); + } + + /** + * Checks the dirty status of the 'dataInt' field. A field is dirty if it represents a change that has not yet been written to the database. + * + * @param value the value to set. + */ + public boolean isDataIntDirty() { + return isDirty(1); + } + + /** + * Gets the value of the 'dataLong' field. + */ + public java.lang.Long getDataLong() { + return dataLong; + } + + /** + * Sets the value of the 'dataLong' field. + * + * @param value the value to set. + */ + public void setDataLong(java.lang.Long value) { + this.dataLong = value; + setDirty(2); + } + + /** + * Checks the dirty status of the 'dataLong' field. A field is dirty if it represents a change that has not yet been written to the database. + * + * @param value the value to set. + */ + public boolean isDataLongDirty() { + return isDirty(2); + } + + /** + * Gets the value of the 'dataDouble' field. + */ + public java.lang.Double getDataDouble() { + return dataDouble; + } + + /** + * Sets the value of the 'dataDouble' field. + * + * @param value the value to set. + */ + public void setDataDouble(java.lang.Double value) { + this.dataDouble = value; + setDirty(3); + } + + /** + * Checks the dirty status of the 'dataDouble' field. A field is dirty if it represents a change that has not yet been written to the database. + * + * @param value the value to set. + */ + public boolean isDataDoubleDirty() { + return isDirty(3); + } + + /** + * Gets the value of the 'dataBytes' field. + */ + public java.nio.ByteBuffer getDataBytes() { + return dataBytes; + } + + /** + * Sets the value of the 'dataBytes' field. + * + * @param value the value to set. + */ + public void setDataBytes(java.nio.ByteBuffer value) { + this.dataBytes = value; + setDirty(4); + } + + /** + * Checks the dirty status of the 'dataBytes' field. A field is dirty if it represents a change that has not yet been written to the database. + * + * @param value the value to set. + */ + public boolean isDataBytesDirty() { + return isDirty(4); + } + + /** + * Gets the value of the 'arrayInt' field. + */ + public java.util.List<java.lang.Integer> getArrayInt() { + return arrayInt; + } + + /** + * Sets the value of the 'arrayInt' field. + * + * @param value the value to set. + */ + public void setArrayInt(java.util.List<java.lang.Integer> value) { + this.arrayInt = (value instanceof org.apache.gora.persistency.Dirtyable) ? value : new org.apache.gora.persistency.impl.DirtyListWrapper(value); + setDirty(5); + } + + /** + * Checks the dirty status of the 'arrayInt' field. A field is dirty if it represents a change that has not yet been written to the database. + * + * @param value the value to set. + */ + public boolean isArrayIntDirty() { + return isDirty(5); + } + + /** + * Gets the value of the 'arrayString' field. + */ + public java.util.List<java.lang.CharSequence> getArrayString() { + return arrayString; + } + + /** + * Sets the value of the 'arrayString' field. + * + * @param value the value to set. + */ + public void setArrayString(java.util.List<java.lang.CharSequence> value) { + this.arrayString = (value instanceof org.apache.gora.persistency.Dirtyable) ? value : new org.apache.gora.persistency.impl.DirtyListWrapper(value); + setDirty(6); + } + + /** + * Checks the dirty status of the 'arrayString' field. A field is dirty if it represents a change that has not yet been written to the database. + * + * @param value the value to set. + */ + public boolean isArrayStringDirty() { + return isDirty(6); + } + + /** + * Gets the value of the 'arrayLong' field. + */ + public java.util.List<java.lang.Long> getArrayLong() { + return arrayLong; + } + + /** + * Sets the value of the 'arrayLong' field. + * + * @param value the value to set. + */ + public void setArrayLong(java.util.List<java.lang.Long> value) { + this.arrayLong = (value instanceof org.apache.gora.persistency.Dirtyable) ? value : new org.apache.gora.persistency.impl.DirtyListWrapper(value); + setDirty(7); + } + + /** + * Checks the dirty status of the 'arrayLong' field. A field is dirty if it represents a change that has not yet been written to the database. + * + * @param value the value to set. + */ + public boolean isArrayLongDirty() { + return isDirty(7); + } + + /** + * Gets the value of the 'arrayDouble' field. + */ + public java.util.List<java.lang.Double> getArrayDouble() { + return arrayDouble; + } + + /** + * Sets the value of the 'arrayDouble' field. + * + * @param value the value to set. + */ + public void setArrayDouble(java.util.List<java.lang.Double> value) { + this.arrayDouble = (value instanceof org.apache.gora.persistency.Dirtyable) ? value : new org.apache.gora.persistency.impl.DirtyListWrapper(value); + setDirty(8); + } + + /** + * Checks the dirty status of the 'arrayDouble' field. A field is dirty if it represents a change that has not yet been written to the database. + * + * @param value the value to set. + */ + public boolean isArrayDoubleDirty() { + return isDirty(8); + } + + /** + * Gets the value of the 'mapInt' field. + */ + public java.util.Map<java.lang.CharSequence, java.lang.Integer> getMapInt() { + return mapInt; + } + + /** + * Sets the value of the 'mapInt' field. + * + * @param value the value to set. + */ + public void setMapInt(java.util.Map<java.lang.CharSequence, java.lang.Integer> value) { + this.mapInt = (value instanceof org.apache.gora.persistency.Dirtyable) ? value : new org.apache.gora.persistency.impl.DirtyMapWrapper(value); + setDirty(9); + } + + /** + * Checks the dirty status of the 'mapInt' field. A field is dirty if it represents a change that has not yet been written to the database. + * + * @param value the value to set. + */ + public boolean isMapIntDirty() { + return isDirty(9); + } + + /** + * Gets the value of the 'mapString' field. + */ + public java.util.Map<java.lang.CharSequence, java.lang.CharSequence> getMapString() { + return mapString; + } + + /** + * Sets the value of the 'mapString' field. + * + * @param value the value to set. + */ + public void setMapString(java.util.Map<java.lang.CharSequence, java.lang.CharSequence> value) { + this.mapString = (value instanceof org.apache.gora.persistency.Dirtyable) ? value : new org.apache.gora.persistency.impl.DirtyMapWrapper(value); + setDirty(10); + } + + /** + * Checks the dirty status of the 'mapString' field. A field is dirty if it represents a change that has not yet been written to the database. + * + * @param value the value to set. + */ + public boolean isMapStringDirty() { + return isDirty(10); + } + + /** + * Gets the value of the 'mapLong' field. + */ + public java.util.Map<java.lang.CharSequence, java.lang.Long> getMapLong() { + return mapLong; + } + + /** + * Sets the value of the 'mapLong' field. + * + * @param value the value to set. + */ + public void setMapLong(java.util.Map<java.lang.CharSequence, java.lang.Long> value) { + this.mapLong = (value instanceof org.apache.gora.persistency.Dirtyable) ? value : new org.apache.gora.persistency.impl.DirtyMapWrapper(value); + setDirty(11); + } + + /** + * Checks the dirty status of the 'mapLong' field. A field is dirty if it represents a change that has not yet been written to the database. + * + * @param value the value to set. + */ + public boolean isMapLongDirty() { + return isDirty(11); + } + + /** + * Gets the value of the 'mapDouble' field. + */ + public java.util.Map<java.lang.CharSequence, java.lang.Double> getMapDouble() { + return mapDouble; + } + + /** + * Sets the value of the 'mapDouble' field. + * + * @param value the value to set. + */ + public void setMapDouble(java.util.Map<java.lang.CharSequence, java.lang.Double> value) { + this.mapDouble = (value instanceof org.apache.gora.persistency.Dirtyable) ? value : new org.apache.gora.persistency.impl.DirtyMapWrapper(value); + setDirty(12); + } + + /** + * Checks the dirty status of the 'mapDouble' field. A field is dirty if it represents a change that has not yet been written to the database. + * + * @param value the value to set. + */ + public boolean isMapDoubleDirty() { + return isDirty(12); + } + + public CassandraRecord.Tombstone getTombstone() { + return TOMBSTONE; + } + + public CassandraRecord newInstance() { + return newBuilder().build(); + } + + /** + * Writes AVRO data bean to output stream in the form of AVRO Binary encoding format. This will transform + * AVRO data bean from its Java object form to it s serializable form. + * + * @param out java.io.ObjectOutput output stream to write data bean in serializable form + */ + @Override + public void writeExternal(java.io.ObjectOutput out) + throws java.io.IOException { + out.write(super.getDirtyBytes().array()); + DATUM_WRITER$.write(this, org.apache.avro.io.EncoderFactory.get() + .directBinaryEncoder((java.io.OutputStream) out, + null)); + } + + /** + * Reads AVRO data bean from input stream in it s AVRO Binary encoding format to Java object format. + * This will transform AVRO data bean from it s serializable form to deserialized Java object form. + * + * @param in java.io.ObjectOutput input stream to read data bean in serializable form + */ + @Override + public void readExternal(java.io.ObjectInput in) + throws java.io.IOException { + byte[] __g__dirty = new byte[getFieldsCount()]; + in.read(__g__dirty); + super.setDirtyBytes(java.nio.ByteBuffer.wrap(__g__dirty)); + DATUM_READER$.read(this, org.apache.avro.io.DecoderFactory.get() + .directBinaryDecoder((java.io.InputStream) in, + null)); + } + + /** + * Enum containing all data bean's fields. + */ + public static enum Field { + DATA_STRING(0, "dataString"), + DATA_INT(1, "dataInt"), + DATA_LONG(2, "dataLong"), + DATA_DOUBLE(3, "dataDouble"), + DATA_BYTES(4, "dataBytes"), + ARRAY_INT(5, "arrayInt"), + ARRAY_STRING(6, "arrayString"), + ARRAY_LONG(7, "arrayLong"), + ARRAY_DOUBLE(8, "arrayDouble"), + MAP_INT(9, "mapInt"), + MAP_STRING(10, "mapString"), + MAP_LONG(11, "mapLong"), + MAP_DOUBLE(12, "mapDouble"),; + /** + * Field's index. + */ + private int index; + + /** + * Field's name. + */ + private String name; + + /** + * Field's constructor + * + * @param index field's index. + * @param name field's name. + */ + Field(int index, String name) { + this.index = index; + this.name = name; + } + + /** + * Gets field's index. + * + * @return int field's index. + */ + public int getIndex() { + return index; + } + + /** + * Gets field's name. + * + * @return String field's name. + */ + public String getName() { + return name; + } + + /** + * Gets field's attributes to string. + * + * @return String field's attributes to string. + */ + public String toString() { + return name; + } + } + + /** + * RecordBuilder for CassandraRecord instances. + */ + public static class Builder extends org.apache.avro.specific.SpecificRecordBuilderBase<CassandraRecord> + implements org.apache.avro.data.RecordBuilder<CassandraRecord> { + + private java.lang.CharSequence dataString; + private int dataInt; + private java.lang.Long dataLong; + private java.lang.Double dataDouble; + private java.nio.ByteBuffer dataBytes; + private java.util.List<java.lang.Integer> arrayInt; + private java.util.List<java.lang.CharSequence> arrayString; + private java.util.List<java.lang.Long> arrayLong; + private java.util.List<java.lang.Double> arrayDouble; + private java.util.Map<java.lang.CharSequence, java.lang.Integer> mapInt; + private java.util.Map<java.lang.CharSequence, java.lang.CharSequence> mapString; + private java.util.Map<java.lang.CharSequence, java.lang.Long> mapLong; + private java.util.Map<java.lang.CharSequence, java.lang.Double> mapDouble; + + /** + * Creates a new Builder + */ + private Builder() { + super(org.apache.gora.cassandra.example.generated.AvroSerialization.CassandraRecord.SCHEMA$); + } + + /** + * Creates a Builder by copying an existing Builder + */ + private Builder(org.apache.gora.cassandra.example.generated.AvroSerialization.CassandraRecord.Builder other) { + super(other); + } + + /** + * Creates a Builder by copying an existing CassandraRecord instance + */ + private Builder(org.apache.gora.cassandra.example.generated.AvroSerialization.CassandraRecord other) { + super(org.apache.gora.cassandra.example.generated.AvroSerialization.CassandraRecord.SCHEMA$); + if (isValidValue(fields()[0], other.dataString)) { + this.dataString = (java.lang.CharSequence) data().deepCopy(fields()[0].schema(), other.dataString); + fieldSetFlags()[0] = true; + } + if (isValidValue(fields()[1], other.dataInt)) { + this.dataInt = (java.lang.Integer) data().deepCopy(fields()[1].schema(), other.dataInt); + fieldSetFlags()[1] = true; + } + if (isValidValue(fields()[2], other.dataLong)) { + this.dataLong = (java.lang.Long) data().deepCopy(fields()[2].schema(), other.dataLong); + fieldSetFlags()[2] = true; + } + if (isValidValue(fields()[3], other.dataDouble)) { + this.dataDouble = (java.lang.Double) data().deepCopy(fields()[3].schema(), other.dataDouble); + fieldSetFlags()[3] = true; + } + if (isValidValue(fields()[4], other.dataBytes)) { + this.dataBytes = (java.nio.ByteBuffer) data().deepCopy(fields()[4].schema(), other.dataBytes); + fieldSetFlags()[4] = true; + } + if (isValidValue(fields()[5], other.arrayInt)) { + this.arrayInt = (java.util.List<java.lang.Integer>) data().deepCopy(fields()[5].schema(), other.arrayInt); + fieldSetFlags()[5] = true; + } + if (isValidValue(fields()[6], other.arrayString)) { + this.arrayString = (java.util.List<java.lang.CharSequence>) data().deepCopy(fields()[6].schema(), other.arrayString); + fieldSetFlags()[6] = true; + } + if (isValidValue(fields()[7], other.arrayLong)) { + this.arrayLong = (java.util.List<java.lang.Long>) data().deepCopy(fields()[7].schema(), other.arrayLong); + fieldSetFlags()[7] = true; + } + if (isValidValue(fields()[8], other.arrayDouble)) { + this.arrayDouble = (java.util.List<java.lang.Double>) data().deepCopy(fields()[8].schema(), other.arrayDouble); + fieldSetFlags()[8] = true; + } + if (isValidValue(fields()[9], other.mapInt)) { + this.mapInt = (java.util.Map<java.lang.CharSequence, java.lang.Integer>) data().deepCopy(fields()[9].schema(), other.mapInt); + fieldSetFlags()[9] = true; + } + if (isValidValue(fields()[10], other.mapString)) { + this.mapString = (java.util.Map<java.lang.CharSequence, java.lang.CharSequence>) data().deepCopy(fields()[10].schema(), other.mapString); + fieldSetFlags()[10] = true; + } + if (isValidValue(fields()[11], other.mapLong)) { + this.mapLong = (java.util.Map<java.lang.CharSequence, java.lang.Long>) data().deepCopy(fields()[11].schema(), other.mapLong); + fieldSetFlags()[11] = true; + } + if (isValidValue(fields()[12], other.mapDouble)) { + this.mapDouble = (java.util.Map<java.lang.CharSequence, java.lang.Double>) data().deepCopy(fields()[12].schema(), other.mapDouble); + fieldSetFlags()[12] = true; + } + } + + /** + * Gets the value of the 'dataString' field + */ + public java.lang.CharSequence getDataString() { + return dataString; + } + + /** + * Sets the value of the 'dataString' field + */ + public org.apache.gora.cassandra.example.generated.AvroSerialization.CassandraRecord.Builder setDataString(java.lang.CharSequence value) { + validate(fields()[0], value); + this.dataString = value; + fieldSetFlags()[0] = true; + return this; + } + + /** + * Checks whether the 'dataString' field has been set + */ + public boolean hasDataString() { + return fieldSetFlags()[0]; + } + + /** + * Clears the value of the 'dataString' field + */ + public org.apache.gora.cassandra.example.generated.AvroSerialization.CassandraRecord.Builder clearDataString() { + dataString = null; + fieldSetFlags()[0] = false; + return this; + } + + /** + * Gets the value of the 'dataInt' field + */ + public java.lang.Integer getDataInt() { + return dataInt; + } + + /** + * Sets the value of the 'dataInt' field + */ + public org.apache.gora.cassandra.example.generated.AvroSerialization.CassandraRecord.Builder setDataInt(int value) { + validate(fields()[1], value); + this.dataInt = value; + fieldSetFlags()[1] = true; + return this; + } + + /** + * Checks whether the 'dataInt' field has been set + */ + public boolean hasDataInt() { + return fieldSetFlags()[1]; + } + + /** + * Clears the value of the 'dataInt' field + */ + public org.apache.gora.cassandra.example.generated.AvroSerialization.CassandraRecord.Builder clearDataInt() { + fieldSetFlags()[1] = false; + return this; + } + + /** + * Gets the value of the 'dataLong' field + */ + public java.lang.Long getDataLong() { + return dataLong; + } + + /** + * Sets the value of the 'dataLong' field + */ + public org.apache.gora.cassandra.example.generated.AvroSerialization.CassandraRecord.Builder setDataLong(java.lang.Long value) { + validate(fields()[2], value); + this.dataLong = value; + fieldSetFlags()[2] = true; + return this; + } + + /** + * Checks whether the 'dataLong' field has been set + */ + public boolean hasDataLong() { + return fieldSetFlags()[2]; + } + + /** + * Clears the value of the 'dataLong' field + */ + public org.apache.gora.cassandra.example.generated.AvroSerialization.CassandraRecord.Builder clearDataLong() { + dataLong = null; + fieldSetFlags()[2] = false; + return this; + } + + /** + * Gets the value of the 'dataDouble' field + */ + public java.lang.Double getDataDouble() { + return dataDouble; + } + + /** + * Sets the value of the 'dataDouble' field + */ + public org.apache.gora.cassandra.example.generated.AvroSerialization.CassandraRecord.Builder setDataDouble(java.lang.Double value) { + validate(fields()[3], value); + this.dataDouble = value; + fieldSetFlags()[3] = true; + return this; + } + + /** + * Checks whether the 'dataDouble' field has been set + */ + public boolean hasDataDouble() { + return fieldSetFlags()[3]; + } + + /** + * Clears the value of the 'dataDouble' field + */ + public org.apache.gora.cassandra.example.generated.AvroSerialization.CassandraRecord.Builder clearDataDouble() { + dataDouble = null; + fieldSetFlags()[3] = false; + return this; + } + + /** + * Gets the value of the 'dataBytes' field + */ + public java.nio.ByteBuffer getDataBytes() { + return dataBytes; + } + + /** + * Sets the value of the 'dataBytes' field + */ + public org.apache.gora.cassandra.example.generated.AvroSerialization.CassandraRecord.Builder setDataBytes(java.nio.ByteBuffer value) { + validate(fields()[4], value); + this.dataBytes = value; + fieldSetFlags()[4] = true; + return this; + } + + /** + * Checks whether the 'dataBytes' field has been set + */ + public boolean hasDataBytes() { + return fieldSetFlags()[4]; + } + + /** + * Clears the value of the 'dataBytes' field + */ + public org.apache.gora.cassandra.example.generated.AvroSerialization.CassandraRecord.Builder clearDataBytes() { + dataBytes = null; + fieldSetFlags()[4] = false; + return this; + } + + /** + * Gets the value of the 'arrayInt' field + */ + public java.util.List<java.lang.Integer> getArrayInt() { + return arrayInt; + } + + /** + * Sets the value of the 'arrayInt' field + */ + public org.apache.gora.cassandra.example.generated.AvroSerialization.CassandraRecord.Builder setArrayInt(java.util.List<java.lang.Integer> value) { + validate(fields()[5], value); + this.arrayInt = value; + fieldSetFlags()[5] = true; + return this; + } + + /** + * Checks whether the 'arrayInt' field has been set + */ + public boolean hasArrayInt() { + return fieldSetFlags()[5]; + } + + /** + * Clears the value of the 'arrayInt' field + */ + public org.apache.gora.cassandra.example.generated.AvroSerialization.CassandraRecord.Builder clearArrayInt() { + arrayInt = null; + fieldSetFlags()[5] = false; + return this; + } + + /** + * Gets the value of the 'arrayString' field + */ + public java.util.List<java.lang.CharSequence> getArrayString() { + return arrayString; + } + + /** + * Sets the value of the 'arrayString' field + */ + public org.apache.gora.cassandra.example.generated.AvroSerialization.CassandraRecord.Builder setArrayString(java.util.List<java.lang.CharSequence> value) { + validate(fields()[6], value); + this.arrayString = value; + fieldSetFlags()[6] = true; + return this; + } + + /** + * Checks whether the 'arrayString' field has been set + */ + public boolean hasArrayString() { + return fieldSetFlags()[6]; + } + + /** + * Clears the value of the 'arrayString' field + */ + public org.apache.gora.cassandra.example.generated.AvroSerialization.CassandraRecord.Builder clearArrayString() { + arrayString = null; + fieldSetFlags()[6] = false; + return this; + } + + /** + * Gets the value of the 'arrayLong' field + */ + public java.util.List<java.lang.Long> getArrayLong() { + return arrayLong; + } + + /** + * Sets the value of the 'arrayLong' field + */ + public org.apache.gora.cassandra.example.generated.AvroSerialization.CassandraRecord.Builder setArrayLong(java.util.List<java.lang.Long> value) { + validate(fields()[7], value); + this.arrayLong = value; + fieldSetFlags()[7] = true; + return this; + } + + /** + * Checks whether the 'arrayLong' field has been set + */ + public boolean hasArrayLong() { + return fieldSetFlags()[7]; + } + + /** + * Clears the value of the 'arrayLong' field + */ + public org.apache.gora.cassandra.example.generated.AvroSerialization.CassandraRecord.Builder clearArrayLong() { + arrayLong = null; + fieldSetFlags()[7] = false; + return this; + } + + /** + * Gets the value of the 'arrayDouble' field + */ + public java.util.List<java.lang.Double> getArrayDouble() { + return arrayDouble; + } + + /** + * Sets the value of the 'arrayDouble' field + */ + public org.apache.gora.cassandra.example.generated.AvroSerialization.CassandraRecord.Builder setArrayDouble(java.util.List<java.lang.Double> value) { + validate(fields()[8], value); + this.arrayDouble = value; + fieldSetFlags()[8] = true; + return this; + } + + /** + * Checks whether the 'arrayDouble' field has been set + */ + public boolean hasArrayDouble() { + return fieldSetFlags()[8]; + } + + /** + * Clears the value of the 'arrayDouble' field + */ + public org.apache.gora.cassandra.example.generated.AvroSerialization.CassandraRecord.Builder clearArrayDouble() { + arrayDouble = null; + fieldSetFlags()[8] = false; + return this; + } + + /** + * Gets the value of the 'mapInt' field + */ + public java.util.Map<java.lang.CharSequence, java.lang.Integer> getMapInt() { + return mapInt; + } + + /** + * Sets the value of the 'mapInt' field + */ + public org.apache.gora.cassandra.example.generated.AvroSerialization.CassandraRecord.Builder setMapInt(java.util.Map<java.lang.CharSequence, java.lang.Integer> value) { + validate(fields()[9], value); + this.mapInt = value; + fieldSetFlags()[9] = true; + return this; + } + + /** + * Checks whether the 'mapInt' field has been set + */ + public boolean hasMapInt() { + return fieldSetFlags()[9]; + } + + /** + * Clears the value of the 'mapInt' field + */ + public org.apache.gora.cassandra.example.generated.AvroSerialization.CassandraRecord.Builder clearMapInt() { + mapInt = null; + fieldSetFlags()[9] = false; + return this; + } + + /** + * Gets the value of the 'mapString' field + */ + public java.util.Map<java.lang.CharSequence, java.lang.CharSequence> getMapString() { + return mapString; + } + + /** + * Sets the value of the 'mapString' field + */ + public org.apache.gora.cassandra.example.generated.AvroSerialization.CassandraRecord.Builder setMapString(java.util.Map<java.lang.CharSequence, java.lang.CharSequence> value) { + validate(fields()[10], value); + this.mapString = value; + fieldSetFlags()[10] = true; + return this; + } + + /** + * Checks whether the 'mapString' field has been set + */ + public boolean hasMapString() { + return fieldSetFlags()[10]; + } + + /** + * Clears the value of the 'mapString' field + */ + public org.apache.gora.cassandra.example.generated.AvroSerialization.CassandraRecord.Builder clearMapString() { + mapString = null; + fieldSetFlags()[10] = false; + return this; + } + + /** + * Gets the value of the 'mapLong' field + */ + public java.util.Map<java.lang.CharSequence, java.lang.Long> getMapLong() { + return mapLong; + } + + /** + * Sets the value of the 'mapLong' field + */ + public org.apache.gora.cassandra.example.generated.AvroSerialization.CassandraRecord.Builder setMapLong(java.util.Map<java.lang.CharSequence, java.lang.Long> value) { + validate(fields()[11], value); + this.mapLong = value; + fieldSetFlags()[11] = true; + return this; + } + + /** + * Checks whether the 'mapLong' field has been set + */ + public boolean hasMapLong() { + return fieldSetFlags()[11]; + } + + /** + * Clears the value of the 'mapLong' field + */ + public org.apache.gora.cassandra.example.generated.AvroSerialization.CassandraRecord.Builder clearMapLong() { + mapLong = null; + fieldSetFlags()[11] = false; + return this; + } + + /** + * Gets the value of the 'mapDouble' field + */ + public java.util.Map<java.lang.CharSequence, java.lang.Double> getMapDouble() { + return mapDouble; + } + + /** + * Sets the value of the 'mapDouble' field + */ + public org.apache.gora.cassandra.example.generated.AvroSerialization.CassandraRecord.Builder setMapDouble(java.util.Map<java.lang.CharSequence, java.lang.Double> value) { + validate(fields()[12], value); + this.mapDouble = value; + fieldSetFlags()[12] = true; + return this; + } + + /** + * Checks whether the 'mapDouble' field has been set + */ + public boolean hasMapDouble() { + return fieldSetFlags()[12]; + } + + /** + * Clears the value of the 'mapDouble' field + */ + public org.apache.gora.cassandra.example.generated.AvroSerialization.CassandraRecord.Builder clearMapDouble() { + mapDouble = null; + fieldSetFlags()[12] = false; + return this; + } + + @Override + public CassandraRecord build() { + try { + CassandraRecord record = new CassandraRecord(); + record.dataString = fieldSetFlags()[0] ? this.dataString : (java.lang.CharSequence) defaultValue(fields()[0]); + record.dataInt = fieldSetFlags()[1] ? this.dataInt : (java.lang.Integer) defaultValue(fields()[1]); + record.dataLong = fieldSetFlags()[2] ? this.dataLong : (java.lang.Long) defaultValue(fields()[2]); + record.dataDouble = fieldSetFlags()[3] ? this.dataDouble : (java.lang.Double) defaultValue(fields()[3]); + record.dataBytes = fieldSetFlags()[4] ? this.dataBytes : (java.nio.ByteBuffer) defaultValue(fields()[4]); + record.arrayInt = fieldSetFlags()[5] ? this.arrayInt : (java.util.List<java.lang.Integer>) new org.apache.gora.persistency.impl.DirtyListWrapper((java.util.List) defaultValue(fields()[5])); + record.arrayString = fieldSetFlags()[6] ? this.arrayString : (java.util.List<java.lang.CharSequence>) new org.apache.gora.persistency.impl.DirtyListWrapper((java.util.List) defaultValue(fields()[6])); + record.arrayLong = fieldSetFlags()[7] ? this.arrayLong : (java.util.List<java.lang.Long>) new org.apache.gora.persistency.impl.DirtyListWrapper((java.util.List) defaultValue(fields()[7])); + record.arrayDouble = fieldSetFlags()[8] ? this.arrayDouble : (java.util.List<java.lang.Double>) new org.apache.gora.persistency.impl.DirtyListWrapper((java.util.List) defaultValue(fields()[8])); + record.mapInt = fieldSetFlags()[9] ? this.mapInt : (java.util.Map<java.lang.CharSequence, java.lang.Integer>) new org.apache.gora.persistency.impl.DirtyMapWrapper((java.util.Map) defaultValue(fields()[9])); + record.mapString = fieldSetFlags()[10] ? this.mapString : (java.util.Map<java.lang.CharSequence, java.lang.CharSequence>) new org.apache.gora.persistency.impl.DirtyMapWrapper((java.util.Map) defaultValue(fields()[10])); + record.mapLong = fieldSetFlags()[11] ? this.mapLong : (java.util.Map<java.lang.CharSequence, java.lang.Long>) new org.apache.gora.persistency.impl.DirtyMapWrapper((java.util.Map) defaultValue(fields()[11])); + record.mapDouble = fieldSetFlags()[12] ? this.mapDouble : (java.util.Map<java.lang.CharSequence, java.lang.Double>) new org.apache.gora.persistency.impl.DirtyMapWrapper((java.util.Map) defaultValue(fields()[12])); + return record; + } catch (Exception e) { + throw new org.apache.avro.AvroRuntimeException(e); + } + } + } + + public static final class Tombstone extends CassandraRecord implements org.apache.gora.persistency.Tombstone { + + private Tombstone() { + } + + /** + * Gets the value of the 'dataString' field. + */ + public java.lang.CharSequence getDataString() { + throw new java.lang.UnsupportedOperationException("Get is not supported on tombstones"); + } + + /** + * Sets the value of the 'dataString' field. + * + * @param value the value to set. + */ + public void setDataString(java.lang.CharSequence value) { + throw new java.lang.UnsupportedOperationException("Set is not supported on tombstones"); + } + + /** + * Checks the dirty status of the 'dataString' field. A field is dirty if it represents a change that has not yet been written to the database. + * + * @param value the value to set. + */ + public boolean isDataStringDirty() { + throw new java.lang.UnsupportedOperationException("IsDirty is not supported on tombstones"); + } + + /** + * Gets the value of the 'dataInt' field. + */ + public java.lang.Integer getDataInt() { + throw new java.lang.UnsupportedOperationException("Get is not supported on tombstones"); + } + + /** + * Sets the value of the 'dataInt' field. + * + * @param value the value to set. + */ + public void setDataInt(java.lang.Integer value) { + throw new java.lang.UnsupportedOperationException("Set is not supported on tombstones"); + } + + /** + * Checks the dirty status of the 'dataInt' field. A field is dirty if it represents a change that has not yet been written to the database. + * + * @param value the value to set. + */ + public boolean isDataIntDirty() { + throw new java.lang.UnsupportedOperationException("IsDirty is not supported on tombstones"); + } + + /** + * Gets the value of the 'dataLong' field. + */ + public java.lang.Long getDataLong() { + throw new java.lang.UnsupportedOperationException("Get is not supported on tombstones"); + } + + /** + * Sets the value of the 'dataLong' field. + * + * @param value the value to set. + */ + public void setDataLong(java.lang.Long value) { + throw new java.lang.UnsupportedOperationException("Set is not supported on tombstones"); + } + + /** + * Checks the dirty status of the 'dataLong' field. A field is dirty if it represents a change that has not yet been written to the database. + * + * @param value the value to set. + */ + public boolean isDataLongDirty() { + throw new java.lang.UnsupportedOperationException("IsDirty is not supported on tombstones"); + } + + /** + * Gets the value of the 'dataDouble' field. + */ + public java.lang.Double getDataDouble() { + throw new java.lang.UnsupportedOperationException("Get is not supported on tombstones"); + } + + /** + * Sets the value of the 'dataDouble' field. + * + * @param value the value to set. + */ + public void setDataDouble(java.lang.Double value) { + throw new java.lang.UnsupportedOperationException("Set is not supported on tombstones"); + } + + /** + * Checks the dirty status of the 'dataDouble' field. A field is dirty if it represents a change that has not yet been written to the database. + * + * @param value the value to set. + */ + public boolean isDataDoubleDirty() { + throw new java.lang.UnsupportedOperationException("IsDirty is not supported on tombstones"); + } + + /** + * Gets the value of the 'dataBytes' field. + */ + public java.nio.ByteBuffer getDataBytes() { + throw new java.lang.UnsupportedOperationException("Get is not supported on tombstones"); + } + + /** + * Sets the value of the 'dataBytes' field. + * + * @param value the value to set. + */ + public void setDataBytes(java.nio.ByteBuffer value) { + throw new java.lang.UnsupportedOperationException("Set is not supported on tombstones"); + } + + /** + * Checks the dirty status of the 'dataBytes' field. A field is dirty if it represents a change that has not yet been written to the database. + * + * @param value the value to set. + */ + public boolean isDataBytesDirty() { + throw new java.lang.UnsupportedOperationException("IsDirty is not supported on tombstones"); + } + + /** + * Gets the value of the 'arrayInt' field. + */ + public java.util.List<java.lang.Integer> getArrayInt() { + throw new java.lang.UnsupportedOperationException("Get is not supported on tombstones"); + } + + /** + * Sets the value of the 'arrayInt' field. + * + * @param value the value to set. + */ + public void setArrayInt(java.util.List<java.lang.Integer> value) { + throw new java.lang.UnsupportedOperationException("Set is not supported on tombstones"); + } + + /** + * Checks the dirty status of the 'arrayInt' field. A field is dirty if it represents a change that has not yet been written to the database. + * + * @param value the value to set. + */ + public boolean isArrayIntDirty() { + throw new java.lang.UnsupportedOperationException("IsDirty is not supported on tombstones"); + } + + /** + * Gets the value of the 'arrayString' field. + */ + public java.util.List<java.lang.CharSequence> getArrayString() { + throw new java.lang.UnsupportedOperationException("Get is not supported on tombstones"); + } + + /** + * Sets the value of the 'arrayString' field. + * + * @param value the value to set. + */ + public void setArrayString(java.util.List<java.lang.CharSequence> value) { + throw new java.lang.UnsupportedOperationException("Set is not supported on tombstones"); + } + + /** + * Checks the dirty status of the 'arrayString' field. A field is dirty if it represents a change that has not yet been written to the database. + * + * @param value the value to set. + */ + public boolean isArrayStringDirty() { + throw new java.lang.UnsupportedOperationException("IsDirty is not supported on tombstones"); + } + + /** + * Gets the value of the 'arrayLong' field. + */ + public java.util.List<java.lang.Long> getArrayLong() { + throw new java.lang.UnsupportedOperationException("Get is not supported on tombstones"); + } + + /** + * Sets the value of the 'arrayLong' field. + * + * @param value the value to set. + */ + public void setArrayLong(java.util.List<java.lang.Long> value) { + throw new java.lang.UnsupportedOperationException("Set is not supported on tombstones"); + } + + /** + * Checks the dirty status of the 'arrayLong' field. A field is dirty if it represents a change that has not yet been written to the database. + * + * @param value the value to set. + */ + public boolean isArrayLongDirty() { + throw new java.lang.UnsupportedOperationException("IsDirty is not supported on tombstones"); + } + + /** + * Gets the value of the 'arrayDouble' field. + */ + public java.util.List<java.lang.Double> getArrayDouble() { + throw new java.lang.UnsupportedOperationException("Get is not supported on tombstones"); + } + + /** + * Sets the value of the 'arrayDouble' field. + * + * @param value the value to set. + */ + public void setArrayDouble(java.util.List<java.lang.Double> value) { + throw new java.lang.UnsupportedOperationException("Set is not supported on tombstones"); + } + + /** + * Checks the dirty status of the 'arrayDouble' field. A field is dirty if it represents a change that has not yet been written to the database. + * + * @param value the value to set. + */ + public boolean isArrayDoubleDirty() { + throw new java.lang.UnsupportedOperationException("IsDirty is not supported on tombstones"); + } + + /** + * Gets the value of the 'mapInt' field. + */ + public java.util.Map<java.lang.CharSequence, java.lang.Integer> getMapInt() { + throw new java.lang.UnsupportedOperationException("Get is not supported on tombstones"); + } + + /** + * Sets the value of the 'mapInt' field. + * + * @param value the value to set. + */ + public void setMapInt(java.util.Map<java.lang.CharSequence, java.lang.Integer> value) { + throw new java.lang.UnsupportedOperationException("Set is not supported on tombstones"); + } + + /** + * Checks the dirty status of the 'mapInt' field. A field is dirty if it represents a change that has not yet been written to the database. + * + * @param value the value to set. + */ + public boolean isMapIntDirty() { + throw new java.lang.UnsupportedOperationException("IsDirty is not supported on tombstones"); + } + + /** + * Gets the value of the 'mapString' field. + */ + public java.util.Map<java.lang.CharSequence, java.lang.CharSequence> getMapString() { + throw new java.lang.UnsupportedOperationException("Get is not supported on tombstones"); + } + + /** + * Sets the value of the 'mapString' field. + * + * @param value the value to set. + */ + public void setMapString(java.util.Map<java.lang.CharSequence, java.lang.CharSequence> value) { + throw new java.lang.UnsupportedOperationException("Set is not supported on tombstones"); + } + + /** + * Checks the dirty status of the 'mapString' field. A field is dirty if it represents a change that has not yet been written to the database. + * + * @param value the value to set. + */ + public boolean isMapStringDirty() { + throw new java.lang.UnsupportedOperationException("IsDirty is not supported on tombstones"); + } + + /** + * Gets the value of the 'mapLong' field. + */ + public java.util.Map<java.lang.CharSequence, java.lang.Long> getMapLong() { + throw new java.lang.UnsupportedOperationException("Get is not supported on tombstones"); + } + + /** + * Sets the value of the 'mapLong' field. + * + * @param value the value to set. + */ + public void setMapLong(java.util.Map<java.lang.CharSequence, java.lang.Long> value) { + throw new java.lang.UnsupportedOperationException("Set is not supported on tombstones"); + } + + /** + * Checks the dirty status of the 'mapLong' field. A field is dirty if it represents a change that has not yet been written to the database. + * + * @param value the value to set. + */ + public boolean isMapLongDirty() { + throw new java.lang.UnsupportedOperationException("IsDirty is not supported on tombstones"); + } + + /** + * Gets the value of the 'mapDouble' field. + */ + public java.util.Map<java.lang.CharSequence, java.lang.Double> getMapDouble() { + throw new java.lang.UnsupportedOperationException("Get is not supported on tombstones"); + } + + /** + * Sets the value of the 'mapDouble' field. + * + * @param value the value to set. + */ + public void setMapDouble(java.util.Map<java.lang.CharSequence, java.lang.Double> value) { + throw new java.lang.UnsupportedOperationException("Set is not supported on tombstones"); + } + + /** + * Checks the dirty status of the 'mapDouble' field. A field is dirty if it represents a change that has not yet been written to the database. + * + * @param value the value to set. + */ + public boolean isMapDoubleDirty() { + throw new java.lang.UnsupportedOperationException("IsDirty is not supported on tombstones"); + } + + + } + +} +
http://git-wip-us.apache.org/repos/asf/gora/blob/89683c74/gora-cassandra/src/examples/java/org/apache/gora/cassandra/example/generated/nativeSerialization/ComplexTypes.java ---------------------------------------------------------------------- diff --git a/gora-cassandra/src/examples/java/org/apache/gora/cassandra/example/generated/nativeSerialization/ComplexTypes.java b/gora-cassandra/src/examples/java/org/apache/gora/cassandra/example/generated/nativeSerialization/ComplexTypes.java new file mode 100644 index 0000000..b831c97 --- /dev/null +++ b/gora-cassandra/src/examples/java/org/apache/gora/cassandra/example/generated/nativeSerialization/ComplexTypes.java @@ -0,0 +1,199 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the" + * License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * <p> + * http://www.apache.org/licenses/LICENSE-2.0 + * <p> + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.gora.cassandra.example.generated.nativeSerialization; + +import com.datastax.driver.mapping.annotations.Column; +import com.datastax.driver.mapping.annotations.PartitionKey; +import com.datastax.driver.mapping.annotations.Table; +import com.datastax.driver.mapping.annotations.Transient; +import org.apache.avro.Schema; +import org.apache.gora.persistency.Persistent; +import org.apache.gora.persistency.Tombstone; + +import java.util.List; +import java.util.Map; +import java.util.Set; +import java.util.UUID; + +/** + * Sample class for test native cassandra persistent. + */ +@Table(keyspace = "nativeTestKeySpace", name = "documents", + readConsistency = "QUORUM", + writeConsistency = "QUORUM", + caseSensitiveKeyspace = false, + caseSensitiveTable = true) +public class ComplexTypes implements Persistent { + + @Column + private List<String> listDataType; + @Column + private Map<String, String> mapDataType; + @Column + private String[] stringArrayDataType; + @Column + private int[] intArrayDataType; + @Column + private Set<String> setDataType; + @PartitionKey + @Column + private String id; + @Column + private List<UUID> listUUIDDataType; + + public ComplexTypes(String id) { + this.id = id; + } + + public ComplexTypes() { + } + + public List<UUID> getListUUIDDataType() { + return listUUIDDataType; + } + + public void setListUUIDDataType(List<UUID> listUUIDDataType) { + this.listUUIDDataType = listUUIDDataType; + } + + public List<String> getListDataType() { + return listDataType; + } + + public void setListDataType(List<String> listDataType) { + this.listDataType = listDataType; + } + + public Map<String, String> getMapDataType() { + return mapDataType; + } + + public void setMapDataType(Map<String, String> mapDataType) { + this.mapDataType = mapDataType; + } + + public String[] getStringArrayDataType() { + return stringArrayDataType; + } + + public void setStringArrayDataType(String[] stringArrayDataType) { + this.stringArrayDataType = stringArrayDataType; + } + + public int[] getIntArrayDataType() { + return intArrayDataType; + } + + public void setIntArrayDataType(int[] intArrayDataType) { + this.intArrayDataType = intArrayDataType; + } + + public Set<String> getSetDataType() { + return setDataType; + } + + public void setSetDataType(Set<String> setDataType) { + this.setDataType = setDataType; + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + @Transient + @Override + public void clear() { + + } + + @Transient + @Override + public boolean isDirty(int fieldIndex) { + return false; + } + + @Transient + @Override + public boolean isDirty(String field) { + return false; + } + + @Transient + @Override + public void setDirty() { + + } + + @Transient + @Override + public void setDirty(int fieldIndex) { + + } + + @Transient + @Override + public void clearDirty(int fieldIndex) { + + } + + @Transient + @Override + public void clearDirty(String field) { + + } + + @Transient + @Override + public Tombstone getTombstone() { + return null; + } + + @Transient + @Override + public List<Schema.Field> getUnmanagedFields() { + return null; + } + + @Transient + @Override + public Persistent newInstance() { + return new ComplexTypes(); + } + + @Transient + @Override + public boolean isDirty() { + return false; + } + + @Transient + @Override + public void setDirty(String field) { + + } + + @Transient + @Override + public void clearDirty() { + + } +} http://git-wip-us.apache.org/repos/asf/gora/blob/89683c74/gora-cassandra/src/examples/java/org/apache/gora/cassandra/example/generated/nativeSerialization/Customer.java ---------------------------------------------------------------------- diff --git a/gora-cassandra/src/examples/java/org/apache/gora/cassandra/example/generated/nativeSerialization/Customer.java b/gora-cassandra/src/examples/java/org/apache/gora/cassandra/example/generated/nativeSerialization/Customer.java new file mode 100644 index 0000000..59bed36 --- /dev/null +++ b/gora-cassandra/src/examples/java/org/apache/gora/cassandra/example/generated/nativeSerialization/Customer.java @@ -0,0 +1,75 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * <p> + * http://www.apache.org/licenses/LICENSE-2.0 + * <p> + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.gora.cassandra.example.generated.nativeSerialization; + +import com.datastax.driver.mapping.annotations.Field; +import com.datastax.driver.mapping.annotations.UDT; + +import java.util.UUID; + +@UDT(name = "customer", keyspace = "nativeTestKeySpace") +public class Customer { + + @Field(name = "id") + private String id; + @Field(name = "name") + private String name; + @Field + private UUID age; + @Field(name = "coupon_code") + private String couponCode; + @Field(name = "address") + private String address; + + public Customer() { + + } + + public String getId() { + return id; + } + + public void setId(String id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public String getCouponCode() { + return couponCode; + } + + public void setCouponCode(String couponCode) { + this.couponCode = couponCode; + } + + public String getAddress() { + return address; + } + + public void setAddress(String address) { + this.address = address; + } + +} http://git-wip-us.apache.org/repos/asf/gora/blob/89683c74/gora-cassandra/src/examples/java/org/apache/gora/cassandra/example/generated/nativeSerialization/Document.java ---------------------------------------------------------------------- diff --git a/gora-cassandra/src/examples/java/org/apache/gora/cassandra/example/generated/nativeSerialization/Document.java b/gora-cassandra/src/examples/java/org/apache/gora/cassandra/example/generated/nativeSerialization/Document.java new file mode 100644 index 0000000..77961e4 --- /dev/null +++ b/gora-cassandra/src/examples/java/org/apache/gora/cassandra/example/generated/nativeSerialization/Document.java @@ -0,0 +1,136 @@ +/** + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * <p> + * http://www.apache.org/licenses/LICENSE-2.0 + * <p> + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.gora.cassandra.example.generated.nativeSerialization; + +import com.datastax.driver.mapping.annotations.Column; +import com.datastax.driver.mapping.annotations.PartitionKey; +import com.datastax.driver.mapping.annotations.Table; +import com.datastax.driver.mapping.annotations.Transient; +import org.apache.avro.Schema; +import org.apache.gora.persistency.Persistent; +import org.apache.gora.persistency.Tombstone; + +import java.util.List; + +@Table(keyspace = "nativeTestKeySpace", name = "documents", + readConsistency = "QUORUM", + writeConsistency = "QUORUM", + caseSensitiveKeyspace = false, + caseSensitiveTable = false) +public class Document implements Persistent { + @Column + Customer customer; + @PartitionKey + @Column + String defaultId; + + public String getDefaultId() { + return defaultId; + } + + public void setDefaultId(String defaultId) { + this.defaultId = defaultId; + } + + public Customer getCustomer() { + return customer; + } + + public void setCustomer(Customer customer) { + this.customer = customer; + } + + @Transient + @Override + public void clear() { + + } + + @Transient + @Override + public boolean isDirty(int fieldIndex) { + return false; + } + + @Transient + @Override + public boolean isDirty(String field) { + return false; + } + + @Transient + @Override + public void setDirty() { + + } + + @Transient + @Override + public void setDirty(int fieldIndex) { + + } + + @Transient + @Override + public void clearDirty(int fieldIndex) { + + } + + @Transient + @Override + public void clearDirty(String field) { + + } + + @Transient + @Override + public Tombstone getTombstone() { + return null; + } + + @Transient + @Override + public List<Schema.Field> getUnmanagedFields() { + return null; + } + + @Transient + @Override + public Persistent newInstance() { + return new Document(); + } + + @Transient + @Override + public boolean isDirty() { + return false; + } + + @Transient + @Override + public void setDirty(String field) { + + } + + @Transient + @Override + public void clearDirty() { + + } + +} http://git-wip-us.apache.org/repos/asf/gora/blob/89683c74/gora-cassandra/src/examples/java/org/apache/gora/cassandra/example/generated/nativeSerialization/User.java ---------------------------------------------------------------------- diff --git a/gora-cassandra/src/examples/java/org/apache/gora/cassandra/example/generated/nativeSerialization/User.java b/gora-cassandra/src/examples/java/org/apache/gora/cassandra/example/generated/nativeSerialization/User.java new file mode 100644 index 0000000..74b425e --- /dev/null +++ b/gora-cassandra/src/examples/java/org/apache/gora/cassandra/example/generated/nativeSerialization/User.java @@ -0,0 +1,159 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.gora.cassandra.example.generated.nativeSerialization; + +import com.datastax.driver.mapping.annotations.Column; +import com.datastax.driver.mapping.annotations.PartitionKey; +import com.datastax.driver.mapping.annotations.Table; +import com.datastax.driver.mapping.annotations.Transient; +import org.apache.avro.Schema; +import org.apache.gora.persistency.Persistent; +import org.apache.gora.persistency.Tombstone; + +import java.util.Date; +import java.util.List; +import java.util.UUID; + +/** + * Sample class for native cassandra persistent example. + */ +@Table(keyspace = "nativeTestKeySpace", name = "users", + readConsistency = "QUORUM", + writeConsistency = "QUORUM", + caseSensitiveKeyspace = false, + caseSensitiveTable = false) +public class User implements Persistent { + @PartitionKey + @Column(name = "user_id") + private UUID userId; + @Column(name = "name") + private String name; + @Column(name = "dob") + private Date dateOfBirth; + + public User() { + + } + + public User(UUID userId, String name, Date dateOfBirth) { + this.userId = userId; + this.name = name; + this.dateOfBirth = dateOfBirth; + } + + public UUID getUserId() { + return userId; + } + + public void setUserId(UUID userId) { + this.userId = userId; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public Date getDateOfBirth() { + return dateOfBirth; + } + + public void setDateOfBirth(Date dateOfBirth) { + this.dateOfBirth = dateOfBirth; + } + + @Transient + @Override + public void clear() { + + } + + @Transient + @Override + public boolean isDirty(int fieldIndex) { + return false; + } + + @Transient + @Override + public boolean isDirty(String field) { + return false; + } + + @Transient + @Override + public void setDirty() { + + } + + @Transient + @Override + public void setDirty(int fieldIndex) { + + } + + @Transient + @Override + public void clearDirty(int fieldIndex) { + + } + + @Transient + @Override + public void clearDirty(String field) { + + } + + @Transient + @Override + public Tombstone getTombstone() { + return null; + } + + @Transient + @Override + public List<Schema.Field> getUnmanagedFields() { + return null; + } + + @Transient + @Override + public Persistent newInstance() { + return new User(); + } + + @Transient + @Override + public boolean isDirty() { + return false; + } + + @Transient + @Override + public void setDirty(String field) { + + } + + @Transient + @Override + public void clearDirty() { + + } +} http://git-wip-us.apache.org/repos/asf/gora/blob/89683c74/gora-cassandra/src/main/java/org/apache/gora/cassandra/bean/CassandraKey.java ---------------------------------------------------------------------- diff --git a/gora-cassandra/src/main/java/org/apache/gora/cassandra/bean/CassandraKey.java b/gora-cassandra/src/main/java/org/apache/gora/cassandra/bean/CassandraKey.java new file mode 100644 index 0000000..d3f3b1d --- /dev/null +++ b/gora-cassandra/src/main/java/org/apache/gora/cassandra/bean/CassandraKey.java @@ -0,0 +1,91 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.gora.cassandra.bean; + +import java.util.ArrayList; +import java.util.List; + +/** + * This Class represents the Cassandra Key. + */ +public class CassandraKey { + + private String name; + + private List<ClusterKeyField> clusterKeyFields; + + private List<PartitionKeyField> partitionKeyFields; + + private List<Field> fieldList; + + public CassandraKey(String name) { + this.name = name; + this.fieldList = new ArrayList<>(); + this.partitionKeyFields = new ArrayList<>(); + } + + public String getName() { + return this.name; + } + + public List<ClusterKeyField> getClusterKeyFields() { + return this.clusterKeyFields; + } + + public List<PartitionKeyField> getPartitionKeyFields() { + return this.partitionKeyFields; + } + + public void addPartitionKeyField(PartitionKeyField partitionKeyField) { + this.partitionKeyFields.add(partitionKeyField); + if (partitionKeyField.isComposite()) { + this.fieldList.addAll(partitionKeyField.getFields()); + } else { + this.fieldList.add(partitionKeyField); + } + } + + public void addClusterKeyField(ClusterKeyField clusterKeyField) { + if (this.clusterKeyFields == null) { + this.clusterKeyFields = new ArrayList<>(); + } + this.clusterKeyFields.add(clusterKeyField); + } + + public String[] getFieldNames() { + List<String> fieldNames = new ArrayList<>(fieldList.size()); + for (Field field : fieldList) { + fieldNames.add(field.getFieldName()); + } + String[] fieldNameArray = new String[fieldNames.size()]; + return fieldNames.toArray(fieldNameArray); + } + + public Field getFieldFromFieldName(String fieldName) { + for (Field field1 : fieldList) { + if (field1.getFieldName().equalsIgnoreCase(fieldName)) { + return field1; + } + } + return null; + } + + public List<Field> getFieldList() { + return this.fieldList; + } + +} http://git-wip-us.apache.org/repos/asf/gora/blob/89683c74/gora-cassandra/src/main/java/org/apache/gora/cassandra/bean/ClusterKeyField.java ---------------------------------------------------------------------- diff --git a/gora-cassandra/src/main/java/org/apache/gora/cassandra/bean/ClusterKeyField.java b/gora-cassandra/src/main/java/org/apache/gora/cassandra/bean/ClusterKeyField.java new file mode 100644 index 0000000..7e23c75 --- /dev/null +++ b/gora-cassandra/src/main/java/org/apache/gora/cassandra/bean/ClusterKeyField.java @@ -0,0 +1,54 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.gora.cassandra.bean; + +/** + * This class represents Cassandra Clustering Key. + */ +public class ClusterKeyField { + + private String columnName; + + private Order order; + + public ClusterKeyField() { + + } + + public String getColumnName() { + return columnName; + } + + public void setColumnName(String columnName) { + this.columnName = columnName; + } + + public Order getOrder() { + return order; + } + + public void setOrder(Order order) { + this.order = order; + } + + public enum Order { + DESC, + ASC, + } + + +} http://git-wip-us.apache.org/repos/asf/gora/blob/89683c74/gora-cassandra/src/main/java/org/apache/gora/cassandra/bean/Field.java ---------------------------------------------------------------------- diff --git a/gora-cassandra/src/main/java/org/apache/gora/cassandra/bean/Field.java b/gora-cassandra/src/main/java/org/apache/gora/cassandra/bean/Field.java new file mode 100644 index 0000000..b5015a1 --- /dev/null +++ b/gora-cassandra/src/main/java/org/apache/gora/cassandra/bean/Field.java @@ -0,0 +1,70 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.gora.cassandra.bean; + +import java.util.HashMap; +import java.util.Map; + +/** + * This Class represents the Cassandra Column. + */ +public class Field { + + private String fieldName; + + private String columnName; + + private String type; + + private Map<String, String> properties; + + public Field() { + properties = new HashMap<>(2); + } + + public void addProperty(String key, String value) { + properties.put(key, value); + } + + public String getFieldName() { + return fieldName; + } + + public void setFieldName(String fieldName) { + this.fieldName = fieldName; + } + + public String getColumnName() { + return columnName; + } + + public void setColumnName(String columnName) { + this.columnName = columnName; + } + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + public String getProperty(String key) { + return this.properties.get(key); + } +} http://git-wip-us.apache.org/repos/asf/gora/blob/89683c74/gora-cassandra/src/main/java/org/apache/gora/cassandra/bean/KeySpace.java ---------------------------------------------------------------------- diff --git a/gora-cassandra/src/main/java/org/apache/gora/cassandra/bean/KeySpace.java b/gora-cassandra/src/main/java/org/apache/gora/cassandra/bean/KeySpace.java new file mode 100644 index 0000000..8a7ca5f --- /dev/null +++ b/gora-cassandra/src/main/java/org/apache/gora/cassandra/bean/KeySpace.java @@ -0,0 +1,84 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.gora.cassandra.bean; + +import java.util.HashMap; +import java.util.Map; + +/** + * This class represents the Cassandra Keyspace. + */ +public class KeySpace { + + private String name; + + private PlacementStrategy placementStrategy; + + private boolean durableWritesEnabled; + + private int replicationFactor; + + private Map<String, Integer> dataCenters; + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } + + public boolean isDurableWritesEnabled() { + return durableWritesEnabled; + } + + public void setDurableWritesEnabled(boolean durableWritesEnabled) { + this.durableWritesEnabled = durableWritesEnabled; + } + + public PlacementStrategy getPlacementStrategy() { + return placementStrategy; + } + + public void setPlacementStrategy(PlacementStrategy placementStrategy) { + this.placementStrategy = placementStrategy; + if (placementStrategy.equals(PlacementStrategy.NetworkTopologyStrategy) && this.dataCenters == null) { + this.dataCenters = new HashMap<>(); + } + } + + public int getReplicationFactor() { + return replicationFactor; + } + + public void setReplicationFactor(int replicationFactor) { + this.replicationFactor = replicationFactor; + } + + public Map<String, Integer> getDataCenters() { + return dataCenters; + } + + public void addDataCenter(String key, Integer value) { + this.dataCenters.put(key, value); + } + + public enum PlacementStrategy { + SimpleStrategy, + NetworkTopologyStrategy, + } +} http://git-wip-us.apache.org/repos/asf/gora/blob/89683c74/gora-cassandra/src/main/java/org/apache/gora/cassandra/bean/PartitionKeyField.java ---------------------------------------------------------------------- diff --git a/gora-cassandra/src/main/java/org/apache/gora/cassandra/bean/PartitionKeyField.java b/gora-cassandra/src/main/java/org/apache/gora/cassandra/bean/PartitionKeyField.java new file mode 100644 index 0000000..be91d40 --- /dev/null +++ b/gora-cassandra/src/main/java/org/apache/gora/cassandra/bean/PartitionKeyField.java @@ -0,0 +1,50 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.gora.cassandra.bean; + +import java.util.ArrayList; +import java.util.List; + +/** + * This class represents Cassandra Partition Key. + */ +public class PartitionKeyField extends Field { + + private boolean isComposite; + + private List<Field> fields; + + public boolean isComposite() { + return isComposite; + } + + public void setComposite(boolean composite) { + isComposite = composite; + if (isComposite && fields == null) { + fields = new ArrayList<>(); + } + } + + public void addField(Field field) { + this.fields.add(field); + } + + public List<Field> getFields() { + return fields; + } + +}