From 5e72feef0e2355830b7c22572d81de7e4fa07dd1 Mon Sep 17 00:00:00 2001 From: Jonathan Ellis Date: Wed, 15 Apr 2009 16:28:03 +0000 Subject: [PATCH] upgrade to thrift svn r763981. for Java, this should be identical to thrift 0.1. patch by jbellis; reviewed by Eric Evans for #72 git-svn-id: https://svn.apache.org/repos/asf/incubator/cassandra/trunk@765262 13f79535-47bb-0310-9956-ffa450edef68 --- lib/libthrift.jar | Bin 57565 -> 171995 bytes src/org/apache/cassandra/cli/CliClient.java | 2 +- src/org/apache/cassandra/cli/CliMain.java | 6 +- .../cassandra/cql/driver/CqlDriver.java | 2 +- .../apache/cassandra/service/Cassandra.java | 6263 +++++++++++++++-- .../cassandra/service/CassandraDaemon.java | 14 +- .../cassandra/service/CassandraException.java | 126 +- .../cassandra/service/CassandraServer.java | 7 +- .../apache/cassandra/service/Constants.java | 2 +- .../apache/cassandra/service/CqlResult_t.java | 249 +- .../service/batch_mutation_super_t.java | 326 +- .../cassandra/service/batch_mutation_t.java | 326 +- .../apache/cassandra/service/column_t.java | 226 +- .../cassandra/service/superColumn_t.java | 200 +- .../apache/cassandra/test/DataImporter.java | 6 +- src/org/apache/cassandra/test/StressTest.java | 6 +- 16 files changed, 6803 insertions(+), 958 deletions(-) diff --git a/lib/libthrift.jar b/lib/libthrift.jar index e34bf79a8545493448185c6390a730d607dfa7ed..101b15de2e1245258a69558835be1e3ccc4b1cd7 100644 GIT binary patch literal 171995 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

    XiSlrHq#-~ z&L&X{ptuP2A@EZI$jWpCASRR0*wp7aPq8;?&|%Z~_p}$isjW|ahUb)+i@I|aGc_xK zRv_x*7pElcGMIy;slynli$Zdfj=+7|UYQd8i!PO}ALXDZZh fk4#Be<2qXj$XtaP#xam!!arwVoV1Q|_8RX0%2zKk literal 57565 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 E52f;6IsgCw diff --git a/src/org/apache/cassandra/cli/CliClient.java b/src/org/apache/cassandra/cli/CliClient.java index 40bf888343..dbaaba0277 100644 --- a/src/org/apache/cassandra/cli/CliClient.java +++ b/src/org/apache/cassandra/cli/CliClient.java @@ -17,7 +17,7 @@ */ package org.apache.cassandra.cli; -import com.facebook.thrift.*; +import org.apache.thrift.*; import org.antlr.runtime.tree.*; import org.apache.cassandra.cql.common.Utils; diff --git a/src/org/apache/cassandra/cli/CliMain.java b/src/org/apache/cassandra/cli/CliMain.java index 0e949f048d..d3c2fe74e2 100644 --- a/src/org/apache/cassandra/cli/CliMain.java +++ b/src/org/apache/cassandra/cli/CliMain.java @@ -18,9 +18,9 @@ package org.apache.cassandra.cli; -import com.facebook.thrift.protocol.TBinaryProtocol; -import com.facebook.thrift.transport.TSocket; -import com.facebook.thrift.transport.TTransport; +import org.apache.thrift.protocol.TBinaryProtocol; +import org.apache.thrift.transport.TSocket; +import org.apache.thrift.transport.TTransport; import jline.*; import java.io.*; diff --git a/src/org/apache/cassandra/cql/driver/CqlDriver.java b/src/org/apache/cassandra/cql/driver/CqlDriver.java index b112caeaf2..087e10a1f4 100644 --- a/src/org/apache/cassandra/cql/driver/CqlDriver.java +++ b/src/org/apache/cassandra/cql/driver/CqlDriver.java @@ -21,7 +21,7 @@ import org.apache.cassandra.cql.compiler.common.*; import org.apache.cassandra.cql.compiler.parse.*; import org.apache.cassandra.cql.compiler.sem.*; import org.apache.cassandra.cql.common.*; -import com.facebook.thrift.*; +import org.apache.thrift.*; import org.apache.cassandra.cql.common.CqlResult; import org.apache.cassandra.cql.common.Plan; diff --git a/src/org/apache/cassandra/service/Cassandra.java b/src/org/apache/cassandra/service/Cassandra.java index 9c01ca1b61..b79f169800 100644 --- a/src/org/apache/cassandra/service/Cassandra.java +++ b/src/org/apache/cassandra/service/Cassandra.java @@ -11,10 +11,12 @@ import java.util.Map; import java.util.HashMap; import java.util.Set; import java.util.HashSet; -import com.facebook.thrift.*; +import java.util.Collections; +import org.apache.thrift.*; +import org.apache.thrift.meta_data.*; -import com.facebook.thrift.protocol.*; -import com.facebook.thrift.transport.*; +import org.apache.thrift.protocol.*; +import org.apache.thrift.transport.*; public class Cassandra { @@ -1080,15 +1082,27 @@ public class Cassandra { } - public static class get_slice_args implements TBase, java.io.Serializable { - public String tablename; - public String key; - public String columnFamily_column; - public int start; - public int count; + public static class get_slice_args implements TBase, java.io.Serializable, Cloneable { + private static final TStruct STRUCT_DESC = new TStruct("get_slice_args"); + private static final TField TABLENAME_FIELD_DESC = new TField("tablename", TType.STRING, (short)-1); + private static final TField KEY_FIELD_DESC = new TField("key", TType.STRING, (short)-2); + private static final TField COLUMN_FAMILY_COLUMN_FIELD_DESC = new TField("columnFamily_column", TType.STRING, (short)-3); + private static final TField START_FIELD_DESC = new TField("start", TType.I32, (short)-4); + private static final TField COUNT_FIELD_DESC = new TField("count", TType.I32, (short)-5); - public final Isset __isset = new Isset(); - public static final class Isset implements java.io.Serializable { + public String tablename; + public static final int TABLENAME = -1; + public String key; + public static final int KEY = -2; + public String columnFamily_column; + public static final int COLUMNFAMILY_COLUMN = -3; + public int start; + public static final int START = -4; + public int count; + public static final int COUNT = -5; + + private final Isset __isset = new Isset(); + private static final class Isset implements java.io.Serializable { public boolean tablename = false; public boolean key = false; public boolean columnFamily_column = false; @@ -1096,6 +1110,23 @@ public class Cassandra { public boolean count = false; } + public static final Map metaDataMap = Collections.unmodifiableMap(new HashMap() {{ + put(TABLENAME, new FieldMetaData("tablename", TFieldRequirementType.DEFAULT, + new FieldValueMetaData(TType.STRING))); + put(KEY, new FieldMetaData("key", TFieldRequirementType.DEFAULT, + new FieldValueMetaData(TType.STRING))); + put(COLUMNFAMILY_COLUMN, new FieldMetaData("columnFamily_column", TFieldRequirementType.DEFAULT, + new FieldValueMetaData(TType.STRING))); + put(START, new FieldMetaData("start", TFieldRequirementType.DEFAULT, + new FieldValueMetaData(TType.I32))); + put(COUNT, new FieldMetaData("count", TFieldRequirementType.DEFAULT, + new FieldValueMetaData(TType.I32))); + }}); + + static { + FieldMetaData.addStructMetaDataMap(get_slice_args.class, metaDataMap); + } + public get_slice_args() { this.start = -1; @@ -1112,17 +1143,222 @@ public class Cassandra { { this(); this.tablename = tablename; - this.__isset.tablename = true; + this.__isset.tablename = (tablename != null); this.key = key; - this.__isset.key = true; + this.__isset.key = (key != null); this.columnFamily_column = columnFamily_column; - this.__isset.columnFamily_column = true; + this.__isset.columnFamily_column = (columnFamily_column != null); this.start = start; this.__isset.start = true; this.count = count; this.__isset.count = true; } + /** + * Performs a deep copy on other. + */ + public get_slice_args(get_slice_args other) { + __isset.tablename = other.__isset.tablename; + if (other.tablename != null) { + this.tablename = other.tablename; + } + __isset.key = other.__isset.key; + if (other.key != null) { + this.key = other.key; + } + __isset.columnFamily_column = other.__isset.columnFamily_column; + if (other.columnFamily_column != null) { + this.columnFamily_column = other.columnFamily_column; + } + __isset.start = other.__isset.start; + this.start = other.start; + __isset.count = other.__isset.count; + this.count = other.count; + } + + @Override + public get_slice_args clone() { + return new get_slice_args(this); + } + + public String getTablename() { + return this.tablename; + } + + public void setTablename(String tablename) { + this.tablename = tablename; + this.__isset.tablename = (tablename != null); + } + + public void unsetTablename() { + this.__isset.tablename = false; + } + + // Returns true if field tablename is set (has been asigned a value) and false otherwise + public boolean isSetTablename() { + return this.__isset.tablename; + } + + public void setTablenameIsSet(boolean value) { + this.__isset.tablename = value; + } + + public String getKey() { + return this.key; + } + + public void setKey(String key) { + this.key = key; + this.__isset.key = (key != null); + } + + public void unsetKey() { + this.__isset.key = false; + } + + // Returns true if field key is set (has been asigned a value) and false otherwise + public boolean isSetKey() { + return this.__isset.key; + } + + public void setKeyIsSet(boolean value) { + this.__isset.key = value; + } + + public String getColumnFamily_column() { + return this.columnFamily_column; + } + + public void setColumnFamily_column(String columnFamily_column) { + this.columnFamily_column = columnFamily_column; + this.__isset.columnFamily_column = (columnFamily_column != null); + } + + public void unsetColumnFamily_column() { + this.__isset.columnFamily_column = false; + } + + // Returns true if field columnFamily_column is set (has been asigned a value) and false otherwise + public boolean isSetColumnFamily_column() { + return this.__isset.columnFamily_column; + } + + public void setColumnFamily_columnIsSet(boolean value) { + this.__isset.columnFamily_column = value; + } + + public int getStart() { + return this.start; + } + + public void setStart(int start) { + this.start = start; + this.__isset.start = true; + } + + public void unsetStart() { + this.__isset.start = false; + } + + // Returns true if field start is set (has been asigned a value) and false otherwise + public boolean isSetStart() { + return this.__isset.start; + } + + public void setStartIsSet(boolean value) { + this.__isset.start = value; + } + + public int getCount() { + return this.count; + } + + public void setCount(int count) { + this.count = count; + this.__isset.count = true; + } + + public void unsetCount() { + this.__isset.count = false; + } + + // Returns true if field count is set (has been asigned a value) and false otherwise + public boolean isSetCount() { + return this.__isset.count; + } + + public void setCountIsSet(boolean value) { + this.__isset.count = value; + } + + public void setFieldValue(int fieldID, Object value) { + switch (fieldID) { + case TABLENAME: + setTablename((String)value); + break; + + case KEY: + setKey((String)value); + break; + + case COLUMNFAMILY_COLUMN: + setColumnFamily_column((String)value); + break; + + case START: + setStart((Integer)value); + break; + + case COUNT: + setCount((Integer)value); + break; + + default: + throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); + } + } + + public Object getFieldValue(int fieldID) { + switch (fieldID) { + case TABLENAME: + return getTablename(); + + case KEY: + return getKey(); + + case COLUMNFAMILY_COLUMN: + return getColumnFamily_column(); + + case START: + return new Integer(getStart()); + + case COUNT: + return new Integer(getCount()); + + default: + throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); + } + } + + // Returns true if field corresponding to fieldID is set (has been asigned a value) and false otherwise + public boolean isSet(int fieldID) { + switch (fieldID) { + case TABLENAME: + return this.__isset.tablename; + case KEY: + return this.__isset.key; + case COLUMNFAMILY_COLUMN: + return this.__isset.columnFamily_column; + case START: + return this.__isset.start; + case COUNT: + return this.__isset.count; + default: + throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); + } + } + + @Override public boolean equals(Object that) { if (that == null) return false; @@ -1183,6 +1419,7 @@ public class Cassandra { return true; } + @Override public int hashCode() { return 0; } @@ -1198,7 +1435,7 @@ public class Cassandra { } switch (field.id) { - case -1: + case TABLENAME: if (field.type == TType.STRING) { this.tablename = iprot.readString(); this.__isset.tablename = true; @@ -1206,7 +1443,7 @@ public class Cassandra { TProtocolUtil.skip(iprot, field.type); } break; - case -2: + case KEY: if (field.type == TType.STRING) { this.key = iprot.readString(); this.__isset.key = true; @@ -1214,7 +1451,7 @@ public class Cassandra { TProtocolUtil.skip(iprot, field.type); } break; - case -3: + case COLUMNFAMILY_COLUMN: if (field.type == TType.STRING) { this.columnFamily_column = iprot.readString(); this.__isset.columnFamily_column = true; @@ -1222,7 +1459,7 @@ public class Cassandra { TProtocolUtil.skip(iprot, field.type); } break; - case -4: + case START: if (field.type == TType.I32) { this.start = iprot.readI32(); this.__isset.start = true; @@ -1230,7 +1467,7 @@ public class Cassandra { TProtocolUtil.skip(iprot, field.type); } break; - case -5: + case COUNT: if (field.type == TType.I32) { this.count = iprot.readI32(); this.__isset.count = true; @@ -1245,80 +1482,105 @@ public class Cassandra { iprot.readFieldEnd(); } iprot.readStructEnd(); + + + // check for required fields of primitive type, which can't be checked in the validate method + validate(); } public void write(TProtocol oprot) throws TException { - TStruct struct = new TStruct("get_slice_args"); - oprot.writeStructBegin(struct); - TField field = new TField(); + validate(); + + oprot.writeStructBegin(STRUCT_DESC); if (this.tablename != null) { - field.name = "tablename"; - field.type = TType.STRING; - field.id = -1; - oprot.writeFieldBegin(field); + oprot.writeFieldBegin(TABLENAME_FIELD_DESC); oprot.writeString(this.tablename); oprot.writeFieldEnd(); } if (this.key != null) { - field.name = "key"; - field.type = TType.STRING; - field.id = -2; - oprot.writeFieldBegin(field); + oprot.writeFieldBegin(KEY_FIELD_DESC); oprot.writeString(this.key); oprot.writeFieldEnd(); } if (this.columnFamily_column != null) { - field.name = "columnFamily_column"; - field.type = TType.STRING; - field.id = -3; - oprot.writeFieldBegin(field); + oprot.writeFieldBegin(COLUMN_FAMILY_COLUMN_FIELD_DESC); oprot.writeString(this.columnFamily_column); oprot.writeFieldEnd(); } - field.name = "start"; - field.type = TType.I32; - field.id = -4; - oprot.writeFieldBegin(field); + oprot.writeFieldBegin(START_FIELD_DESC); oprot.writeI32(this.start); oprot.writeFieldEnd(); - field.name = "count"; - field.type = TType.I32; - field.id = -5; - oprot.writeFieldBegin(field); + oprot.writeFieldBegin(COUNT_FIELD_DESC); oprot.writeI32(this.count); oprot.writeFieldEnd(); oprot.writeFieldStop(); oprot.writeStructEnd(); } + @Override public String toString() { StringBuilder sb = new StringBuilder("get_slice_args("); + boolean first = true; + + if (!first) sb.append(", "); sb.append("tablename:"); sb.append(this.tablename); - sb.append(",key:"); + first = false; + if (!first) sb.append(", "); + sb.append("key:"); sb.append(this.key); - sb.append(",columnFamily_column:"); + first = false; + if (!first) sb.append(", "); + sb.append("columnFamily_column:"); sb.append(this.columnFamily_column); - sb.append(",start:"); + first = false; + if (!first) sb.append(", "); + sb.append("start:"); sb.append(this.start); - sb.append(",count:"); + first = false; + if (!first) sb.append(", "); + sb.append("count:"); sb.append(this.count); + first = false; sb.append(")"); return sb.toString(); } + public void validate() throws TException { + // check for required fields + // check that fields of type enum have valid values + } + } - public static class get_slice_result implements TBase, java.io.Serializable { - public List success; - public CassandraException e; + public static class get_slice_result implements TBase, java.io.Serializable, Cloneable { + private static final TStruct STRUCT_DESC = new TStruct("get_slice_result"); + private static final TField SUCCESS_FIELD_DESC = new TField("success", TType.LIST, (short)0); + private static final TField E_FIELD_DESC = new TField("e", TType.STRUCT, (short)1); - public final Isset __isset = new Isset(); - public static final class Isset implements java.io.Serializable { + public List success; + public static final int SUCCESS = 0; + public CassandraException e; + public static final int E = 1; + + private final Isset __isset = new Isset(); + private static final class Isset implements java.io.Serializable { public boolean success = false; public boolean e = false; } + public static final Map metaDataMap = Collections.unmodifiableMap(new HashMap() {{ + put(SUCCESS, new FieldMetaData("success", TFieldRequirementType.DEFAULT, + new ListMetaData(TType.LIST, + new StructMetaData(TType.STRUCT, column_t.class)))); + put(E, new FieldMetaData("e", TFieldRequirementType.DEFAULT, + new FieldValueMetaData(TType.STRUCT))); + }}); + + static { + FieldMetaData.addStructMetaDataMap(get_slice_result.class, metaDataMap); + } + public get_slice_result() { } @@ -1328,11 +1590,137 @@ public class Cassandra { { this(); this.success = success; - this.__isset.success = true; + this.__isset.success = (success != null); this.e = e; - this.__isset.e = true; + this.__isset.e = (e != null); } + /** + * Performs a deep copy on other. + */ + public get_slice_result(get_slice_result other) { + __isset.success = other.__isset.success; + if (other.success != null) { + List __this__success = new ArrayList(); + for (column_t other_element : other.success) { + __this__success.add(new column_t(other_element)); + } + this.success = __this__success; + } + __isset.e = other.__isset.e; + if (other.e != null) { + this.e = new CassandraException(other.e); + } + } + + @Override + public get_slice_result clone() { + return new get_slice_result(this); + } + + public int getSuccessSize() { + return (this.success == null) ? 0 : this.success.size(); + } + + public java.util.Iterator getSuccessIterator() { + return (this.success == null) ? null : this.success.iterator(); + } + + public void addToSuccess(column_t elem) { + if (this.success == null) { + this.success = new ArrayList(); + } + this.success.add(elem); + this.__isset.success = true; + } + + public List getSuccess() { + return this.success; + } + + public void setSuccess(List success) { + this.success = success; + this.__isset.success = (success != null); + } + + public void unsetSuccess() { + this.success = null; + this.__isset.success = false; + } + + // Returns true if field success is set (has been asigned a value) and false otherwise + public boolean isSetSuccess() { + return this.__isset.success; + } + + public void setSuccessIsSet(boolean value) { + this.__isset.success = value; + } + + public CassandraException getE() { + return this.e; + } + + public void setE(CassandraException e) { + this.e = e; + this.__isset.e = (e != null); + } + + public void unsetE() { + this.e = null; + this.__isset.e = false; + } + + // Returns true if field e is set (has been asigned a value) and false otherwise + public boolean isSetE() { + return this.__isset.e; + } + + public void setEIsSet(boolean value) { + this.__isset.e = value; + } + + public void setFieldValue(int fieldID, Object value) { + switch (fieldID) { + case SUCCESS: + setSuccess((List)value); + break; + + case E: + setE((CassandraException)value); + break; + + default: + throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); + } + } + + public Object getFieldValue(int fieldID) { + switch (fieldID) { + case SUCCESS: + return getSuccess(); + + case E: + return getE(); + + default: + throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); + } + } + + // Returns true if field corresponding to fieldID is set (has been asigned a value) and false otherwise + public boolean isSet(int fieldID) { + switch (fieldID) { + case SUCCESS: + return this.__isset.success; + case E: + return this.__isset.e; + default: + throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); + } + } + + @Override public boolean equals(Object that) { if (that == null) return false; @@ -1366,6 +1754,7 @@ public class Cassandra { return true; } + @Override public int hashCode() { return 0; } @@ -1381,14 +1770,14 @@ public class Cassandra { } switch (field.id) { - case 0: + case SUCCESS: if (field.type == TType.LIST) { { TList _list49 = iprot.readListBegin(); this.success = new ArrayList(_list49.size); for (int _i50 = 0; _i50 < _list49.size; ++_i50) { - column_t _elem51 = new column_t(); + column_t _elem51; _elem51 = new column_t(); _elem51.read(iprot); this.success.add(_elem51); @@ -1400,7 +1789,7 @@ public class Cassandra { TProtocolUtil.skip(iprot, field.type); } break; - case 1: + case E: if (field.type == TType.STRUCT) { this.e = new CassandraException(); this.e.read(iprot); @@ -1416,19 +1805,18 @@ public class Cassandra { iprot.readFieldEnd(); } iprot.readStructEnd(); + + + // check for required fields of primitive type, which can't be checked in the validate method + validate(); } public void write(TProtocol oprot) throws TException { - TStruct struct = new TStruct("get_slice_result"); - oprot.writeStructBegin(struct); - TField field = new TField(); + oprot.writeStructBegin(STRUCT_DESC); if (this.__isset.success) { if (this.success != null) { - field.name = "success"; - field.type = TType.LIST; - field.id = 0; - oprot.writeFieldBegin(field); + oprot.writeFieldBegin(SUCCESS_FIELD_DESC); { oprot.writeListBegin(new TList(TType.STRUCT, this.success.size())); for (column_t _iter52 : this.success) { @@ -1440,10 +1828,7 @@ public class Cassandra { } } else if (this.__isset.e) { if (this.e != null) { - field.name = "e"; - field.type = TType.STRUCT; - field.id = 1; - oprot.writeFieldBegin(field); + oprot.writeFieldBegin(E_FIELD_DESC); this.e.write(oprot); oprot.writeFieldEnd(); } @@ -1452,32 +1837,70 @@ public class Cassandra { oprot.writeStructEnd(); } + @Override public String toString() { StringBuilder sb = new StringBuilder("get_slice_result("); + boolean first = true; + + if (!first) sb.append(", "); sb.append("success:"); sb.append(this.success); - sb.append(",e:"); + first = false; + if (!first) sb.append(", "); + sb.append("e:"); sb.append(this.e); + first = false; sb.append(")"); return sb.toString(); } + public void validate() throws TException { + // check for required fields + // check that fields of type enum have valid values + } + } - public static class get_slice_by_names_args implements TBase, java.io.Serializable { - public String tablename; - public String key; - public String columnFamily; - public List columnNames; + public static class get_slice_by_names_args implements TBase, java.io.Serializable, Cloneable { + private static final TStruct STRUCT_DESC = new TStruct("get_slice_by_names_args"); + private static final TField TABLENAME_FIELD_DESC = new TField("tablename", TType.STRING, (short)-1); + private static final TField KEY_FIELD_DESC = new TField("key", TType.STRING, (short)-2); + private static final TField COLUMN_FAMILY_FIELD_DESC = new TField("columnFamily", TType.STRING, (short)-3); + private static final TField COLUMN_NAMES_FIELD_DESC = new TField("columnNames", TType.LIST, (short)-4); - public final Isset __isset = new Isset(); - public static final class Isset implements java.io.Serializable { + public String tablename; + public static final int TABLENAME = -1; + public String key; + public static final int KEY = -2; + public String columnFamily; + public static final int COLUMNFAMILY = -3; + public List columnNames; + public static final int COLUMNNAMES = -4; + + private final Isset __isset = new Isset(); + private static final class Isset implements java.io.Serializable { public boolean tablename = false; public boolean key = false; public boolean columnFamily = false; public boolean columnNames = false; } + public static final Map metaDataMap = Collections.unmodifiableMap(new HashMap() {{ + put(TABLENAME, new FieldMetaData("tablename", TFieldRequirementType.DEFAULT, + new FieldValueMetaData(TType.STRING))); + put(KEY, new FieldMetaData("key", TFieldRequirementType.DEFAULT, + new FieldValueMetaData(TType.STRING))); + put(COLUMNFAMILY, new FieldMetaData("columnFamily", TFieldRequirementType.DEFAULT, + new FieldValueMetaData(TType.STRING))); + put(COLUMNNAMES, new FieldMetaData("columnNames", TFieldRequirementType.DEFAULT, + new ListMetaData(TType.LIST, + new FieldValueMetaData(TType.STRING)))); + }}); + + static { + FieldMetaData.addStructMetaDataMap(get_slice_by_names_args.class, metaDataMap); + } + public get_slice_by_names_args() { } @@ -1489,15 +1912,210 @@ public class Cassandra { { this(); this.tablename = tablename; - this.__isset.tablename = true; + this.__isset.tablename = (tablename != null); this.key = key; - this.__isset.key = true; + this.__isset.key = (key != null); this.columnFamily = columnFamily; - this.__isset.columnFamily = true; + this.__isset.columnFamily = (columnFamily != null); this.columnNames = columnNames; + this.__isset.columnNames = (columnNames != null); + } + + /** + * Performs a deep copy on other. + */ + public get_slice_by_names_args(get_slice_by_names_args other) { + __isset.tablename = other.__isset.tablename; + if (other.tablename != null) { + this.tablename = other.tablename; + } + __isset.key = other.__isset.key; + if (other.key != null) { + this.key = other.key; + } + __isset.columnFamily = other.__isset.columnFamily; + if (other.columnFamily != null) { + this.columnFamily = other.columnFamily; + } + __isset.columnNames = other.__isset.columnNames; + if (other.columnNames != null) { + List __this__columnNames = new ArrayList(); + for (String other_element : other.columnNames) { + __this__columnNames.add(other_element); + } + this.columnNames = __this__columnNames; + } + } + + @Override + public get_slice_by_names_args clone() { + return new get_slice_by_names_args(this); + } + + public String getTablename() { + return this.tablename; + } + + public void setTablename(String tablename) { + this.tablename = tablename; + this.__isset.tablename = (tablename != null); + } + + public void unsetTablename() { + this.__isset.tablename = false; + } + + // Returns true if field tablename is set (has been asigned a value) and false otherwise + public boolean isSetTablename() { + return this.__isset.tablename; + } + + public void setTablenameIsSet(boolean value) { + this.__isset.tablename = value; + } + + public String getKey() { + return this.key; + } + + public void setKey(String key) { + this.key = key; + this.__isset.key = (key != null); + } + + public void unsetKey() { + this.__isset.key = false; + } + + // Returns true if field key is set (has been asigned a value) and false otherwise + public boolean isSetKey() { + return this.__isset.key; + } + + public void setKeyIsSet(boolean value) { + this.__isset.key = value; + } + + public String getColumnFamily() { + return this.columnFamily; + } + + public void setColumnFamily(String columnFamily) { + this.columnFamily = columnFamily; + this.__isset.columnFamily = (columnFamily != null); + } + + public void unsetColumnFamily() { + this.__isset.columnFamily = false; + } + + // Returns true if field columnFamily is set (has been asigned a value) and false otherwise + public boolean isSetColumnFamily() { + return this.__isset.columnFamily; + } + + public void setColumnFamilyIsSet(boolean value) { + this.__isset.columnFamily = value; + } + + public int getColumnNamesSize() { + return (this.columnNames == null) ? 0 : this.columnNames.size(); + } + + public java.util.Iterator getColumnNamesIterator() { + return (this.columnNames == null) ? null : this.columnNames.iterator(); + } + + public void addToColumnNames(String elem) { + if (this.columnNames == null) { + this.columnNames = new ArrayList(); + } + this.columnNames.add(elem); this.__isset.columnNames = true; } + public List getColumnNames() { + return this.columnNames; + } + + public void setColumnNames(List columnNames) { + this.columnNames = columnNames; + this.__isset.columnNames = (columnNames != null); + } + + public void unsetColumnNames() { + this.columnNames = null; + this.__isset.columnNames = false; + } + + // Returns true if field columnNames is set (has been asigned a value) and false otherwise + public boolean isSetColumnNames() { + return this.__isset.columnNames; + } + + public void setColumnNamesIsSet(boolean value) { + this.__isset.columnNames = value; + } + + public void setFieldValue(int fieldID, Object value) { + switch (fieldID) { + case TABLENAME: + setTablename((String)value); + break; + + case KEY: + setKey((String)value); + break; + + case COLUMNFAMILY: + setColumnFamily((String)value); + break; + + case COLUMNNAMES: + setColumnNames((List)value); + break; + + default: + throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); + } + } + + public Object getFieldValue(int fieldID) { + switch (fieldID) { + case TABLENAME: + return getTablename(); + + case KEY: + return getKey(); + + case COLUMNFAMILY: + return getColumnFamily(); + + case COLUMNNAMES: + return getColumnNames(); + + default: + throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); + } + } + + // Returns true if field corresponding to fieldID is set (has been asigned a value) and false otherwise + public boolean isSet(int fieldID) { + switch (fieldID) { + case TABLENAME: + return this.__isset.tablename; + case KEY: + return this.__isset.key; + case COLUMNFAMILY: + return this.__isset.columnFamily; + case COLUMNNAMES: + return this.__isset.columnNames; + default: + throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); + } + } + + @Override public boolean equals(Object that) { if (that == null) return false; @@ -1549,6 +2167,7 @@ public class Cassandra { return true; } + @Override public int hashCode() { return 0; } @@ -1564,7 +2183,7 @@ public class Cassandra { } switch (field.id) { - case -1: + case TABLENAME: if (field.type == TType.STRING) { this.tablename = iprot.readString(); this.__isset.tablename = true; @@ -1572,7 +2191,7 @@ public class Cassandra { TProtocolUtil.skip(iprot, field.type); } break; - case -2: + case KEY: if (field.type == TType.STRING) { this.key = iprot.readString(); this.__isset.key = true; @@ -1580,7 +2199,7 @@ public class Cassandra { TProtocolUtil.skip(iprot, field.type); } break; - case -3: + case COLUMNFAMILY: if (field.type == TType.STRING) { this.columnFamily = iprot.readString(); this.__isset.columnFamily = true; @@ -1588,14 +2207,14 @@ public class Cassandra { TProtocolUtil.skip(iprot, field.type); } break; - case -4: + case COLUMNNAMES: if (field.type == TType.LIST) { { TList _list53 = iprot.readListBegin(); this.columnNames = new ArrayList(_list53.size); for (int _i54 = 0; _i54 < _list53.size; ++_i54) { - String _elem55 = null; + String _elem55; _elem55 = iprot.readString(); this.columnNames.add(_elem55); } @@ -1613,41 +2232,33 @@ public class Cassandra { iprot.readFieldEnd(); } iprot.readStructEnd(); + + + // check for required fields of primitive type, which can't be checked in the validate method + validate(); } public void write(TProtocol oprot) throws TException { - TStruct struct = new TStruct("get_slice_by_names_args"); - oprot.writeStructBegin(struct); - TField field = new TField(); + validate(); + + oprot.writeStructBegin(STRUCT_DESC); if (this.tablename != null) { - field.name = "tablename"; - field.type = TType.STRING; - field.id = -1; - oprot.writeFieldBegin(field); + oprot.writeFieldBegin(TABLENAME_FIELD_DESC); oprot.writeString(this.tablename); oprot.writeFieldEnd(); } if (this.key != null) { - field.name = "key"; - field.type = TType.STRING; - field.id = -2; - oprot.writeFieldBegin(field); + oprot.writeFieldBegin(KEY_FIELD_DESC); oprot.writeString(this.key); oprot.writeFieldEnd(); } if (this.columnFamily != null) { - field.name = "columnFamily"; - field.type = TType.STRING; - field.id = -3; - oprot.writeFieldBegin(field); + oprot.writeFieldBegin(COLUMN_FAMILY_FIELD_DESC); oprot.writeString(this.columnFamily); oprot.writeFieldEnd(); } if (this.columnNames != null) { - field.name = "columnNames"; - field.type = TType.LIST; - field.id = -4; - oprot.writeFieldBegin(field); + oprot.writeFieldBegin(COLUMN_NAMES_FIELD_DESC); { oprot.writeListBegin(new TList(TType.STRING, this.columnNames.size())); for (String _iter56 : this.columnNames) { @@ -1661,32 +2272,66 @@ public class Cassandra { oprot.writeStructEnd(); } + @Override public String toString() { StringBuilder sb = new StringBuilder("get_slice_by_names_args("); + boolean first = true; + + if (!first) sb.append(", "); sb.append("tablename:"); sb.append(this.tablename); - sb.append(",key:"); + first = false; + if (!first) sb.append(", "); + sb.append("key:"); sb.append(this.key); - sb.append(",columnFamily:"); + first = false; + if (!first) sb.append(", "); + sb.append("columnFamily:"); sb.append(this.columnFamily); - sb.append(",columnNames:"); + first = false; + if (!first) sb.append(", "); + sb.append("columnNames:"); sb.append(this.columnNames); + first = false; sb.append(")"); return sb.toString(); } + public void validate() throws TException { + // check for required fields + // check that fields of type enum have valid values + } + } - public static class get_slice_by_names_result implements TBase, java.io.Serializable { - public List success; - public CassandraException e; + public static class get_slice_by_names_result implements TBase, java.io.Serializable, Cloneable { + private static final TStruct STRUCT_DESC = new TStruct("get_slice_by_names_result"); + private static final TField SUCCESS_FIELD_DESC = new TField("success", TType.LIST, (short)0); + private static final TField E_FIELD_DESC = new TField("e", TType.STRUCT, (short)1); - public final Isset __isset = new Isset(); - public static final class Isset implements java.io.Serializable { + public List success; + public static final int SUCCESS = 0; + public CassandraException e; + public static final int E = 1; + + private final Isset __isset = new Isset(); + private static final class Isset implements java.io.Serializable { public boolean success = false; public boolean e = false; } + public static final Map metaDataMap = Collections.unmodifiableMap(new HashMap() {{ + put(SUCCESS, new FieldMetaData("success", TFieldRequirementType.DEFAULT, + new ListMetaData(TType.LIST, + new StructMetaData(TType.STRUCT, column_t.class)))); + put(E, new FieldMetaData("e", TFieldRequirementType.DEFAULT, + new FieldValueMetaData(TType.STRUCT))); + }}); + + static { + FieldMetaData.addStructMetaDataMap(get_slice_by_names_result.class, metaDataMap); + } + public get_slice_by_names_result() { } @@ -1696,11 +2341,137 @@ public class Cassandra { { this(); this.success = success; - this.__isset.success = true; + this.__isset.success = (success != null); this.e = e; - this.__isset.e = true; + this.__isset.e = (e != null); } + /** + * Performs a deep copy on other. + */ + public get_slice_by_names_result(get_slice_by_names_result other) { + __isset.success = other.__isset.success; + if (other.success != null) { + List __this__success = new ArrayList(); + for (column_t other_element : other.success) { + __this__success.add(new column_t(other_element)); + } + this.success = __this__success; + } + __isset.e = other.__isset.e; + if (other.e != null) { + this.e = new CassandraException(other.e); + } + } + + @Override + public get_slice_by_names_result clone() { + return new get_slice_by_names_result(this); + } + + public int getSuccessSize() { + return (this.success == null) ? 0 : this.success.size(); + } + + public java.util.Iterator getSuccessIterator() { + return (this.success == null) ? null : this.success.iterator(); + } + + public void addToSuccess(column_t elem) { + if (this.success == null) { + this.success = new ArrayList(); + } + this.success.add(elem); + this.__isset.success = true; + } + + public List getSuccess() { + return this.success; + } + + public void setSuccess(List success) { + this.success = success; + this.__isset.success = (success != null); + } + + public void unsetSuccess() { + this.success = null; + this.__isset.success = false; + } + + // Returns true if field success is set (has been asigned a value) and false otherwise + public boolean isSetSuccess() { + return this.__isset.success; + } + + public void setSuccessIsSet(boolean value) { + this.__isset.success = value; + } + + public CassandraException getE() { + return this.e; + } + + public void setE(CassandraException e) { + this.e = e; + this.__isset.e = (e != null); + } + + public void unsetE() { + this.e = null; + this.__isset.e = false; + } + + // Returns true if field e is set (has been asigned a value) and false otherwise + public boolean isSetE() { + return this.__isset.e; + } + + public void setEIsSet(boolean value) { + this.__isset.e = value; + } + + public void setFieldValue(int fieldID, Object value) { + switch (fieldID) { + case SUCCESS: + setSuccess((List)value); + break; + + case E: + setE((CassandraException)value); + break; + + default: + throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); + } + } + + public Object getFieldValue(int fieldID) { + switch (fieldID) { + case SUCCESS: + return getSuccess(); + + case E: + return getE(); + + default: + throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); + } + } + + // Returns true if field corresponding to fieldID is set (has been asigned a value) and false otherwise + public boolean isSet(int fieldID) { + switch (fieldID) { + case SUCCESS: + return this.__isset.success; + case E: + return this.__isset.e; + default: + throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); + } + } + + @Override public boolean equals(Object that) { if (that == null) return false; @@ -1734,6 +2505,7 @@ public class Cassandra { return true; } + @Override public int hashCode() { return 0; } @@ -1749,14 +2521,14 @@ public class Cassandra { } switch (field.id) { - case 0: + case SUCCESS: if (field.type == TType.LIST) { { TList _list57 = iprot.readListBegin(); this.success = new ArrayList(_list57.size); for (int _i58 = 0; _i58 < _list57.size; ++_i58) { - column_t _elem59 = new column_t(); + column_t _elem59; _elem59 = new column_t(); _elem59.read(iprot); this.success.add(_elem59); @@ -1768,7 +2540,7 @@ public class Cassandra { TProtocolUtil.skip(iprot, field.type); } break; - case 1: + case E: if (field.type == TType.STRUCT) { this.e = new CassandraException(); this.e.read(iprot); @@ -1784,19 +2556,18 @@ public class Cassandra { iprot.readFieldEnd(); } iprot.readStructEnd(); + + + // check for required fields of primitive type, which can't be checked in the validate method + validate(); } public void write(TProtocol oprot) throws TException { - TStruct struct = new TStruct("get_slice_by_names_result"); - oprot.writeStructBegin(struct); - TField field = new TField(); + oprot.writeStructBegin(STRUCT_DESC); if (this.__isset.success) { if (this.success != null) { - field.name = "success"; - field.type = TType.LIST; - field.id = 0; - oprot.writeFieldBegin(field); + oprot.writeFieldBegin(SUCCESS_FIELD_DESC); { oprot.writeListBegin(new TList(TType.STRUCT, this.success.size())); for (column_t _iter60 : this.success) { @@ -1808,10 +2579,7 @@ public class Cassandra { } } else if (this.__isset.e) { if (this.e != null) { - field.name = "e"; - field.type = TType.STRUCT; - field.id = 1; - oprot.writeFieldBegin(field); + oprot.writeFieldBegin(E_FIELD_DESC); this.e.write(oprot); oprot.writeFieldEnd(); } @@ -1820,30 +2588,63 @@ public class Cassandra { oprot.writeStructEnd(); } + @Override public String toString() { StringBuilder sb = new StringBuilder("get_slice_by_names_result("); + boolean first = true; + + if (!first) sb.append(", "); sb.append("success:"); sb.append(this.success); - sb.append(",e:"); + first = false; + if (!first) sb.append(", "); + sb.append("e:"); sb.append(this.e); + first = false; sb.append(")"); return sb.toString(); } + public void validate() throws TException { + // check for required fields + // check that fields of type enum have valid values + } + } - public static class get_column_args implements TBase, java.io.Serializable { - public String tablename; - public String key; - public String columnFamily_column; + public static class get_column_args implements TBase, java.io.Serializable, Cloneable { + private static final TStruct STRUCT_DESC = new TStruct("get_column_args"); + private static final TField TABLENAME_FIELD_DESC = new TField("tablename", TType.STRING, (short)-1); + private static final TField KEY_FIELD_DESC = new TField("key", TType.STRING, (short)-2); + private static final TField COLUMN_FAMILY_COLUMN_FIELD_DESC = new TField("columnFamily_column", TType.STRING, (short)-3); - public final Isset __isset = new Isset(); - public static final class Isset implements java.io.Serializable { + public String tablename; + public static final int TABLENAME = -1; + public String key; + public static final int KEY = -2; + public String columnFamily_column; + public static final int COLUMNFAMILY_COLUMN = -3; + + private final Isset __isset = new Isset(); + private static final class Isset implements java.io.Serializable { public boolean tablename = false; public boolean key = false; public boolean columnFamily_column = false; } + public static final Map metaDataMap = Collections.unmodifiableMap(new HashMap() {{ + put(TABLENAME, new FieldMetaData("tablename", TFieldRequirementType.DEFAULT, + new FieldValueMetaData(TType.STRING))); + put(KEY, new FieldMetaData("key", TFieldRequirementType.DEFAULT, + new FieldValueMetaData(TType.STRING))); + put(COLUMNFAMILY_COLUMN, new FieldMetaData("columnFamily_column", TFieldRequirementType.DEFAULT, + new FieldValueMetaData(TType.STRING))); + }}); + + static { + FieldMetaData.addStructMetaDataMap(get_column_args.class, metaDataMap); + } + public get_column_args() { } @@ -1854,13 +2655,152 @@ public class Cassandra { { this(); this.tablename = tablename; - this.__isset.tablename = true; + this.__isset.tablename = (tablename != null); this.key = key; - this.__isset.key = true; + this.__isset.key = (key != null); this.columnFamily_column = columnFamily_column; - this.__isset.columnFamily_column = true; + this.__isset.columnFamily_column = (columnFamily_column != null); } + /** + * Performs a deep copy on other. + */ + public get_column_args(get_column_args other) { + __isset.tablename = other.__isset.tablename; + if (other.tablename != null) { + this.tablename = other.tablename; + } + __isset.key = other.__isset.key; + if (other.key != null) { + this.key = other.key; + } + __isset.columnFamily_column = other.__isset.columnFamily_column; + if (other.columnFamily_column != null) { + this.columnFamily_column = other.columnFamily_column; + } + } + + @Override + public get_column_args clone() { + return new get_column_args(this); + } + + public String getTablename() { + return this.tablename; + } + + public void setTablename(String tablename) { + this.tablename = tablename; + this.__isset.tablename = (tablename != null); + } + + public void unsetTablename() { + this.__isset.tablename = false; + } + + // Returns true if field tablename is set (has been asigned a value) and false otherwise + public boolean isSetTablename() { + return this.__isset.tablename; + } + + public void setTablenameIsSet(boolean value) { + this.__isset.tablename = value; + } + + public String getKey() { + return this.key; + } + + public void setKey(String key) { + this.key = key; + this.__isset.key = (key != null); + } + + public void unsetKey() { + this.__isset.key = false; + } + + // Returns true if field key is set (has been asigned a value) and false otherwise + public boolean isSetKey() { + return this.__isset.key; + } + + public void setKeyIsSet(boolean value) { + this.__isset.key = value; + } + + public String getColumnFamily_column() { + return this.columnFamily_column; + } + + public void setColumnFamily_column(String columnFamily_column) { + this.columnFamily_column = columnFamily_column; + this.__isset.columnFamily_column = (columnFamily_column != null); + } + + public void unsetColumnFamily_column() { + this.__isset.columnFamily_column = false; + } + + // Returns true if field columnFamily_column is set (has been asigned a value) and false otherwise + public boolean isSetColumnFamily_column() { + return this.__isset.columnFamily_column; + } + + public void setColumnFamily_columnIsSet(boolean value) { + this.__isset.columnFamily_column = value; + } + + public void setFieldValue(int fieldID, Object value) { + switch (fieldID) { + case TABLENAME: + setTablename((String)value); + break; + + case KEY: + setKey((String)value); + break; + + case COLUMNFAMILY_COLUMN: + setColumnFamily_column((String)value); + break; + + default: + throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); + } + } + + public Object getFieldValue(int fieldID) { + switch (fieldID) { + case TABLENAME: + return getTablename(); + + case KEY: + return getKey(); + + case COLUMNFAMILY_COLUMN: + return getColumnFamily_column(); + + default: + throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); + } + } + + // Returns true if field corresponding to fieldID is set (has been asigned a value) and false otherwise + public boolean isSet(int fieldID) { + switch (fieldID) { + case TABLENAME: + return this.__isset.tablename; + case KEY: + return this.__isset.key; + case COLUMNFAMILY_COLUMN: + return this.__isset.columnFamily_column; + default: + throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); + } + } + + @Override public boolean equals(Object that) { if (that == null) return false; @@ -1903,6 +2843,7 @@ public class Cassandra { return true; } + @Override public int hashCode() { return 0; } @@ -1918,7 +2859,7 @@ public class Cassandra { } switch (field.id) { - case -1: + case TABLENAME: if (field.type == TType.STRING) { this.tablename = iprot.readString(); this.__isset.tablename = true; @@ -1926,7 +2867,7 @@ public class Cassandra { TProtocolUtil.skip(iprot, field.type); } break; - case -2: + case KEY: if (field.type == TType.STRING) { this.key = iprot.readString(); this.__isset.key = true; @@ -1934,7 +2875,7 @@ public class Cassandra { TProtocolUtil.skip(iprot, field.type); } break; - case -3: + case COLUMNFAMILY_COLUMN: if (field.type == TType.STRING) { this.columnFamily_column = iprot.readString(); this.__isset.columnFamily_column = true; @@ -1949,33 +2890,28 @@ public class Cassandra { iprot.readFieldEnd(); } iprot.readStructEnd(); + + + // check for required fields of primitive type, which can't be checked in the validate method + validate(); } public void write(TProtocol oprot) throws TException { - TStruct struct = new TStruct("get_column_args"); - oprot.writeStructBegin(struct); - TField field = new TField(); + validate(); + + oprot.writeStructBegin(STRUCT_DESC); if (this.tablename != null) { - field.name = "tablename"; - field.type = TType.STRING; - field.id = -1; - oprot.writeFieldBegin(field); + oprot.writeFieldBegin(TABLENAME_FIELD_DESC); oprot.writeString(this.tablename); oprot.writeFieldEnd(); } if (this.key != null) { - field.name = "key"; - field.type = TType.STRING; - field.id = -2; - oprot.writeFieldBegin(field); + oprot.writeFieldBegin(KEY_FIELD_DESC); oprot.writeString(this.key); oprot.writeFieldEnd(); } if (this.columnFamily_column != null) { - field.name = "columnFamily_column"; - field.type = TType.STRING; - field.id = -3; - oprot.writeFieldBegin(field); + oprot.writeFieldBegin(COLUMN_FAMILY_COLUMN_FIELD_DESC); oprot.writeString(this.columnFamily_column); oprot.writeFieldEnd(); } @@ -1983,30 +2919,61 @@ public class Cassandra { oprot.writeStructEnd(); } + @Override public String toString() { StringBuilder sb = new StringBuilder("get_column_args("); + boolean first = true; + + if (!first) sb.append(", "); sb.append("tablename:"); sb.append(this.tablename); - sb.append(",key:"); + first = false; + if (!first) sb.append(", "); + sb.append("key:"); sb.append(this.key); - sb.append(",columnFamily_column:"); + first = false; + if (!first) sb.append(", "); + sb.append("columnFamily_column:"); sb.append(this.columnFamily_column); + first = false; sb.append(")"); return sb.toString(); } + public void validate() throws TException { + // check for required fields + // check that fields of type enum have valid values + } + } - public static class get_column_result implements TBase, java.io.Serializable { - public column_t success; - public CassandraException e; + public static class get_column_result implements TBase, java.io.Serializable, Cloneable { + private static final TStruct STRUCT_DESC = new TStruct("get_column_result"); + private static final TField SUCCESS_FIELD_DESC = new TField("success", TType.STRUCT, (short)0); + private static final TField E_FIELD_DESC = new TField("e", TType.STRUCT, (short)1); - public final Isset __isset = new Isset(); - public static final class Isset implements java.io.Serializable { + public column_t success; + public static final int SUCCESS = 0; + public CassandraException e; + public static final int E = 1; + + private final Isset __isset = new Isset(); + private static final class Isset implements java.io.Serializable { public boolean success = false; public boolean e = false; } + public static final Map metaDataMap = Collections.unmodifiableMap(new HashMap() {{ + put(SUCCESS, new FieldMetaData("success", TFieldRequirementType.DEFAULT, + new StructMetaData(TType.STRUCT, column_t.class))); + put(E, new FieldMetaData("e", TFieldRequirementType.DEFAULT, + new FieldValueMetaData(TType.STRUCT))); + }}); + + static { + FieldMetaData.addStructMetaDataMap(get_column_result.class, metaDataMap); + } + public get_column_result() { } @@ -2016,11 +2983,117 @@ public class Cassandra { { this(); this.success = success; - this.__isset.success = true; + this.__isset.success = (success != null); this.e = e; - this.__isset.e = true; + this.__isset.e = (e != null); } + /** + * Performs a deep copy on other. + */ + public get_column_result(get_column_result other) { + __isset.success = other.__isset.success; + if (other.success != null) { + this.success = new column_t(other.success); + } + __isset.e = other.__isset.e; + if (other.e != null) { + this.e = new CassandraException(other.e); + } + } + + @Override + public get_column_result clone() { + return new get_column_result(this); + } + + public column_t getSuccess() { + return this.success; + } + + public void setSuccess(column_t success) { + this.success = success; + this.__isset.success = (success != null); + } + + public void unsetSuccess() { + this.success = null; + this.__isset.success = false; + } + + // Returns true if field success is set (has been asigned a value) and false otherwise + public boolean isSetSuccess() { + return this.__isset.success; + } + + public void setSuccessIsSet(boolean value) { + this.__isset.success = value; + } + + public CassandraException getE() { + return this.e; + } + + public void setE(CassandraException e) { + this.e = e; + this.__isset.e = (e != null); + } + + public void unsetE() { + this.e = null; + this.__isset.e = false; + } + + // Returns true if field e is set (has been asigned a value) and false otherwise + public boolean isSetE() { + return this.__isset.e; + } + + public void setEIsSet(boolean value) { + this.__isset.e = value; + } + + public void setFieldValue(int fieldID, Object value) { + switch (fieldID) { + case SUCCESS: + setSuccess((column_t)value); + break; + + case E: + setE((CassandraException)value); + break; + + default: + throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); + } + } + + public Object getFieldValue(int fieldID) { + switch (fieldID) { + case SUCCESS: + return getSuccess(); + + case E: + return getE(); + + default: + throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); + } + } + + // Returns true if field corresponding to fieldID is set (has been asigned a value) and false otherwise + public boolean isSet(int fieldID) { + switch (fieldID) { + case SUCCESS: + return this.__isset.success; + case E: + return this.__isset.e; + default: + throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); + } + } + + @Override public boolean equals(Object that) { if (that == null) return false; @@ -2054,6 +3127,7 @@ public class Cassandra { return true; } + @Override public int hashCode() { return 0; } @@ -2069,7 +3143,7 @@ public class Cassandra { } switch (field.id) { - case 0: + case SUCCESS: if (field.type == TType.STRUCT) { this.success = new column_t(); this.success.read(iprot); @@ -2078,7 +3152,7 @@ public class Cassandra { TProtocolUtil.skip(iprot, field.type); } break; - case 1: + case E: if (field.type == TType.STRUCT) { this.e = new CassandraException(); this.e.read(iprot); @@ -2094,28 +3168,24 @@ public class Cassandra { iprot.readFieldEnd(); } iprot.readStructEnd(); + + + // check for required fields of primitive type, which can't be checked in the validate method + validate(); } public void write(TProtocol oprot) throws TException { - TStruct struct = new TStruct("get_column_result"); - oprot.writeStructBegin(struct); - TField field = new TField(); + oprot.writeStructBegin(STRUCT_DESC); if (this.__isset.success) { if (this.success != null) { - field.name = "success"; - field.type = TType.STRUCT; - field.id = 0; - oprot.writeFieldBegin(field); + oprot.writeFieldBegin(SUCCESS_FIELD_DESC); this.success.write(oprot); oprot.writeFieldEnd(); } } else if (this.__isset.e) { if (this.e != null) { - field.name = "e"; - field.type = TType.STRUCT; - field.id = 1; - oprot.writeFieldBegin(field); + oprot.writeFieldBegin(E_FIELD_DESC); this.e.write(oprot); oprot.writeFieldEnd(); } @@ -2124,30 +3194,63 @@ public class Cassandra { oprot.writeStructEnd(); } + @Override public String toString() { StringBuilder sb = new StringBuilder("get_column_result("); + boolean first = true; + + if (!first) sb.append(", "); sb.append("success:"); sb.append(this.success); - sb.append(",e:"); + first = false; + if (!first) sb.append(", "); + sb.append("e:"); sb.append(this.e); + first = false; sb.append(")"); return sb.toString(); } + public void validate() throws TException { + // check for required fields + // check that fields of type enum have valid values + } + } - public static class get_column_count_args implements TBase, java.io.Serializable { - public String tablename; - public String key; - public String columnFamily_column; + public static class get_column_count_args implements TBase, java.io.Serializable, Cloneable { + private static final TStruct STRUCT_DESC = new TStruct("get_column_count_args"); + private static final TField TABLENAME_FIELD_DESC = new TField("tablename", TType.STRING, (short)-1); + private static final TField KEY_FIELD_DESC = new TField("key", TType.STRING, (short)-2); + private static final TField COLUMN_FAMILY_COLUMN_FIELD_DESC = new TField("columnFamily_column", TType.STRING, (short)-3); - public final Isset __isset = new Isset(); - public static final class Isset implements java.io.Serializable { + public String tablename; + public static final int TABLENAME = -1; + public String key; + public static final int KEY = -2; + public String columnFamily_column; + public static final int COLUMNFAMILY_COLUMN = -3; + + private final Isset __isset = new Isset(); + private static final class Isset implements java.io.Serializable { public boolean tablename = false; public boolean key = false; public boolean columnFamily_column = false; } + public static final Map metaDataMap = Collections.unmodifiableMap(new HashMap() {{ + put(TABLENAME, new FieldMetaData("tablename", TFieldRequirementType.DEFAULT, + new FieldValueMetaData(TType.STRING))); + put(KEY, new FieldMetaData("key", TFieldRequirementType.DEFAULT, + new FieldValueMetaData(TType.STRING))); + put(COLUMNFAMILY_COLUMN, new FieldMetaData("columnFamily_column", TFieldRequirementType.DEFAULT, + new FieldValueMetaData(TType.STRING))); + }}); + + static { + FieldMetaData.addStructMetaDataMap(get_column_count_args.class, metaDataMap); + } + public get_column_count_args() { } @@ -2158,13 +3261,152 @@ public class Cassandra { { this(); this.tablename = tablename; - this.__isset.tablename = true; + this.__isset.tablename = (tablename != null); this.key = key; - this.__isset.key = true; + this.__isset.key = (key != null); this.columnFamily_column = columnFamily_column; - this.__isset.columnFamily_column = true; + this.__isset.columnFamily_column = (columnFamily_column != null); } + /** + * Performs a deep copy on other. + */ + public get_column_count_args(get_column_count_args other) { + __isset.tablename = other.__isset.tablename; + if (other.tablename != null) { + this.tablename = other.tablename; + } + __isset.key = other.__isset.key; + if (other.key != null) { + this.key = other.key; + } + __isset.columnFamily_column = other.__isset.columnFamily_column; + if (other.columnFamily_column != null) { + this.columnFamily_column = other.columnFamily_column; + } + } + + @Override + public get_column_count_args clone() { + return new get_column_count_args(this); + } + + public String getTablename() { + return this.tablename; + } + + public void setTablename(String tablename) { + this.tablename = tablename; + this.__isset.tablename = (tablename != null); + } + + public void unsetTablename() { + this.__isset.tablename = false; + } + + // Returns true if field tablename is set (has been asigned a value) and false otherwise + public boolean isSetTablename() { + return this.__isset.tablename; + } + + public void setTablenameIsSet(boolean value) { + this.__isset.tablename = value; + } + + public String getKey() { + return this.key; + } + + public void setKey(String key) { + this.key = key; + this.__isset.key = (key != null); + } + + public void unsetKey() { + this.__isset.key = false; + } + + // Returns true if field key is set (has been asigned a value) and false otherwise + public boolean isSetKey() { + return this.__isset.key; + } + + public void setKeyIsSet(boolean value) { + this.__isset.key = value; + } + + public String getColumnFamily_column() { + return this.columnFamily_column; + } + + public void setColumnFamily_column(String columnFamily_column) { + this.columnFamily_column = columnFamily_column; + this.__isset.columnFamily_column = (columnFamily_column != null); + } + + public void unsetColumnFamily_column() { + this.__isset.columnFamily_column = false; + } + + // Returns true if field columnFamily_column is set (has been asigned a value) and false otherwise + public boolean isSetColumnFamily_column() { + return this.__isset.columnFamily_column; + } + + public void setColumnFamily_columnIsSet(boolean value) { + this.__isset.columnFamily_column = value; + } + + public void setFieldValue(int fieldID, Object value) { + switch (fieldID) { + case TABLENAME: + setTablename((String)value); + break; + + case KEY: + setKey((String)value); + break; + + case COLUMNFAMILY_COLUMN: + setColumnFamily_column((String)value); + break; + + default: + throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); + } + } + + public Object getFieldValue(int fieldID) { + switch (fieldID) { + case TABLENAME: + return getTablename(); + + case KEY: + return getKey(); + + case COLUMNFAMILY_COLUMN: + return getColumnFamily_column(); + + default: + throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); + } + } + + // Returns true if field corresponding to fieldID is set (has been asigned a value) and false otherwise + public boolean isSet(int fieldID) { + switch (fieldID) { + case TABLENAME: + return this.__isset.tablename; + case KEY: + return this.__isset.key; + case COLUMNFAMILY_COLUMN: + return this.__isset.columnFamily_column; + default: + throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); + } + } + + @Override public boolean equals(Object that) { if (that == null) return false; @@ -2207,6 +3449,7 @@ public class Cassandra { return true; } + @Override public int hashCode() { return 0; } @@ -2222,7 +3465,7 @@ public class Cassandra { } switch (field.id) { - case -1: + case TABLENAME: if (field.type == TType.STRING) { this.tablename = iprot.readString(); this.__isset.tablename = true; @@ -2230,7 +3473,7 @@ public class Cassandra { TProtocolUtil.skip(iprot, field.type); } break; - case -2: + case KEY: if (field.type == TType.STRING) { this.key = iprot.readString(); this.__isset.key = true; @@ -2238,7 +3481,7 @@ public class Cassandra { TProtocolUtil.skip(iprot, field.type); } break; - case -3: + case COLUMNFAMILY_COLUMN: if (field.type == TType.STRING) { this.columnFamily_column = iprot.readString(); this.__isset.columnFamily_column = true; @@ -2253,33 +3496,28 @@ public class Cassandra { iprot.readFieldEnd(); } iprot.readStructEnd(); + + + // check for required fields of primitive type, which can't be checked in the validate method + validate(); } public void write(TProtocol oprot) throws TException { - TStruct struct = new TStruct("get_column_count_args"); - oprot.writeStructBegin(struct); - TField field = new TField(); + validate(); + + oprot.writeStructBegin(STRUCT_DESC); if (this.tablename != null) { - field.name = "tablename"; - field.type = TType.STRING; - field.id = -1; - oprot.writeFieldBegin(field); + oprot.writeFieldBegin(TABLENAME_FIELD_DESC); oprot.writeString(this.tablename); oprot.writeFieldEnd(); } if (this.key != null) { - field.name = "key"; - field.type = TType.STRING; - field.id = -2; - oprot.writeFieldBegin(field); + oprot.writeFieldBegin(KEY_FIELD_DESC); oprot.writeString(this.key); oprot.writeFieldEnd(); } if (this.columnFamily_column != null) { - field.name = "columnFamily_column"; - field.type = TType.STRING; - field.id = -3; - oprot.writeFieldBegin(field); + oprot.writeFieldBegin(COLUMN_FAMILY_COLUMN_FIELD_DESC); oprot.writeString(this.columnFamily_column); oprot.writeFieldEnd(); } @@ -2287,30 +3525,61 @@ public class Cassandra { oprot.writeStructEnd(); } + @Override public String toString() { StringBuilder sb = new StringBuilder("get_column_count_args("); + boolean first = true; + + if (!first) sb.append(", "); sb.append("tablename:"); sb.append(this.tablename); - sb.append(",key:"); + first = false; + if (!first) sb.append(", "); + sb.append("key:"); sb.append(this.key); - sb.append(",columnFamily_column:"); + first = false; + if (!first) sb.append(", "); + sb.append("columnFamily_column:"); sb.append(this.columnFamily_column); + first = false; sb.append(")"); return sb.toString(); } + public void validate() throws TException { + // check for required fields + // check that fields of type enum have valid values + } + } - public static class get_column_count_result implements TBase, java.io.Serializable { - public int success; - public CassandraException e; + public static class get_column_count_result implements TBase, java.io.Serializable, Cloneable { + private static final TStruct STRUCT_DESC = new TStruct("get_column_count_result"); + private static final TField SUCCESS_FIELD_DESC = new TField("success", TType.I32, (short)0); + private static final TField E_FIELD_DESC = new TField("e", TType.STRUCT, (short)1); - public final Isset __isset = new Isset(); - public static final class Isset implements java.io.Serializable { + public int success; + public static final int SUCCESS = 0; + public CassandraException e; + public static final int E = 1; + + private final Isset __isset = new Isset(); + private static final class Isset implements java.io.Serializable { public boolean success = false; public boolean e = false; } + public static final Map metaDataMap = Collections.unmodifiableMap(new HashMap() {{ + put(SUCCESS, new FieldMetaData("success", TFieldRequirementType.DEFAULT, + new FieldValueMetaData(TType.I32))); + put(E, new FieldMetaData("e", TFieldRequirementType.DEFAULT, + new FieldValueMetaData(TType.STRUCT))); + }}); + + static { + FieldMetaData.addStructMetaDataMap(get_column_count_result.class, metaDataMap); + } + public get_column_count_result() { } @@ -2322,9 +3591,112 @@ public class Cassandra { this.success = success; this.__isset.success = true; this.e = e; - this.__isset.e = true; + this.__isset.e = (e != null); } + /** + * Performs a deep copy on other. + */ + public get_column_count_result(get_column_count_result other) { + __isset.success = other.__isset.success; + this.success = other.success; + __isset.e = other.__isset.e; + if (other.e != null) { + this.e = new CassandraException(other.e); + } + } + + @Override + public get_column_count_result clone() { + return new get_column_count_result(this); + } + + public int getSuccess() { + return this.success; + } + + public void setSuccess(int success) { + this.success = success; + this.__isset.success = true; + } + + public void unsetSuccess() { + this.__isset.success = false; + } + + // Returns true if field success is set (has been asigned a value) and false otherwise + public boolean isSetSuccess() { + return this.__isset.success; + } + + public void setSuccessIsSet(boolean value) { + this.__isset.success = value; + } + + public CassandraException getE() { + return this.e; + } + + public void setE(CassandraException e) { + this.e = e; + this.__isset.e = (e != null); + } + + public void unsetE() { + this.e = null; + this.__isset.e = false; + } + + // Returns true if field e is set (has been asigned a value) and false otherwise + public boolean isSetE() { + return this.__isset.e; + } + + public void setEIsSet(boolean value) { + this.__isset.e = value; + } + + public void setFieldValue(int fieldID, Object value) { + switch (fieldID) { + case SUCCESS: + setSuccess((Integer)value); + break; + + case E: + setE((CassandraException)value); + break; + + default: + throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); + } + } + + public Object getFieldValue(int fieldID) { + switch (fieldID) { + case SUCCESS: + return new Integer(getSuccess()); + + case E: + return getE(); + + default: + throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); + } + } + + // Returns true if field corresponding to fieldID is set (has been asigned a value) and false otherwise + public boolean isSet(int fieldID) { + switch (fieldID) { + case SUCCESS: + return this.__isset.success; + case E: + return this.__isset.e; + default: + throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); + } + } + + @Override public boolean equals(Object that) { if (that == null) return false; @@ -2358,6 +3730,7 @@ public class Cassandra { return true; } + @Override public int hashCode() { return 0; } @@ -2373,7 +3746,7 @@ public class Cassandra { } switch (field.id) { - case 0: + case SUCCESS: if (field.type == TType.I32) { this.success = iprot.readI32(); this.__isset.success = true; @@ -2381,7 +3754,7 @@ public class Cassandra { TProtocolUtil.skip(iprot, field.type); } break; - case 1: + case E: if (field.type == TType.STRUCT) { this.e = new CassandraException(); this.e.read(iprot); @@ -2397,26 +3770,22 @@ public class Cassandra { iprot.readFieldEnd(); } iprot.readStructEnd(); + + + // check for required fields of primitive type, which can't be checked in the validate method + validate(); } public void write(TProtocol oprot) throws TException { - TStruct struct = new TStruct("get_column_count_result"); - oprot.writeStructBegin(struct); - TField field = new TField(); + oprot.writeStructBegin(STRUCT_DESC); if (this.__isset.success) { - field.name = "success"; - field.type = TType.I32; - field.id = 0; - oprot.writeFieldBegin(field); + oprot.writeFieldBegin(SUCCESS_FIELD_DESC); oprot.writeI32(this.success); oprot.writeFieldEnd(); } else if (this.__isset.e) { if (this.e != null) { - field.name = "e"; - field.type = TType.STRUCT; - field.id = 1; - oprot.writeFieldBegin(field); + oprot.writeFieldBegin(E_FIELD_DESC); this.e.write(oprot); oprot.writeFieldEnd(); } @@ -2425,27 +3794,51 @@ public class Cassandra { oprot.writeStructEnd(); } + @Override public String toString() { StringBuilder sb = new StringBuilder("get_column_count_result("); + boolean first = true; + + if (!first) sb.append(", "); sb.append("success:"); sb.append(this.success); - sb.append(",e:"); + first = false; + if (!first) sb.append(", "); + sb.append("e:"); sb.append(this.e); + first = false; sb.append(")"); return sb.toString(); } + public void validate() throws TException { + // check for required fields + // check that fields of type enum have valid values + } + } - public static class insert_args implements TBase, java.io.Serializable { - public String tablename; - public String key; - public String columnFamily_column; - public String cellData; - public long timestamp; + public static class insert_args implements TBase, java.io.Serializable, Cloneable { + private static final TStruct STRUCT_DESC = new TStruct("insert_args"); + private static final TField TABLENAME_FIELD_DESC = new TField("tablename", TType.STRING, (short)-1); + private static final TField KEY_FIELD_DESC = new TField("key", TType.STRING, (short)-2); + private static final TField COLUMN_FAMILY_COLUMN_FIELD_DESC = new TField("columnFamily_column", TType.STRING, (short)-3); + private static final TField CELL_DATA_FIELD_DESC = new TField("cellData", TType.STRING, (short)-4); + private static final TField TIMESTAMP_FIELD_DESC = new TField("timestamp", TType.I64, (short)-5); - public final Isset __isset = new Isset(); - public static final class Isset implements java.io.Serializable { + public String tablename; + public static final int TABLENAME = -1; + public String key; + public static final int KEY = -2; + public String columnFamily_column; + public static final int COLUMNFAMILY_COLUMN = -3; + public String cellData; + public static final int CELLDATA = -4; + public long timestamp; + public static final int TIMESTAMP = -5; + + private final Isset __isset = new Isset(); + private static final class Isset implements java.io.Serializable { public boolean tablename = false; public boolean key = false; public boolean columnFamily_column = false; @@ -2453,6 +3846,23 @@ public class Cassandra { public boolean timestamp = false; } + public static final Map metaDataMap = Collections.unmodifiableMap(new HashMap() {{ + put(TABLENAME, new FieldMetaData("tablename", TFieldRequirementType.DEFAULT, + new FieldValueMetaData(TType.STRING))); + put(KEY, new FieldMetaData("key", TFieldRequirementType.DEFAULT, + new FieldValueMetaData(TType.STRING))); + put(COLUMNFAMILY_COLUMN, new FieldMetaData("columnFamily_column", TFieldRequirementType.DEFAULT, + new FieldValueMetaData(TType.STRING))); + put(CELLDATA, new FieldMetaData("cellData", TFieldRequirementType.DEFAULT, + new FieldValueMetaData(TType.STRING))); + put(TIMESTAMP, new FieldMetaData("timestamp", TFieldRequirementType.DEFAULT, + new FieldValueMetaData(TType.I64))); + }}); + + static { + FieldMetaData.addStructMetaDataMap(insert_args.class, metaDataMap); + } + public insert_args() { } @@ -2465,17 +3875,224 @@ public class Cassandra { { this(); this.tablename = tablename; - this.__isset.tablename = true; + this.__isset.tablename = (tablename != null); this.key = key; - this.__isset.key = true; + this.__isset.key = (key != null); this.columnFamily_column = columnFamily_column; - this.__isset.columnFamily_column = true; + this.__isset.columnFamily_column = (columnFamily_column != null); this.cellData = cellData; - this.__isset.cellData = true; + this.__isset.cellData = (cellData != null); this.timestamp = timestamp; this.__isset.timestamp = true; } + /** + * Performs a deep copy on other. + */ + public insert_args(insert_args other) { + __isset.tablename = other.__isset.tablename; + if (other.tablename != null) { + this.tablename = other.tablename; + } + __isset.key = other.__isset.key; + if (other.key != null) { + this.key = other.key; + } + __isset.columnFamily_column = other.__isset.columnFamily_column; + if (other.columnFamily_column != null) { + this.columnFamily_column = other.columnFamily_column; + } + __isset.cellData = other.__isset.cellData; + if (other.cellData != null) { + this.cellData = other.cellData; + } + __isset.timestamp = other.__isset.timestamp; + this.timestamp = other.timestamp; + } + + @Override + public insert_args clone() { + return new insert_args(this); + } + + public String getTablename() { + return this.tablename; + } + + public void setTablename(String tablename) { + this.tablename = tablename; + this.__isset.tablename = (tablename != null); + } + + public void unsetTablename() { + this.__isset.tablename = false; + } + + // Returns true if field tablename is set (has been asigned a value) and false otherwise + public boolean isSetTablename() { + return this.__isset.tablename; + } + + public void setTablenameIsSet(boolean value) { + this.__isset.tablename = value; + } + + public String getKey() { + return this.key; + } + + public void setKey(String key) { + this.key = key; + this.__isset.key = (key != null); + } + + public void unsetKey() { + this.__isset.key = false; + } + + // Returns true if field key is set (has been asigned a value) and false otherwise + public boolean isSetKey() { + return this.__isset.key; + } + + public void setKeyIsSet(boolean value) { + this.__isset.key = value; + } + + public String getColumnFamily_column() { + return this.columnFamily_column; + } + + public void setColumnFamily_column(String columnFamily_column) { + this.columnFamily_column = columnFamily_column; + this.__isset.columnFamily_column = (columnFamily_column != null); + } + + public void unsetColumnFamily_column() { + this.__isset.columnFamily_column = false; + } + + // Returns true if field columnFamily_column is set (has been asigned a value) and false otherwise + public boolean isSetColumnFamily_column() { + return this.__isset.columnFamily_column; + } + + public void setColumnFamily_columnIsSet(boolean value) { + this.__isset.columnFamily_column = value; + } + + public String getCellData() { + return this.cellData; + } + + public void setCellData(String cellData) { + this.cellData = cellData; + this.__isset.cellData = (cellData != null); + } + + public void unsetCellData() { + this.__isset.cellData = false; + } + + // Returns true if field cellData is set (has been asigned a value) and false otherwise + public boolean isSetCellData() { + return this.__isset.cellData; + } + + public void setCellDataIsSet(boolean value) { + this.__isset.cellData = value; + } + + public long getTimestamp() { + return this.timestamp; + } + + public void setTimestamp(long timestamp) { + this.timestamp = timestamp; + this.__isset.timestamp = true; + } + + public void unsetTimestamp() { + this.__isset.timestamp = false; + } + + // Returns true if field timestamp is set (has been asigned a value) and false otherwise + public boolean isSetTimestamp() { + return this.__isset.timestamp; + } + + public void setTimestampIsSet(boolean value) { + this.__isset.timestamp = value; + } + + public void setFieldValue(int fieldID, Object value) { + switch (fieldID) { + case TABLENAME: + setTablename((String)value); + break; + + case KEY: + setKey((String)value); + break; + + case COLUMNFAMILY_COLUMN: + setColumnFamily_column((String)value); + break; + + case CELLDATA: + setCellData((String)value); + break; + + case TIMESTAMP: + setTimestamp((Long)value); + break; + + default: + throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); + } + } + + public Object getFieldValue(int fieldID) { + switch (fieldID) { + case TABLENAME: + return getTablename(); + + case KEY: + return getKey(); + + case COLUMNFAMILY_COLUMN: + return getColumnFamily_column(); + + case CELLDATA: + return getCellData(); + + case TIMESTAMP: + return new Long(getTimestamp()); + + default: + throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); + } + } + + // Returns true if field corresponding to fieldID is set (has been asigned a value) and false otherwise + public boolean isSet(int fieldID) { + switch (fieldID) { + case TABLENAME: + return this.__isset.tablename; + case KEY: + return this.__isset.key; + case COLUMNFAMILY_COLUMN: + return this.__isset.columnFamily_column; + case CELLDATA: + return this.__isset.cellData; + case TIMESTAMP: + return this.__isset.timestamp; + default: + throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); + } + } + + @Override public boolean equals(Object that) { if (that == null) return false; @@ -2536,6 +4153,7 @@ public class Cassandra { return true; } + @Override public int hashCode() { return 0; } @@ -2551,7 +4169,7 @@ public class Cassandra { } switch (field.id) { - case -1: + case TABLENAME: if (field.type == TType.STRING) { this.tablename = iprot.readString(); this.__isset.tablename = true; @@ -2559,7 +4177,7 @@ public class Cassandra { TProtocolUtil.skip(iprot, field.type); } break; - case -2: + case KEY: if (field.type == TType.STRING) { this.key = iprot.readString(); this.__isset.key = true; @@ -2567,7 +4185,7 @@ public class Cassandra { TProtocolUtil.skip(iprot, field.type); } break; - case -3: + case COLUMNFAMILY_COLUMN: if (field.type == TType.STRING) { this.columnFamily_column = iprot.readString(); this.__isset.columnFamily_column = true; @@ -2575,7 +4193,7 @@ public class Cassandra { TProtocolUtil.skip(iprot, field.type); } break; - case -4: + case CELLDATA: if (field.type == TType.STRING) { this.cellData = iprot.readString(); this.__isset.cellData = true; @@ -2583,7 +4201,7 @@ public class Cassandra { TProtocolUtil.skip(iprot, field.type); } break; - case -5: + case TIMESTAMP: if (field.type == TType.I64) { this.timestamp = iprot.readI64(); this.__isset.timestamp = true; @@ -2598,80 +4216,100 @@ public class Cassandra { iprot.readFieldEnd(); } iprot.readStructEnd(); + + + // check for required fields of primitive type, which can't be checked in the validate method + validate(); } public void write(TProtocol oprot) throws TException { - TStruct struct = new TStruct("insert_args"); - oprot.writeStructBegin(struct); - TField field = new TField(); + validate(); + + oprot.writeStructBegin(STRUCT_DESC); if (this.tablename != null) { - field.name = "tablename"; - field.type = TType.STRING; - field.id = -1; - oprot.writeFieldBegin(field); + oprot.writeFieldBegin(TABLENAME_FIELD_DESC); oprot.writeString(this.tablename); oprot.writeFieldEnd(); } if (this.key != null) { - field.name = "key"; - field.type = TType.STRING; - field.id = -2; - oprot.writeFieldBegin(field); + oprot.writeFieldBegin(KEY_FIELD_DESC); oprot.writeString(this.key); oprot.writeFieldEnd(); } if (this.columnFamily_column != null) { - field.name = "columnFamily_column"; - field.type = TType.STRING; - field.id = -3; - oprot.writeFieldBegin(field); + oprot.writeFieldBegin(COLUMN_FAMILY_COLUMN_FIELD_DESC); oprot.writeString(this.columnFamily_column); oprot.writeFieldEnd(); } if (this.cellData != null) { - field.name = "cellData"; - field.type = TType.STRING; - field.id = -4; - oprot.writeFieldBegin(field); + oprot.writeFieldBegin(CELL_DATA_FIELD_DESC); oprot.writeString(this.cellData); oprot.writeFieldEnd(); } - field.name = "timestamp"; - field.type = TType.I64; - field.id = -5; - oprot.writeFieldBegin(field); + oprot.writeFieldBegin(TIMESTAMP_FIELD_DESC); oprot.writeI64(this.timestamp); oprot.writeFieldEnd(); oprot.writeFieldStop(); oprot.writeStructEnd(); } + @Override public String toString() { StringBuilder sb = new StringBuilder("insert_args("); + boolean first = true; + + if (!first) sb.append(", "); sb.append("tablename:"); sb.append(this.tablename); - sb.append(",key:"); + first = false; + if (!first) sb.append(", "); + sb.append("key:"); sb.append(this.key); - sb.append(",columnFamily_column:"); + first = false; + if (!first) sb.append(", "); + sb.append("columnFamily_column:"); sb.append(this.columnFamily_column); - sb.append(",cellData:"); + first = false; + if (!first) sb.append(", "); + sb.append("cellData:"); sb.append(this.cellData); - sb.append(",timestamp:"); + first = false; + if (!first) sb.append(", "); + sb.append("timestamp:"); sb.append(this.timestamp); + first = false; sb.append(")"); return sb.toString(); } + public void validate() throws TException { + // check for required fields + // check that fields of type enum have valid values + } + } - public static class batch_insert_args implements TBase, java.io.Serializable { - public batch_mutation_t batchMutation; + public static class batch_insert_args implements TBase, java.io.Serializable, Cloneable { + private static final TStruct STRUCT_DESC = new TStruct("batch_insert_args"); + private static final TField BATCH_MUTATION_FIELD_DESC = new TField("batchMutation", TType.STRUCT, (short)-1); - public final Isset __isset = new Isset(); - public static final class Isset implements java.io.Serializable { + public batch_mutation_t batchMutation; + public static final int BATCHMUTATION = -1; + + private final Isset __isset = new Isset(); + private static final class Isset implements java.io.Serializable { public boolean batchMutation = false; } + public static final Map metaDataMap = Collections.unmodifiableMap(new HashMap() {{ + put(BATCHMUTATION, new FieldMetaData("batchMutation", TFieldRequirementType.DEFAULT, + new StructMetaData(TType.STRUCT, batch_mutation_t.class))); + }}); + + static { + FieldMetaData.addStructMetaDataMap(batch_insert_args.class, metaDataMap); + } + public batch_insert_args() { } @@ -2680,9 +4318,79 @@ public class Cassandra { { this(); this.batchMutation = batchMutation; - this.__isset.batchMutation = true; + this.__isset.batchMutation = (batchMutation != null); } + /** + * Performs a deep copy on other. + */ + public batch_insert_args(batch_insert_args other) { + __isset.batchMutation = other.__isset.batchMutation; + if (other.batchMutation != null) { + this.batchMutation = new batch_mutation_t(other.batchMutation); + } + } + + @Override + public batch_insert_args clone() { + return new batch_insert_args(this); + } + + public batch_mutation_t getBatchMutation() { + return this.batchMutation; + } + + public void setBatchMutation(batch_mutation_t batchMutation) { + this.batchMutation = batchMutation; + this.__isset.batchMutation = (batchMutation != null); + } + + public void unsetBatchMutation() { + this.batchMutation = null; + this.__isset.batchMutation = false; + } + + // Returns true if field batchMutation is set (has been asigned a value) and false otherwise + public boolean isSetBatchMutation() { + return this.__isset.batchMutation; + } + + public void setBatchMutationIsSet(boolean value) { + this.__isset.batchMutation = value; + } + + public void setFieldValue(int fieldID, Object value) { + switch (fieldID) { + case BATCHMUTATION: + setBatchMutation((batch_mutation_t)value); + break; + + default: + throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); + } + } + + public Object getFieldValue(int fieldID) { + switch (fieldID) { + case BATCHMUTATION: + return getBatchMutation(); + + default: + throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); + } + } + + // Returns true if field corresponding to fieldID is set (has been asigned a value) and false otherwise + public boolean isSet(int fieldID) { + switch (fieldID) { + case BATCHMUTATION: + return this.__isset.batchMutation; + default: + throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); + } + } + + @Override public boolean equals(Object that) { if (that == null) return false; @@ -2707,6 +4415,7 @@ public class Cassandra { return true; } + @Override public int hashCode() { return 0; } @@ -2722,7 +4431,7 @@ public class Cassandra { } switch (field.id) { - case -1: + case BATCHMUTATION: if (field.type == TType.STRUCT) { this.batchMutation = new batch_mutation_t(); this.batchMutation.read(iprot); @@ -2738,17 +4447,18 @@ public class Cassandra { iprot.readFieldEnd(); } iprot.readStructEnd(); + + + // check for required fields of primitive type, which can't be checked in the validate method + validate(); } public void write(TProtocol oprot) throws TException { - TStruct struct = new TStruct("batch_insert_args"); - oprot.writeStructBegin(struct); - TField field = new TField(); + validate(); + + oprot.writeStructBegin(STRUCT_DESC); if (this.batchMutation != null) { - field.name = "batchMutation"; - field.type = TType.STRUCT; - field.id = -1; - oprot.writeFieldBegin(field); + oprot.writeFieldBegin(BATCH_MUTATION_FIELD_DESC); this.batchMutation.write(oprot); oprot.writeFieldEnd(); } @@ -2756,24 +4466,47 @@ public class Cassandra { oprot.writeStructEnd(); } + @Override public String toString() { StringBuilder sb = new StringBuilder("batch_insert_args("); + boolean first = true; + + if (!first) sb.append(", "); sb.append("batchMutation:"); sb.append(this.batchMutation); + first = false; sb.append(")"); return sb.toString(); } + public void validate() throws TException { + // check for required fields + // check that fields of type enum have valid values + } + } - public static class batch_insert_blocking_args implements TBase, java.io.Serializable { - public batch_mutation_t batchMutation; + public static class batch_insert_blocking_args implements TBase, java.io.Serializable, Cloneable { + private static final TStruct STRUCT_DESC = new TStruct("batch_insert_blocking_args"); + private static final TField BATCH_MUTATION_FIELD_DESC = new TField("batchMutation", TType.STRUCT, (short)-1); - public final Isset __isset = new Isset(); - public static final class Isset implements java.io.Serializable { + public batch_mutation_t batchMutation; + public static final int BATCHMUTATION = -1; + + private final Isset __isset = new Isset(); + private static final class Isset implements java.io.Serializable { public boolean batchMutation = false; } + public static final Map metaDataMap = Collections.unmodifiableMap(new HashMap() {{ + put(BATCHMUTATION, new FieldMetaData("batchMutation", TFieldRequirementType.DEFAULT, + new StructMetaData(TType.STRUCT, batch_mutation_t.class))); + }}); + + static { + FieldMetaData.addStructMetaDataMap(batch_insert_blocking_args.class, metaDataMap); + } + public batch_insert_blocking_args() { } @@ -2782,9 +4515,79 @@ public class Cassandra { { this(); this.batchMutation = batchMutation; - this.__isset.batchMutation = true; + this.__isset.batchMutation = (batchMutation != null); } + /** + * Performs a deep copy on other. + */ + public batch_insert_blocking_args(batch_insert_blocking_args other) { + __isset.batchMutation = other.__isset.batchMutation; + if (other.batchMutation != null) { + this.batchMutation = new batch_mutation_t(other.batchMutation); + } + } + + @Override + public batch_insert_blocking_args clone() { + return new batch_insert_blocking_args(this); + } + + public batch_mutation_t getBatchMutation() { + return this.batchMutation; + } + + public void setBatchMutation(batch_mutation_t batchMutation) { + this.batchMutation = batchMutation; + this.__isset.batchMutation = (batchMutation != null); + } + + public void unsetBatchMutation() { + this.batchMutation = null; + this.__isset.batchMutation = false; + } + + // Returns true if field batchMutation is set (has been asigned a value) and false otherwise + public boolean isSetBatchMutation() { + return this.__isset.batchMutation; + } + + public void setBatchMutationIsSet(boolean value) { + this.__isset.batchMutation = value; + } + + public void setFieldValue(int fieldID, Object value) { + switch (fieldID) { + case BATCHMUTATION: + setBatchMutation((batch_mutation_t)value); + break; + + default: + throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); + } + } + + public Object getFieldValue(int fieldID) { + switch (fieldID) { + case BATCHMUTATION: + return getBatchMutation(); + + default: + throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); + } + } + + // Returns true if field corresponding to fieldID is set (has been asigned a value) and false otherwise + public boolean isSet(int fieldID) { + switch (fieldID) { + case BATCHMUTATION: + return this.__isset.batchMutation; + default: + throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); + } + } + + @Override public boolean equals(Object that) { if (that == null) return false; @@ -2809,6 +4612,7 @@ public class Cassandra { return true; } + @Override public int hashCode() { return 0; } @@ -2824,7 +4628,7 @@ public class Cassandra { } switch (field.id) { - case -1: + case BATCHMUTATION: if (field.type == TType.STRUCT) { this.batchMutation = new batch_mutation_t(); this.batchMutation.read(iprot); @@ -2840,17 +4644,18 @@ public class Cassandra { iprot.readFieldEnd(); } iprot.readStructEnd(); + + + // check for required fields of primitive type, which can't be checked in the validate method + validate(); } public void write(TProtocol oprot) throws TException { - TStruct struct = new TStruct("batch_insert_blocking_args"); - oprot.writeStructBegin(struct); - TField field = new TField(); + validate(); + + oprot.writeStructBegin(STRUCT_DESC); if (this.batchMutation != null) { - field.name = "batchMutation"; - field.type = TType.STRUCT; - field.id = -1; - oprot.writeFieldBegin(field); + oprot.writeFieldBegin(BATCH_MUTATION_FIELD_DESC); this.batchMutation.write(oprot); oprot.writeFieldEnd(); } @@ -2858,26 +4663,53 @@ public class Cassandra { oprot.writeStructEnd(); } + @Override public String toString() { StringBuilder sb = new StringBuilder("batch_insert_blocking_args("); + boolean first = true; + + if (!first) sb.append(", "); sb.append("batchMutation:"); sb.append(this.batchMutation); + first = false; sb.append(")"); return sb.toString(); } + public void validate() throws TException { + // check for required fields + // check that fields of type enum have valid values + } + } - public static class batch_insert_blocking_result implements TBase, java.io.Serializable { - public boolean success; - public CassandraException e; + public static class batch_insert_blocking_result implements TBase, java.io.Serializable, Cloneable { + private static final TStruct STRUCT_DESC = new TStruct("batch_insert_blocking_result"); + private static final TField SUCCESS_FIELD_DESC = new TField("success", TType.BOOL, (short)0); + private static final TField E_FIELD_DESC = new TField("e", TType.STRUCT, (short)1); - public final Isset __isset = new Isset(); - public static final class Isset implements java.io.Serializable { + public boolean success; + public static final int SUCCESS = 0; + public CassandraException e; + public static final int E = 1; + + private final Isset __isset = new Isset(); + private static final class Isset implements java.io.Serializable { public boolean success = false; public boolean e = false; } + public static final Map metaDataMap = Collections.unmodifiableMap(new HashMap() {{ + put(SUCCESS, new FieldMetaData("success", TFieldRequirementType.DEFAULT, + new FieldValueMetaData(TType.BOOL))); + put(E, new FieldMetaData("e", TFieldRequirementType.DEFAULT, + new FieldValueMetaData(TType.STRUCT))); + }}); + + static { + FieldMetaData.addStructMetaDataMap(batch_insert_blocking_result.class, metaDataMap); + } + public batch_insert_blocking_result() { } @@ -2889,9 +4721,112 @@ public class Cassandra { this.success = success; this.__isset.success = true; this.e = e; - this.__isset.e = true; + this.__isset.e = (e != null); } + /** + * Performs a deep copy on other. + */ + public batch_insert_blocking_result(batch_insert_blocking_result other) { + __isset.success = other.__isset.success; + this.success = other.success; + __isset.e = other.__isset.e; + if (other.e != null) { + this.e = new CassandraException(other.e); + } + } + + @Override + public batch_insert_blocking_result clone() { + return new batch_insert_blocking_result(this); + } + + public boolean isSuccess() { + return this.success; + } + + public void setSuccess(boolean success) { + this.success = success; + this.__isset.success = true; + } + + public void unsetSuccess() { + this.__isset.success = false; + } + + // Returns true if field success is set (has been asigned a value) and false otherwise + public boolean isSetSuccess() { + return this.__isset.success; + } + + public void setSuccessIsSet(boolean value) { + this.__isset.success = value; + } + + public CassandraException getE() { + return this.e; + } + + public void setE(CassandraException e) { + this.e = e; + this.__isset.e = (e != null); + } + + public void unsetE() { + this.e = null; + this.__isset.e = false; + } + + // Returns true if field e is set (has been asigned a value) and false otherwise + public boolean isSetE() { + return this.__isset.e; + } + + public void setEIsSet(boolean value) { + this.__isset.e = value; + } + + public void setFieldValue(int fieldID, Object value) { + switch (fieldID) { + case SUCCESS: + setSuccess((Boolean)value); + break; + + case E: + setE((CassandraException)value); + break; + + default: + throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); + } + } + + public Object getFieldValue(int fieldID) { + switch (fieldID) { + case SUCCESS: + return new Boolean(isSuccess()); + + case E: + return getE(); + + default: + throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); + } + } + + // Returns true if field corresponding to fieldID is set (has been asigned a value) and false otherwise + public boolean isSet(int fieldID) { + switch (fieldID) { + case SUCCESS: + return this.__isset.success; + case E: + return this.__isset.e; + default: + throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); + } + } + + @Override public boolean equals(Object that) { if (that == null) return false; @@ -2925,6 +4860,7 @@ public class Cassandra { return true; } + @Override public int hashCode() { return 0; } @@ -2940,7 +4876,7 @@ public class Cassandra { } switch (field.id) { - case 0: + case SUCCESS: if (field.type == TType.BOOL) { this.success = iprot.readBool(); this.__isset.success = true; @@ -2948,7 +4884,7 @@ public class Cassandra { TProtocolUtil.skip(iprot, field.type); } break; - case 1: + case E: if (field.type == TType.STRUCT) { this.e = new CassandraException(); this.e.read(iprot); @@ -2964,26 +4900,22 @@ public class Cassandra { iprot.readFieldEnd(); } iprot.readStructEnd(); + + + // check for required fields of primitive type, which can't be checked in the validate method + validate(); } public void write(TProtocol oprot) throws TException { - TStruct struct = new TStruct("batch_insert_blocking_result"); - oprot.writeStructBegin(struct); - TField field = new TField(); + oprot.writeStructBegin(STRUCT_DESC); if (this.__isset.success) { - field.name = "success"; - field.type = TType.BOOL; - field.id = 0; - oprot.writeFieldBegin(field); + oprot.writeFieldBegin(SUCCESS_FIELD_DESC); oprot.writeBool(this.success); oprot.writeFieldEnd(); } else if (this.__isset.e) { if (this.e != null) { - field.name = "e"; - field.type = TType.STRUCT; - field.id = 1; - oprot.writeFieldBegin(field); + oprot.writeFieldBegin(E_FIELD_DESC); this.e.write(oprot); oprot.writeFieldEnd(); } @@ -2992,30 +4924,63 @@ public class Cassandra { oprot.writeStructEnd(); } + @Override public String toString() { StringBuilder sb = new StringBuilder("batch_insert_blocking_result("); + boolean first = true; + + if (!first) sb.append(", "); sb.append("success:"); sb.append(this.success); - sb.append(",e:"); + first = false; + if (!first) sb.append(", "); + sb.append("e:"); sb.append(this.e); + first = false; sb.append(")"); return sb.toString(); } + public void validate() throws TException { + // check for required fields + // check that fields of type enum have valid values + } + } - public static class remove_args implements TBase, java.io.Serializable { - public String tablename; - public String key; - public String columnFamily_column; + public static class remove_args implements TBase, java.io.Serializable, Cloneable { + private static final TStruct STRUCT_DESC = new TStruct("remove_args"); + private static final TField TABLENAME_FIELD_DESC = new TField("tablename", TType.STRING, (short)-1); + private static final TField KEY_FIELD_DESC = new TField("key", TType.STRING, (short)-2); + private static final TField COLUMN_FAMILY_COLUMN_FIELD_DESC = new TField("columnFamily_column", TType.STRING, (short)-3); - public final Isset __isset = new Isset(); - public static final class Isset implements java.io.Serializable { + public String tablename; + public static final int TABLENAME = -1; + public String key; + public static final int KEY = -2; + public String columnFamily_column; + public static final int COLUMNFAMILY_COLUMN = -3; + + private final Isset __isset = new Isset(); + private static final class Isset implements java.io.Serializable { public boolean tablename = false; public boolean key = false; public boolean columnFamily_column = false; } + public static final Map metaDataMap = Collections.unmodifiableMap(new HashMap() {{ + put(TABLENAME, new FieldMetaData("tablename", TFieldRequirementType.DEFAULT, + new FieldValueMetaData(TType.STRING))); + put(KEY, new FieldMetaData("key", TFieldRequirementType.DEFAULT, + new FieldValueMetaData(TType.STRING))); + put(COLUMNFAMILY_COLUMN, new FieldMetaData("columnFamily_column", TFieldRequirementType.DEFAULT, + new FieldValueMetaData(TType.STRING))); + }}); + + static { + FieldMetaData.addStructMetaDataMap(remove_args.class, metaDataMap); + } + public remove_args() { } @@ -3026,13 +4991,152 @@ public class Cassandra { { this(); this.tablename = tablename; - this.__isset.tablename = true; + this.__isset.tablename = (tablename != null); this.key = key; - this.__isset.key = true; + this.__isset.key = (key != null); this.columnFamily_column = columnFamily_column; - this.__isset.columnFamily_column = true; + this.__isset.columnFamily_column = (columnFamily_column != null); } + /** + * Performs a deep copy on other. + */ + public remove_args(remove_args other) { + __isset.tablename = other.__isset.tablename; + if (other.tablename != null) { + this.tablename = other.tablename; + } + __isset.key = other.__isset.key; + if (other.key != null) { + this.key = other.key; + } + __isset.columnFamily_column = other.__isset.columnFamily_column; + if (other.columnFamily_column != null) { + this.columnFamily_column = other.columnFamily_column; + } + } + + @Override + public remove_args clone() { + return new remove_args(this); + } + + public String getTablename() { + return this.tablename; + } + + public void setTablename(String tablename) { + this.tablename = tablename; + this.__isset.tablename = (tablename != null); + } + + public void unsetTablename() { + this.__isset.tablename = false; + } + + // Returns true if field tablename is set (has been asigned a value) and false otherwise + public boolean isSetTablename() { + return this.__isset.tablename; + } + + public void setTablenameIsSet(boolean value) { + this.__isset.tablename = value; + } + + public String getKey() { + return this.key; + } + + public void setKey(String key) { + this.key = key; + this.__isset.key = (key != null); + } + + public void unsetKey() { + this.__isset.key = false; + } + + // Returns true if field key is set (has been asigned a value) and false otherwise + public boolean isSetKey() { + return this.__isset.key; + } + + public void setKeyIsSet(boolean value) { + this.__isset.key = value; + } + + public String getColumnFamily_column() { + return this.columnFamily_column; + } + + public void setColumnFamily_column(String columnFamily_column) { + this.columnFamily_column = columnFamily_column; + this.__isset.columnFamily_column = (columnFamily_column != null); + } + + public void unsetColumnFamily_column() { + this.__isset.columnFamily_column = false; + } + + // Returns true if field columnFamily_column is set (has been asigned a value) and false otherwise + public boolean isSetColumnFamily_column() { + return this.__isset.columnFamily_column; + } + + public void setColumnFamily_columnIsSet(boolean value) { + this.__isset.columnFamily_column = value; + } + + public void setFieldValue(int fieldID, Object value) { + switch (fieldID) { + case TABLENAME: + setTablename((String)value); + break; + + case KEY: + setKey((String)value); + break; + + case COLUMNFAMILY_COLUMN: + setColumnFamily_column((String)value); + break; + + default: + throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); + } + } + + public Object getFieldValue(int fieldID) { + switch (fieldID) { + case TABLENAME: + return getTablename(); + + case KEY: + return getKey(); + + case COLUMNFAMILY_COLUMN: + return getColumnFamily_column(); + + default: + throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); + } + } + + // Returns true if field corresponding to fieldID is set (has been asigned a value) and false otherwise + public boolean isSet(int fieldID) { + switch (fieldID) { + case TABLENAME: + return this.__isset.tablename; + case KEY: + return this.__isset.key; + case COLUMNFAMILY_COLUMN: + return this.__isset.columnFamily_column; + default: + throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); + } + } + + @Override public boolean equals(Object that) { if (that == null) return false; @@ -3075,6 +5179,7 @@ public class Cassandra { return true; } + @Override public int hashCode() { return 0; } @@ -3090,7 +5195,7 @@ public class Cassandra { } switch (field.id) { - case -1: + case TABLENAME: if (field.type == TType.STRING) { this.tablename = iprot.readString(); this.__isset.tablename = true; @@ -3098,7 +5203,7 @@ public class Cassandra { TProtocolUtil.skip(iprot, field.type); } break; - case -2: + case KEY: if (field.type == TType.STRING) { this.key = iprot.readString(); this.__isset.key = true; @@ -3106,7 +5211,7 @@ public class Cassandra { TProtocolUtil.skip(iprot, field.type); } break; - case -3: + case COLUMNFAMILY_COLUMN: if (field.type == TType.STRING) { this.columnFamily_column = iprot.readString(); this.__isset.columnFamily_column = true; @@ -3121,33 +5226,28 @@ public class Cassandra { iprot.readFieldEnd(); } iprot.readStructEnd(); + + + // check for required fields of primitive type, which can't be checked in the validate method + validate(); } public void write(TProtocol oprot) throws TException { - TStruct struct = new TStruct("remove_args"); - oprot.writeStructBegin(struct); - TField field = new TField(); + validate(); + + oprot.writeStructBegin(STRUCT_DESC); if (this.tablename != null) { - field.name = "tablename"; - field.type = TType.STRING; - field.id = -1; - oprot.writeFieldBegin(field); + oprot.writeFieldBegin(TABLENAME_FIELD_DESC); oprot.writeString(this.tablename); oprot.writeFieldEnd(); } if (this.key != null) { - field.name = "key"; - field.type = TType.STRING; - field.id = -2; - oprot.writeFieldBegin(field); + oprot.writeFieldBegin(KEY_FIELD_DESC); oprot.writeString(this.key); oprot.writeFieldEnd(); } if (this.columnFamily_column != null) { - field.name = "columnFamily_column"; - field.type = TType.STRING; - field.id = -3; - oprot.writeFieldBegin(field); + oprot.writeFieldBegin(COLUMN_FAMILY_COLUMN_FIELD_DESC); oprot.writeString(this.columnFamily_column); oprot.writeFieldEnd(); } @@ -3155,34 +5255,73 @@ public class Cassandra { oprot.writeStructEnd(); } + @Override public String toString() { StringBuilder sb = new StringBuilder("remove_args("); + boolean first = true; + + if (!first) sb.append(", "); sb.append("tablename:"); sb.append(this.tablename); - sb.append(",key:"); + first = false; + if (!first) sb.append(", "); + sb.append("key:"); sb.append(this.key); - sb.append(",columnFamily_column:"); + first = false; + if (!first) sb.append(", "); + sb.append("columnFamily_column:"); sb.append(this.columnFamily_column); + first = false; sb.append(")"); return sb.toString(); } + public void validate() throws TException { + // check for required fields + // check that fields of type enum have valid values + } + } - public static class get_columns_since_args implements TBase, java.io.Serializable { - public String tablename; - public String key; - public String columnFamily_column; - public long timeStamp; + public static class get_columns_since_args implements TBase, java.io.Serializable, Cloneable { + private static final TStruct STRUCT_DESC = new TStruct("get_columns_since_args"); + private static final TField TABLENAME_FIELD_DESC = new TField("tablename", TType.STRING, (short)-1); + private static final TField KEY_FIELD_DESC = new TField("key", TType.STRING, (short)-2); + private static final TField COLUMN_FAMILY_COLUMN_FIELD_DESC = new TField("columnFamily_column", TType.STRING, (short)-3); + private static final TField TIME_STAMP_FIELD_DESC = new TField("timeStamp", TType.I64, (short)-4); - public final Isset __isset = new Isset(); - public static final class Isset implements java.io.Serializable { + public String tablename; + public static final int TABLENAME = -1; + public String key; + public static final int KEY = -2; + public String columnFamily_column; + public static final int COLUMNFAMILY_COLUMN = -3; + public long timeStamp; + public static final int TIMESTAMP = -4; + + private final Isset __isset = new Isset(); + private static final class Isset implements java.io.Serializable { public boolean tablename = false; public boolean key = false; public boolean columnFamily_column = false; public boolean timeStamp = false; } + public static final Map metaDataMap = Collections.unmodifiableMap(new HashMap() {{ + put(TABLENAME, new FieldMetaData("tablename", TFieldRequirementType.DEFAULT, + new FieldValueMetaData(TType.STRING))); + put(KEY, new FieldMetaData("key", TFieldRequirementType.DEFAULT, + new FieldValueMetaData(TType.STRING))); + put(COLUMNFAMILY_COLUMN, new FieldMetaData("columnFamily_column", TFieldRequirementType.DEFAULT, + new FieldValueMetaData(TType.STRING))); + put(TIMESTAMP, new FieldMetaData("timeStamp", TFieldRequirementType.DEFAULT, + new FieldValueMetaData(TType.I64))); + }}); + + static { + FieldMetaData.addStructMetaDataMap(get_columns_since_args.class, metaDataMap); + } + public get_columns_since_args() { } @@ -3194,15 +5333,187 @@ public class Cassandra { { this(); this.tablename = tablename; - this.__isset.tablename = true; + this.__isset.tablename = (tablename != null); this.key = key; - this.__isset.key = true; + this.__isset.key = (key != null); this.columnFamily_column = columnFamily_column; - this.__isset.columnFamily_column = true; + this.__isset.columnFamily_column = (columnFamily_column != null); this.timeStamp = timeStamp; this.__isset.timeStamp = true; } + /** + * Performs a deep copy on other. + */ + public get_columns_since_args(get_columns_since_args other) { + __isset.tablename = other.__isset.tablename; + if (other.tablename != null) { + this.tablename = other.tablename; + } + __isset.key = other.__isset.key; + if (other.key != null) { + this.key = other.key; + } + __isset.columnFamily_column = other.__isset.columnFamily_column; + if (other.columnFamily_column != null) { + this.columnFamily_column = other.columnFamily_column; + } + __isset.timeStamp = other.__isset.timeStamp; + this.timeStamp = other.timeStamp; + } + + @Override + public get_columns_since_args clone() { + return new get_columns_since_args(this); + } + + public String getTablename() { + return this.tablename; + } + + public void setTablename(String tablename) { + this.tablename = tablename; + this.__isset.tablename = (tablename != null); + } + + public void unsetTablename() { + this.__isset.tablename = false; + } + + // Returns true if field tablename is set (has been asigned a value) and false otherwise + public boolean isSetTablename() { + return this.__isset.tablename; + } + + public void setTablenameIsSet(boolean value) { + this.__isset.tablename = value; + } + + public String getKey() { + return this.key; + } + + public void setKey(String key) { + this.key = key; + this.__isset.key = (key != null); + } + + public void unsetKey() { + this.__isset.key = false; + } + + // Returns true if field key is set (has been asigned a value) and false otherwise + public boolean isSetKey() { + return this.__isset.key; + } + + public void setKeyIsSet(boolean value) { + this.__isset.key = value; + } + + public String getColumnFamily_column() { + return this.columnFamily_column; + } + + public void setColumnFamily_column(String columnFamily_column) { + this.columnFamily_column = columnFamily_column; + this.__isset.columnFamily_column = (columnFamily_column != null); + } + + public void unsetColumnFamily_column() { + this.__isset.columnFamily_column = false; + } + + // Returns true if field columnFamily_column is set (has been asigned a value) and false otherwise + public boolean isSetColumnFamily_column() { + return this.__isset.columnFamily_column; + } + + public void setColumnFamily_columnIsSet(boolean value) { + this.__isset.columnFamily_column = value; + } + + public long getTimeStamp() { + return this.timeStamp; + } + + public void setTimeStamp(long timeStamp) { + this.timeStamp = timeStamp; + this.__isset.timeStamp = true; + } + + public void unsetTimeStamp() { + this.__isset.timeStamp = false; + } + + // Returns true if field timeStamp is set (has been asigned a value) and false otherwise + public boolean isSetTimeStamp() { + return this.__isset.timeStamp; + } + + public void setTimeStampIsSet(boolean value) { + this.__isset.timeStamp = value; + } + + public void setFieldValue(int fieldID, Object value) { + switch (fieldID) { + case TABLENAME: + setTablename((String)value); + break; + + case KEY: + setKey((String)value); + break; + + case COLUMNFAMILY_COLUMN: + setColumnFamily_column((String)value); + break; + + case TIMESTAMP: + setTimeStamp((Long)value); + break; + + default: + throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); + } + } + + public Object getFieldValue(int fieldID) { + switch (fieldID) { + case TABLENAME: + return getTablename(); + + case KEY: + return getKey(); + + case COLUMNFAMILY_COLUMN: + return getColumnFamily_column(); + + case TIMESTAMP: + return new Long(getTimeStamp()); + + default: + throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); + } + } + + // Returns true if field corresponding to fieldID is set (has been asigned a value) and false otherwise + public boolean isSet(int fieldID) { + switch (fieldID) { + case TABLENAME: + return this.__isset.tablename; + case KEY: + return this.__isset.key; + case COLUMNFAMILY_COLUMN: + return this.__isset.columnFamily_column; + case TIMESTAMP: + return this.__isset.timeStamp; + default: + throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); + } + } + + @Override public boolean equals(Object that) { if (that == null) return false; @@ -3254,6 +5565,7 @@ public class Cassandra { return true; } + @Override public int hashCode() { return 0; } @@ -3269,7 +5581,7 @@ public class Cassandra { } switch (field.id) { - case -1: + case TABLENAME: if (field.type == TType.STRING) { this.tablename = iprot.readString(); this.__isset.tablename = true; @@ -3277,7 +5589,7 @@ public class Cassandra { TProtocolUtil.skip(iprot, field.type); } break; - case -2: + case KEY: if (field.type == TType.STRING) { this.key = iprot.readString(); this.__isset.key = true; @@ -3285,7 +5597,7 @@ public class Cassandra { TProtocolUtil.skip(iprot, field.type); } break; - case -3: + case COLUMNFAMILY_COLUMN: if (field.type == TType.STRING) { this.columnFamily_column = iprot.readString(); this.__isset.columnFamily_column = true; @@ -3293,7 +5605,7 @@ public class Cassandra { TProtocolUtil.skip(iprot, field.type); } break; - case -4: + case TIMESTAMP: if (field.type == TType.I64) { this.timeStamp = iprot.readI64(); this.__isset.timeStamp = true; @@ -3308,72 +5620,98 @@ public class Cassandra { iprot.readFieldEnd(); } iprot.readStructEnd(); + + + // check for required fields of primitive type, which can't be checked in the validate method + validate(); } public void write(TProtocol oprot) throws TException { - TStruct struct = new TStruct("get_columns_since_args"); - oprot.writeStructBegin(struct); - TField field = new TField(); + validate(); + + oprot.writeStructBegin(STRUCT_DESC); if (this.tablename != null) { - field.name = "tablename"; - field.type = TType.STRING; - field.id = -1; - oprot.writeFieldBegin(field); + oprot.writeFieldBegin(TABLENAME_FIELD_DESC); oprot.writeString(this.tablename); oprot.writeFieldEnd(); } if (this.key != null) { - field.name = "key"; - field.type = TType.STRING; - field.id = -2; - oprot.writeFieldBegin(field); + oprot.writeFieldBegin(KEY_FIELD_DESC); oprot.writeString(this.key); oprot.writeFieldEnd(); } if (this.columnFamily_column != null) { - field.name = "columnFamily_column"; - field.type = TType.STRING; - field.id = -3; - oprot.writeFieldBegin(field); + oprot.writeFieldBegin(COLUMN_FAMILY_COLUMN_FIELD_DESC); oprot.writeString(this.columnFamily_column); oprot.writeFieldEnd(); } - field.name = "timeStamp"; - field.type = TType.I64; - field.id = -4; - oprot.writeFieldBegin(field); + oprot.writeFieldBegin(TIME_STAMP_FIELD_DESC); oprot.writeI64(this.timeStamp); oprot.writeFieldEnd(); oprot.writeFieldStop(); oprot.writeStructEnd(); } + @Override public String toString() { StringBuilder sb = new StringBuilder("get_columns_since_args("); + boolean first = true; + + if (!first) sb.append(", "); sb.append("tablename:"); sb.append(this.tablename); - sb.append(",key:"); + first = false; + if (!first) sb.append(", "); + sb.append("key:"); sb.append(this.key); - sb.append(",columnFamily_column:"); + first = false; + if (!first) sb.append(", "); + sb.append("columnFamily_column:"); sb.append(this.columnFamily_column); - sb.append(",timeStamp:"); + first = false; + if (!first) sb.append(", "); + sb.append("timeStamp:"); sb.append(this.timeStamp); + first = false; sb.append(")"); return sb.toString(); } + public void validate() throws TException { + // check for required fields + // check that fields of type enum have valid values + } + } - public static class get_columns_since_result implements TBase, java.io.Serializable { - public List success; - public CassandraException e; + public static class get_columns_since_result implements TBase, java.io.Serializable, Cloneable { + private static final TStruct STRUCT_DESC = new TStruct("get_columns_since_result"); + private static final TField SUCCESS_FIELD_DESC = new TField("success", TType.LIST, (short)0); + private static final TField E_FIELD_DESC = new TField("e", TType.STRUCT, (short)1); - public final Isset __isset = new Isset(); - public static final class Isset implements java.io.Serializable { + public List success; + public static final int SUCCESS = 0; + public CassandraException e; + public static final int E = 1; + + private final Isset __isset = new Isset(); + private static final class Isset implements java.io.Serializable { public boolean success = false; public boolean e = false; } + public static final Map metaDataMap = Collections.unmodifiableMap(new HashMap() {{ + put(SUCCESS, new FieldMetaData("success", TFieldRequirementType.DEFAULT, + new ListMetaData(TType.LIST, + new StructMetaData(TType.STRUCT, column_t.class)))); + put(E, new FieldMetaData("e", TFieldRequirementType.DEFAULT, + new FieldValueMetaData(TType.STRUCT))); + }}); + + static { + FieldMetaData.addStructMetaDataMap(get_columns_since_result.class, metaDataMap); + } + public get_columns_since_result() { } @@ -3383,11 +5721,137 @@ public class Cassandra { { this(); this.success = success; - this.__isset.success = true; + this.__isset.success = (success != null); this.e = e; - this.__isset.e = true; + this.__isset.e = (e != null); } + /** + * Performs a deep copy on other. + */ + public get_columns_since_result(get_columns_since_result other) { + __isset.success = other.__isset.success; + if (other.success != null) { + List __this__success = new ArrayList(); + for (column_t other_element : other.success) { + __this__success.add(new column_t(other_element)); + } + this.success = __this__success; + } + __isset.e = other.__isset.e; + if (other.e != null) { + this.e = new CassandraException(other.e); + } + } + + @Override + public get_columns_since_result clone() { + return new get_columns_since_result(this); + } + + public int getSuccessSize() { + return (this.success == null) ? 0 : this.success.size(); + } + + public java.util.Iterator getSuccessIterator() { + return (this.success == null) ? null : this.success.iterator(); + } + + public void addToSuccess(column_t elem) { + if (this.success == null) { + this.success = new ArrayList(); + } + this.success.add(elem); + this.__isset.success = true; + } + + public List getSuccess() { + return this.success; + } + + public void setSuccess(List success) { + this.success = success; + this.__isset.success = (success != null); + } + + public void unsetSuccess() { + this.success = null; + this.__isset.success = false; + } + + // Returns true if field success is set (has been asigned a value) and false otherwise + public boolean isSetSuccess() { + return this.__isset.success; + } + + public void setSuccessIsSet(boolean value) { + this.__isset.success = value; + } + + public CassandraException getE() { + return this.e; + } + + public void setE(CassandraException e) { + this.e = e; + this.__isset.e = (e != null); + } + + public void unsetE() { + this.e = null; + this.__isset.e = false; + } + + // Returns true if field e is set (has been asigned a value) and false otherwise + public boolean isSetE() { + return this.__isset.e; + } + + public void setEIsSet(boolean value) { + this.__isset.e = value; + } + + public void setFieldValue(int fieldID, Object value) { + switch (fieldID) { + case SUCCESS: + setSuccess((List)value); + break; + + case E: + setE((CassandraException)value); + break; + + default: + throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); + } + } + + public Object getFieldValue(int fieldID) { + switch (fieldID) { + case SUCCESS: + return getSuccess(); + + case E: + return getE(); + + default: + throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); + } + } + + // Returns true if field corresponding to fieldID is set (has been asigned a value) and false otherwise + public boolean isSet(int fieldID) { + switch (fieldID) { + case SUCCESS: + return this.__isset.success; + case E: + return this.__isset.e; + default: + throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); + } + } + + @Override public boolean equals(Object that) { if (that == null) return false; @@ -3421,6 +5885,7 @@ public class Cassandra { return true; } + @Override public int hashCode() { return 0; } @@ -3436,14 +5901,14 @@ public class Cassandra { } switch (field.id) { - case 0: + case SUCCESS: if (field.type == TType.LIST) { { TList _list61 = iprot.readListBegin(); this.success = new ArrayList(_list61.size); for (int _i62 = 0; _i62 < _list61.size; ++_i62) { - column_t _elem63 = new column_t(); + column_t _elem63; _elem63 = new column_t(); _elem63.read(iprot); this.success.add(_elem63); @@ -3455,7 +5920,7 @@ public class Cassandra { TProtocolUtil.skip(iprot, field.type); } break; - case 1: + case E: if (field.type == TType.STRUCT) { this.e = new CassandraException(); this.e.read(iprot); @@ -3471,19 +5936,18 @@ public class Cassandra { iprot.readFieldEnd(); } iprot.readStructEnd(); + + + // check for required fields of primitive type, which can't be checked in the validate method + validate(); } public void write(TProtocol oprot) throws TException { - TStruct struct = new TStruct("get_columns_since_result"); - oprot.writeStructBegin(struct); - TField field = new TField(); + oprot.writeStructBegin(STRUCT_DESC); if (this.__isset.success) { if (this.success != null) { - field.name = "success"; - field.type = TType.LIST; - field.id = 0; - oprot.writeFieldBegin(field); + oprot.writeFieldBegin(SUCCESS_FIELD_DESC); { oprot.writeListBegin(new TList(TType.STRUCT, this.success.size())); for (column_t _iter64 : this.success) { @@ -3495,10 +5959,7 @@ public class Cassandra { } } else if (this.__isset.e) { if (this.e != null) { - field.name = "e"; - field.type = TType.STRUCT; - field.id = 1; - oprot.writeFieldBegin(field); + oprot.writeFieldBegin(E_FIELD_DESC); this.e.write(oprot); oprot.writeFieldEnd(); } @@ -3507,27 +5968,51 @@ public class Cassandra { oprot.writeStructEnd(); } + @Override public String toString() { StringBuilder sb = new StringBuilder("get_columns_since_result("); + boolean first = true; + + if (!first) sb.append(", "); sb.append("success:"); sb.append(this.success); - sb.append(",e:"); + first = false; + if (!first) sb.append(", "); + sb.append("e:"); sb.append(this.e); + first = false; sb.append(")"); return sb.toString(); } + public void validate() throws TException { + // check for required fields + // check that fields of type enum have valid values + } + } - public static class get_slice_super_args implements TBase, java.io.Serializable { - public String tablename; - public String key; - public String columnFamily_superColumnName; - public int start; - public int count; + public static class get_slice_super_args implements TBase, java.io.Serializable, Cloneable { + private static final TStruct STRUCT_DESC = new TStruct("get_slice_super_args"); + private static final TField TABLENAME_FIELD_DESC = new TField("tablename", TType.STRING, (short)-1); + private static final TField KEY_FIELD_DESC = new TField("key", TType.STRING, (short)-2); + private static final TField COLUMN_FAMILY_SUPER_COLUMN_NAME_FIELD_DESC = new TField("columnFamily_superColumnName", TType.STRING, (short)-3); + private static final TField START_FIELD_DESC = new TField("start", TType.I32, (short)-4); + private static final TField COUNT_FIELD_DESC = new TField("count", TType.I32, (short)-5); - public final Isset __isset = new Isset(); - public static final class Isset implements java.io.Serializable { + public String tablename; + public static final int TABLENAME = -1; + public String key; + public static final int KEY = -2; + public String columnFamily_superColumnName; + public static final int COLUMNFAMILY_SUPERCOLUMNNAME = -3; + public int start; + public static final int START = -4; + public int count; + public static final int COUNT = -5; + + private final Isset __isset = new Isset(); + private static final class Isset implements java.io.Serializable { public boolean tablename = false; public boolean key = false; public boolean columnFamily_superColumnName = false; @@ -3535,6 +6020,23 @@ public class Cassandra { public boolean count = false; } + public static final Map metaDataMap = Collections.unmodifiableMap(new HashMap() {{ + put(TABLENAME, new FieldMetaData("tablename", TFieldRequirementType.DEFAULT, + new FieldValueMetaData(TType.STRING))); + put(KEY, new FieldMetaData("key", TFieldRequirementType.DEFAULT, + new FieldValueMetaData(TType.STRING))); + put(COLUMNFAMILY_SUPERCOLUMNNAME, new FieldMetaData("columnFamily_superColumnName", TFieldRequirementType.DEFAULT, + new FieldValueMetaData(TType.STRING))); + put(START, new FieldMetaData("start", TFieldRequirementType.DEFAULT, + new FieldValueMetaData(TType.I32))); + put(COUNT, new FieldMetaData("count", TFieldRequirementType.DEFAULT, + new FieldValueMetaData(TType.I32))); + }}); + + static { + FieldMetaData.addStructMetaDataMap(get_slice_super_args.class, metaDataMap); + } + public get_slice_super_args() { this.start = -1; @@ -3551,17 +6053,222 @@ public class Cassandra { { this(); this.tablename = tablename; - this.__isset.tablename = true; + this.__isset.tablename = (tablename != null); this.key = key; - this.__isset.key = true; + this.__isset.key = (key != null); this.columnFamily_superColumnName = columnFamily_superColumnName; - this.__isset.columnFamily_superColumnName = true; + this.__isset.columnFamily_superColumnName = (columnFamily_superColumnName != null); this.start = start; this.__isset.start = true; this.count = count; this.__isset.count = true; } + /** + * Performs a deep copy on other. + */ + public get_slice_super_args(get_slice_super_args other) { + __isset.tablename = other.__isset.tablename; + if (other.tablename != null) { + this.tablename = other.tablename; + } + __isset.key = other.__isset.key; + if (other.key != null) { + this.key = other.key; + } + __isset.columnFamily_superColumnName = other.__isset.columnFamily_superColumnName; + if (other.columnFamily_superColumnName != null) { + this.columnFamily_superColumnName = other.columnFamily_superColumnName; + } + __isset.start = other.__isset.start; + this.start = other.start; + __isset.count = other.__isset.count; + this.count = other.count; + } + + @Override + public get_slice_super_args clone() { + return new get_slice_super_args(this); + } + + public String getTablename() { + return this.tablename; + } + + public void setTablename(String tablename) { + this.tablename = tablename; + this.__isset.tablename = (tablename != null); + } + + public void unsetTablename() { + this.__isset.tablename = false; + } + + // Returns true if field tablename is set (has been asigned a value) and false otherwise + public boolean isSetTablename() { + return this.__isset.tablename; + } + + public void setTablenameIsSet(boolean value) { + this.__isset.tablename = value; + } + + public String getKey() { + return this.key; + } + + public void setKey(String key) { + this.key = key; + this.__isset.key = (key != null); + } + + public void unsetKey() { + this.__isset.key = false; + } + + // Returns true if field key is set (has been asigned a value) and false otherwise + public boolean isSetKey() { + return this.__isset.key; + } + + public void setKeyIsSet(boolean value) { + this.__isset.key = value; + } + + public String getColumnFamily_superColumnName() { + return this.columnFamily_superColumnName; + } + + public void setColumnFamily_superColumnName(String columnFamily_superColumnName) { + this.columnFamily_superColumnName = columnFamily_superColumnName; + this.__isset.columnFamily_superColumnName = (columnFamily_superColumnName != null); + } + + public void unsetColumnFamily_superColumnName() { + this.__isset.columnFamily_superColumnName = false; + } + + // Returns true if field columnFamily_superColumnName is set (has been asigned a value) and false otherwise + public boolean isSetColumnFamily_superColumnName() { + return this.__isset.columnFamily_superColumnName; + } + + public void setColumnFamily_superColumnNameIsSet(boolean value) { + this.__isset.columnFamily_superColumnName = value; + } + + public int getStart() { + return this.start; + } + + public void setStart(int start) { + this.start = start; + this.__isset.start = true; + } + + public void unsetStart() { + this.__isset.start = false; + } + + // Returns true if field start is set (has been asigned a value) and false otherwise + public boolean isSetStart() { + return this.__isset.start; + } + + public void setStartIsSet(boolean value) { + this.__isset.start = value; + } + + public int getCount() { + return this.count; + } + + public void setCount(int count) { + this.count = count; + this.__isset.count = true; + } + + public void unsetCount() { + this.__isset.count = false; + } + + // Returns true if field count is set (has been asigned a value) and false otherwise + public boolean isSetCount() { + return this.__isset.count; + } + + public void setCountIsSet(boolean value) { + this.__isset.count = value; + } + + public void setFieldValue(int fieldID, Object value) { + switch (fieldID) { + case TABLENAME: + setTablename((String)value); + break; + + case KEY: + setKey((String)value); + break; + + case COLUMNFAMILY_SUPERCOLUMNNAME: + setColumnFamily_superColumnName((String)value); + break; + + case START: + setStart((Integer)value); + break; + + case COUNT: + setCount((Integer)value); + break; + + default: + throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); + } + } + + public Object getFieldValue(int fieldID) { + switch (fieldID) { + case TABLENAME: + return getTablename(); + + case KEY: + return getKey(); + + case COLUMNFAMILY_SUPERCOLUMNNAME: + return getColumnFamily_superColumnName(); + + case START: + return new Integer(getStart()); + + case COUNT: + return new Integer(getCount()); + + default: + throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); + } + } + + // Returns true if field corresponding to fieldID is set (has been asigned a value) and false otherwise + public boolean isSet(int fieldID) { + switch (fieldID) { + case TABLENAME: + return this.__isset.tablename; + case KEY: + return this.__isset.key; + case COLUMNFAMILY_SUPERCOLUMNNAME: + return this.__isset.columnFamily_superColumnName; + case START: + return this.__isset.start; + case COUNT: + return this.__isset.count; + default: + throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); + } + } + + @Override public boolean equals(Object that) { if (that == null) return false; @@ -3622,6 +6329,7 @@ public class Cassandra { return true; } + @Override public int hashCode() { return 0; } @@ -3637,7 +6345,7 @@ public class Cassandra { } switch (field.id) { - case -1: + case TABLENAME: if (field.type == TType.STRING) { this.tablename = iprot.readString(); this.__isset.tablename = true; @@ -3645,7 +6353,7 @@ public class Cassandra { TProtocolUtil.skip(iprot, field.type); } break; - case -2: + case KEY: if (field.type == TType.STRING) { this.key = iprot.readString(); this.__isset.key = true; @@ -3653,7 +6361,7 @@ public class Cassandra { TProtocolUtil.skip(iprot, field.type); } break; - case -3: + case COLUMNFAMILY_SUPERCOLUMNNAME: if (field.type == TType.STRING) { this.columnFamily_superColumnName = iprot.readString(); this.__isset.columnFamily_superColumnName = true; @@ -3661,7 +6369,7 @@ public class Cassandra { TProtocolUtil.skip(iprot, field.type); } break; - case -4: + case START: if (field.type == TType.I32) { this.start = iprot.readI32(); this.__isset.start = true; @@ -3669,7 +6377,7 @@ public class Cassandra { TProtocolUtil.skip(iprot, field.type); } break; - case -5: + case COUNT: if (field.type == TType.I32) { this.count = iprot.readI32(); this.__isset.count = true; @@ -3684,80 +6392,105 @@ public class Cassandra { iprot.readFieldEnd(); } iprot.readStructEnd(); + + + // check for required fields of primitive type, which can't be checked in the validate method + validate(); } public void write(TProtocol oprot) throws TException { - TStruct struct = new TStruct("get_slice_super_args"); - oprot.writeStructBegin(struct); - TField field = new TField(); + validate(); + + oprot.writeStructBegin(STRUCT_DESC); if (this.tablename != null) { - field.name = "tablename"; - field.type = TType.STRING; - field.id = -1; - oprot.writeFieldBegin(field); + oprot.writeFieldBegin(TABLENAME_FIELD_DESC); oprot.writeString(this.tablename); oprot.writeFieldEnd(); } if (this.key != null) { - field.name = "key"; - field.type = TType.STRING; - field.id = -2; - oprot.writeFieldBegin(field); + oprot.writeFieldBegin(KEY_FIELD_DESC); oprot.writeString(this.key); oprot.writeFieldEnd(); } if (this.columnFamily_superColumnName != null) { - field.name = "columnFamily_superColumnName"; - field.type = TType.STRING; - field.id = -3; - oprot.writeFieldBegin(field); + oprot.writeFieldBegin(COLUMN_FAMILY_SUPER_COLUMN_NAME_FIELD_DESC); oprot.writeString(this.columnFamily_superColumnName); oprot.writeFieldEnd(); } - field.name = "start"; - field.type = TType.I32; - field.id = -4; - oprot.writeFieldBegin(field); + oprot.writeFieldBegin(START_FIELD_DESC); oprot.writeI32(this.start); oprot.writeFieldEnd(); - field.name = "count"; - field.type = TType.I32; - field.id = -5; - oprot.writeFieldBegin(field); + oprot.writeFieldBegin(COUNT_FIELD_DESC); oprot.writeI32(this.count); oprot.writeFieldEnd(); oprot.writeFieldStop(); oprot.writeStructEnd(); } + @Override public String toString() { StringBuilder sb = new StringBuilder("get_slice_super_args("); + boolean first = true; + + if (!first) sb.append(", "); sb.append("tablename:"); sb.append(this.tablename); - sb.append(",key:"); + first = false; + if (!first) sb.append(", "); + sb.append("key:"); sb.append(this.key); - sb.append(",columnFamily_superColumnName:"); + first = false; + if (!first) sb.append(", "); + sb.append("columnFamily_superColumnName:"); sb.append(this.columnFamily_superColumnName); - sb.append(",start:"); + first = false; + if (!first) sb.append(", "); + sb.append("start:"); sb.append(this.start); - sb.append(",count:"); + first = false; + if (!first) sb.append(", "); + sb.append("count:"); sb.append(this.count); + first = false; sb.append(")"); return sb.toString(); } + public void validate() throws TException { + // check for required fields + // check that fields of type enum have valid values + } + } - public static class get_slice_super_result implements TBase, java.io.Serializable { - public List success; - public CassandraException e; + public static class get_slice_super_result implements TBase, java.io.Serializable, Cloneable { + private static final TStruct STRUCT_DESC = new TStruct("get_slice_super_result"); + private static final TField SUCCESS_FIELD_DESC = new TField("success", TType.LIST, (short)0); + private static final TField E_FIELD_DESC = new TField("e", TType.STRUCT, (short)1); - public final Isset __isset = new Isset(); - public static final class Isset implements java.io.Serializable { + public List success; + public static final int SUCCESS = 0; + public CassandraException e; + public static final int E = 1; + + private final Isset __isset = new Isset(); + private static final class Isset implements java.io.Serializable { public boolean success = false; public boolean e = false; } + public static final Map metaDataMap = Collections.unmodifiableMap(new HashMap() {{ + put(SUCCESS, new FieldMetaData("success", TFieldRequirementType.DEFAULT, + new ListMetaData(TType.LIST, + new StructMetaData(TType.STRUCT, superColumn_t.class)))); + put(E, new FieldMetaData("e", TFieldRequirementType.DEFAULT, + new FieldValueMetaData(TType.STRUCT))); + }}); + + static { + FieldMetaData.addStructMetaDataMap(get_slice_super_result.class, metaDataMap); + } + public get_slice_super_result() { } @@ -3767,11 +6500,137 @@ public class Cassandra { { this(); this.success = success; - this.__isset.success = true; + this.__isset.success = (success != null); this.e = e; - this.__isset.e = true; + this.__isset.e = (e != null); } + /** + * Performs a deep copy on other. + */ + public get_slice_super_result(get_slice_super_result other) { + __isset.success = other.__isset.success; + if (other.success != null) { + List __this__success = new ArrayList(); + for (superColumn_t other_element : other.success) { + __this__success.add(new superColumn_t(other_element)); + } + this.success = __this__success; + } + __isset.e = other.__isset.e; + if (other.e != null) { + this.e = new CassandraException(other.e); + } + } + + @Override + public get_slice_super_result clone() { + return new get_slice_super_result(this); + } + + public int getSuccessSize() { + return (this.success == null) ? 0 : this.success.size(); + } + + public java.util.Iterator getSuccessIterator() { + return (this.success == null) ? null : this.success.iterator(); + } + + public void addToSuccess(superColumn_t elem) { + if (this.success == null) { + this.success = new ArrayList(); + } + this.success.add(elem); + this.__isset.success = true; + } + + public List getSuccess() { + return this.success; + } + + public void setSuccess(List success) { + this.success = success; + this.__isset.success = (success != null); + } + + public void unsetSuccess() { + this.success = null; + this.__isset.success = false; + } + + // Returns true if field success is set (has been asigned a value) and false otherwise + public boolean isSetSuccess() { + return this.__isset.success; + } + + public void setSuccessIsSet(boolean value) { + this.__isset.success = value; + } + + public CassandraException getE() { + return this.e; + } + + public void setE(CassandraException e) { + this.e = e; + this.__isset.e = (e != null); + } + + public void unsetE() { + this.e = null; + this.__isset.e = false; + } + + // Returns true if field e is set (has been asigned a value) and false otherwise + public boolean isSetE() { + return this.__isset.e; + } + + public void setEIsSet(boolean value) { + this.__isset.e = value; + } + + public void setFieldValue(int fieldID, Object value) { + switch (fieldID) { + case SUCCESS: + setSuccess((List)value); + break; + + case E: + setE((CassandraException)value); + break; + + default: + throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); + } + } + + public Object getFieldValue(int fieldID) { + switch (fieldID) { + case SUCCESS: + return getSuccess(); + + case E: + return getE(); + + default: + throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); + } + } + + // Returns true if field corresponding to fieldID is set (has been asigned a value) and false otherwise + public boolean isSet(int fieldID) { + switch (fieldID) { + case SUCCESS: + return this.__isset.success; + case E: + return this.__isset.e; + default: + throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); + } + } + + @Override public boolean equals(Object that) { if (that == null) return false; @@ -3805,6 +6664,7 @@ public class Cassandra { return true; } + @Override public int hashCode() { return 0; } @@ -3820,14 +6680,14 @@ public class Cassandra { } switch (field.id) { - case 0: + case SUCCESS: if (field.type == TType.LIST) { { TList _list65 = iprot.readListBegin(); this.success = new ArrayList(_list65.size); for (int _i66 = 0; _i66 < _list65.size; ++_i66) { - superColumn_t _elem67 = new superColumn_t(); + superColumn_t _elem67; _elem67 = new superColumn_t(); _elem67.read(iprot); this.success.add(_elem67); @@ -3839,7 +6699,7 @@ public class Cassandra { TProtocolUtil.skip(iprot, field.type); } break; - case 1: + case E: if (field.type == TType.STRUCT) { this.e = new CassandraException(); this.e.read(iprot); @@ -3855,19 +6715,18 @@ public class Cassandra { iprot.readFieldEnd(); } iprot.readStructEnd(); + + + // check for required fields of primitive type, which can't be checked in the validate method + validate(); } public void write(TProtocol oprot) throws TException { - TStruct struct = new TStruct("get_slice_super_result"); - oprot.writeStructBegin(struct); - TField field = new TField(); + oprot.writeStructBegin(STRUCT_DESC); if (this.__isset.success) { if (this.success != null) { - field.name = "success"; - field.type = TType.LIST; - field.id = 0; - oprot.writeFieldBegin(field); + oprot.writeFieldBegin(SUCCESS_FIELD_DESC); { oprot.writeListBegin(new TList(TType.STRUCT, this.success.size())); for (superColumn_t _iter68 : this.success) { @@ -3879,10 +6738,7 @@ public class Cassandra { } } else if (this.__isset.e) { if (this.e != null) { - field.name = "e"; - field.type = TType.STRUCT; - field.id = 1; - oprot.writeFieldBegin(field); + oprot.writeFieldBegin(E_FIELD_DESC); this.e.write(oprot); oprot.writeFieldEnd(); } @@ -3891,32 +6747,70 @@ public class Cassandra { oprot.writeStructEnd(); } + @Override public String toString() { StringBuilder sb = new StringBuilder("get_slice_super_result("); + boolean first = true; + + if (!first) sb.append(", "); sb.append("success:"); sb.append(this.success); - sb.append(",e:"); + first = false; + if (!first) sb.append(", "); + sb.append("e:"); sb.append(this.e); + first = false; sb.append(")"); return sb.toString(); } + public void validate() throws TException { + // check for required fields + // check that fields of type enum have valid values + } + } - public static class get_slice_super_by_names_args implements TBase, java.io.Serializable { - public String tablename; - public String key; - public String columnFamily; - public List superColumnNames; + public static class get_slice_super_by_names_args implements TBase, java.io.Serializable, Cloneable { + private static final TStruct STRUCT_DESC = new TStruct("get_slice_super_by_names_args"); + private static final TField TABLENAME_FIELD_DESC = new TField("tablename", TType.STRING, (short)-1); + private static final TField KEY_FIELD_DESC = new TField("key", TType.STRING, (short)-2); + private static final TField COLUMN_FAMILY_FIELD_DESC = new TField("columnFamily", TType.STRING, (short)-3); + private static final TField SUPER_COLUMN_NAMES_FIELD_DESC = new TField("superColumnNames", TType.LIST, (short)-4); - public final Isset __isset = new Isset(); - public static final class Isset implements java.io.Serializable { + public String tablename; + public static final int TABLENAME = -1; + public String key; + public static final int KEY = -2; + public String columnFamily; + public static final int COLUMNFAMILY = -3; + public List superColumnNames; + public static final int SUPERCOLUMNNAMES = -4; + + private final Isset __isset = new Isset(); + private static final class Isset implements java.io.Serializable { public boolean tablename = false; public boolean key = false; public boolean columnFamily = false; public boolean superColumnNames = false; } + public static final Map metaDataMap = Collections.unmodifiableMap(new HashMap() {{ + put(TABLENAME, new FieldMetaData("tablename", TFieldRequirementType.DEFAULT, + new FieldValueMetaData(TType.STRING))); + put(KEY, new FieldMetaData("key", TFieldRequirementType.DEFAULT, + new FieldValueMetaData(TType.STRING))); + put(COLUMNFAMILY, new FieldMetaData("columnFamily", TFieldRequirementType.DEFAULT, + new FieldValueMetaData(TType.STRING))); + put(SUPERCOLUMNNAMES, new FieldMetaData("superColumnNames", TFieldRequirementType.DEFAULT, + new ListMetaData(TType.LIST, + new FieldValueMetaData(TType.STRING)))); + }}); + + static { + FieldMetaData.addStructMetaDataMap(get_slice_super_by_names_args.class, metaDataMap); + } + public get_slice_super_by_names_args() { } @@ -3928,15 +6822,210 @@ public class Cassandra { { this(); this.tablename = tablename; - this.__isset.tablename = true; + this.__isset.tablename = (tablename != null); this.key = key; - this.__isset.key = true; + this.__isset.key = (key != null); this.columnFamily = columnFamily; - this.__isset.columnFamily = true; + this.__isset.columnFamily = (columnFamily != null); this.superColumnNames = superColumnNames; + this.__isset.superColumnNames = (superColumnNames != null); + } + + /** + * Performs a deep copy on other. + */ + public get_slice_super_by_names_args(get_slice_super_by_names_args other) { + __isset.tablename = other.__isset.tablename; + if (other.tablename != null) { + this.tablename = other.tablename; + } + __isset.key = other.__isset.key; + if (other.key != null) { + this.key = other.key; + } + __isset.columnFamily = other.__isset.columnFamily; + if (other.columnFamily != null) { + this.columnFamily = other.columnFamily; + } + __isset.superColumnNames = other.__isset.superColumnNames; + if (other.superColumnNames != null) { + List __this__superColumnNames = new ArrayList(); + for (String other_element : other.superColumnNames) { + __this__superColumnNames.add(other_element); + } + this.superColumnNames = __this__superColumnNames; + } + } + + @Override + public get_slice_super_by_names_args clone() { + return new get_slice_super_by_names_args(this); + } + + public String getTablename() { + return this.tablename; + } + + public void setTablename(String tablename) { + this.tablename = tablename; + this.__isset.tablename = (tablename != null); + } + + public void unsetTablename() { + this.__isset.tablename = false; + } + + // Returns true if field tablename is set (has been asigned a value) and false otherwise + public boolean isSetTablename() { + return this.__isset.tablename; + } + + public void setTablenameIsSet(boolean value) { + this.__isset.tablename = value; + } + + public String getKey() { + return this.key; + } + + public void setKey(String key) { + this.key = key; + this.__isset.key = (key != null); + } + + public void unsetKey() { + this.__isset.key = false; + } + + // Returns true if field key is set (has been asigned a value) and false otherwise + public boolean isSetKey() { + return this.__isset.key; + } + + public void setKeyIsSet(boolean value) { + this.__isset.key = value; + } + + public String getColumnFamily() { + return this.columnFamily; + } + + public void setColumnFamily(String columnFamily) { + this.columnFamily = columnFamily; + this.__isset.columnFamily = (columnFamily != null); + } + + public void unsetColumnFamily() { + this.__isset.columnFamily = false; + } + + // Returns true if field columnFamily is set (has been asigned a value) and false otherwise + public boolean isSetColumnFamily() { + return this.__isset.columnFamily; + } + + public void setColumnFamilyIsSet(boolean value) { + this.__isset.columnFamily = value; + } + + public int getSuperColumnNamesSize() { + return (this.superColumnNames == null) ? 0 : this.superColumnNames.size(); + } + + public java.util.Iterator getSuperColumnNamesIterator() { + return (this.superColumnNames == null) ? null : this.superColumnNames.iterator(); + } + + public void addToSuperColumnNames(String elem) { + if (this.superColumnNames == null) { + this.superColumnNames = new ArrayList(); + } + this.superColumnNames.add(elem); this.__isset.superColumnNames = true; } + public List getSuperColumnNames() { + return this.superColumnNames; + } + + public void setSuperColumnNames(List superColumnNames) { + this.superColumnNames = superColumnNames; + this.__isset.superColumnNames = (superColumnNames != null); + } + + public void unsetSuperColumnNames() { + this.superColumnNames = null; + this.__isset.superColumnNames = false; + } + + // Returns true if field superColumnNames is set (has been asigned a value) and false otherwise + public boolean isSetSuperColumnNames() { + return this.__isset.superColumnNames; + } + + public void setSuperColumnNamesIsSet(boolean value) { + this.__isset.superColumnNames = value; + } + + public void setFieldValue(int fieldID, Object value) { + switch (fieldID) { + case TABLENAME: + setTablename((String)value); + break; + + case KEY: + setKey((String)value); + break; + + case COLUMNFAMILY: + setColumnFamily((String)value); + break; + + case SUPERCOLUMNNAMES: + setSuperColumnNames((List)value); + break; + + default: + throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); + } + } + + public Object getFieldValue(int fieldID) { + switch (fieldID) { + case TABLENAME: + return getTablename(); + + case KEY: + return getKey(); + + case COLUMNFAMILY: + return getColumnFamily(); + + case SUPERCOLUMNNAMES: + return getSuperColumnNames(); + + default: + throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); + } + } + + // Returns true if field corresponding to fieldID is set (has been asigned a value) and false otherwise + public boolean isSet(int fieldID) { + switch (fieldID) { + case TABLENAME: + return this.__isset.tablename; + case KEY: + return this.__isset.key; + case COLUMNFAMILY: + return this.__isset.columnFamily; + case SUPERCOLUMNNAMES: + return this.__isset.superColumnNames; + default: + throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); + } + } + + @Override public boolean equals(Object that) { if (that == null) return false; @@ -3988,6 +7077,7 @@ public class Cassandra { return true; } + @Override public int hashCode() { return 0; } @@ -4003,7 +7093,7 @@ public class Cassandra { } switch (field.id) { - case -1: + case TABLENAME: if (field.type == TType.STRING) { this.tablename = iprot.readString(); this.__isset.tablename = true; @@ -4011,7 +7101,7 @@ public class Cassandra { TProtocolUtil.skip(iprot, field.type); } break; - case -2: + case KEY: if (field.type == TType.STRING) { this.key = iprot.readString(); this.__isset.key = true; @@ -4019,7 +7109,7 @@ public class Cassandra { TProtocolUtil.skip(iprot, field.type); } break; - case -3: + case COLUMNFAMILY: if (field.type == TType.STRING) { this.columnFamily = iprot.readString(); this.__isset.columnFamily = true; @@ -4027,14 +7117,14 @@ public class Cassandra { TProtocolUtil.skip(iprot, field.type); } break; - case -4: + case SUPERCOLUMNNAMES: if (field.type == TType.LIST) { { TList _list69 = iprot.readListBegin(); this.superColumnNames = new ArrayList(_list69.size); for (int _i70 = 0; _i70 < _list69.size; ++_i70) { - String _elem71 = null; + String _elem71; _elem71 = iprot.readString(); this.superColumnNames.add(_elem71); } @@ -4052,41 +7142,33 @@ public class Cassandra { iprot.readFieldEnd(); } iprot.readStructEnd(); + + + // check for required fields of primitive type, which can't be checked in the validate method + validate(); } public void write(TProtocol oprot) throws TException { - TStruct struct = new TStruct("get_slice_super_by_names_args"); - oprot.writeStructBegin(struct); - TField field = new TField(); + validate(); + + oprot.writeStructBegin(STRUCT_DESC); if (this.tablename != null) { - field.name = "tablename"; - field.type = TType.STRING; - field.id = -1; - oprot.writeFieldBegin(field); + oprot.writeFieldBegin(TABLENAME_FIELD_DESC); oprot.writeString(this.tablename); oprot.writeFieldEnd(); } if (this.key != null) { - field.name = "key"; - field.type = TType.STRING; - field.id = -2; - oprot.writeFieldBegin(field); + oprot.writeFieldBegin(KEY_FIELD_DESC); oprot.writeString(this.key); oprot.writeFieldEnd(); } if (this.columnFamily != null) { - field.name = "columnFamily"; - field.type = TType.STRING; - field.id = -3; - oprot.writeFieldBegin(field); + oprot.writeFieldBegin(COLUMN_FAMILY_FIELD_DESC); oprot.writeString(this.columnFamily); oprot.writeFieldEnd(); } if (this.superColumnNames != null) { - field.name = "superColumnNames"; - field.type = TType.LIST; - field.id = -4; - oprot.writeFieldBegin(field); + oprot.writeFieldBegin(SUPER_COLUMN_NAMES_FIELD_DESC); { oprot.writeListBegin(new TList(TType.STRING, this.superColumnNames.size())); for (String _iter72 : this.superColumnNames) { @@ -4100,32 +7182,66 @@ public class Cassandra { oprot.writeStructEnd(); } + @Override public String toString() { StringBuilder sb = new StringBuilder("get_slice_super_by_names_args("); + boolean first = true; + + if (!first) sb.append(", "); sb.append("tablename:"); sb.append(this.tablename); - sb.append(",key:"); + first = false; + if (!first) sb.append(", "); + sb.append("key:"); sb.append(this.key); - sb.append(",columnFamily:"); + first = false; + if (!first) sb.append(", "); + sb.append("columnFamily:"); sb.append(this.columnFamily); - sb.append(",superColumnNames:"); + first = false; + if (!first) sb.append(", "); + sb.append("superColumnNames:"); sb.append(this.superColumnNames); + first = false; sb.append(")"); return sb.toString(); } + public void validate() throws TException { + // check for required fields + // check that fields of type enum have valid values + } + } - public static class get_slice_super_by_names_result implements TBase, java.io.Serializable { - public List success; - public CassandraException e; + public static class get_slice_super_by_names_result implements TBase, java.io.Serializable, Cloneable { + private static final TStruct STRUCT_DESC = new TStruct("get_slice_super_by_names_result"); + private static final TField SUCCESS_FIELD_DESC = new TField("success", TType.LIST, (short)0); + private static final TField E_FIELD_DESC = new TField("e", TType.STRUCT, (short)1); - public final Isset __isset = new Isset(); - public static final class Isset implements java.io.Serializable { + public List success; + public static final int SUCCESS = 0; + public CassandraException e; + public static final int E = 1; + + private final Isset __isset = new Isset(); + private static final class Isset implements java.io.Serializable { public boolean success = false; public boolean e = false; } + public static final Map metaDataMap = Collections.unmodifiableMap(new HashMap() {{ + put(SUCCESS, new FieldMetaData("success", TFieldRequirementType.DEFAULT, + new ListMetaData(TType.LIST, + new StructMetaData(TType.STRUCT, superColumn_t.class)))); + put(E, new FieldMetaData("e", TFieldRequirementType.DEFAULT, + new FieldValueMetaData(TType.STRUCT))); + }}); + + static { + FieldMetaData.addStructMetaDataMap(get_slice_super_by_names_result.class, metaDataMap); + } + public get_slice_super_by_names_result() { } @@ -4135,11 +7251,137 @@ public class Cassandra { { this(); this.success = success; - this.__isset.success = true; + this.__isset.success = (success != null); this.e = e; - this.__isset.e = true; + this.__isset.e = (e != null); } + /** + * Performs a deep copy on other. + */ + public get_slice_super_by_names_result(get_slice_super_by_names_result other) { + __isset.success = other.__isset.success; + if (other.success != null) { + List __this__success = new ArrayList(); + for (superColumn_t other_element : other.success) { + __this__success.add(new superColumn_t(other_element)); + } + this.success = __this__success; + } + __isset.e = other.__isset.e; + if (other.e != null) { + this.e = new CassandraException(other.e); + } + } + + @Override + public get_slice_super_by_names_result clone() { + return new get_slice_super_by_names_result(this); + } + + public int getSuccessSize() { + return (this.success == null) ? 0 : this.success.size(); + } + + public java.util.Iterator getSuccessIterator() { + return (this.success == null) ? null : this.success.iterator(); + } + + public void addToSuccess(superColumn_t elem) { + if (this.success == null) { + this.success = new ArrayList(); + } + this.success.add(elem); + this.__isset.success = true; + } + + public List getSuccess() { + return this.success; + } + + public void setSuccess(List success) { + this.success = success; + this.__isset.success = (success != null); + } + + public void unsetSuccess() { + this.success = null; + this.__isset.success = false; + } + + // Returns true if field success is set (has been asigned a value) and false otherwise + public boolean isSetSuccess() { + return this.__isset.success; + } + + public void setSuccessIsSet(boolean value) { + this.__isset.success = value; + } + + public CassandraException getE() { + return this.e; + } + + public void setE(CassandraException e) { + this.e = e; + this.__isset.e = (e != null); + } + + public void unsetE() { + this.e = null; + this.__isset.e = false; + } + + // Returns true if field e is set (has been asigned a value) and false otherwise + public boolean isSetE() { + return this.__isset.e; + } + + public void setEIsSet(boolean value) { + this.__isset.e = value; + } + + public void setFieldValue(int fieldID, Object value) { + switch (fieldID) { + case SUCCESS: + setSuccess((List)value); + break; + + case E: + setE((CassandraException)value); + break; + + default: + throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); + } + } + + public Object getFieldValue(int fieldID) { + switch (fieldID) { + case SUCCESS: + return getSuccess(); + + case E: + return getE(); + + default: + throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); + } + } + + // Returns true if field corresponding to fieldID is set (has been asigned a value) and false otherwise + public boolean isSet(int fieldID) { + switch (fieldID) { + case SUCCESS: + return this.__isset.success; + case E: + return this.__isset.e; + default: + throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); + } + } + + @Override public boolean equals(Object that) { if (that == null) return false; @@ -4173,6 +7415,7 @@ public class Cassandra { return true; } + @Override public int hashCode() { return 0; } @@ -4188,14 +7431,14 @@ public class Cassandra { } switch (field.id) { - case 0: + case SUCCESS: if (field.type == TType.LIST) { { TList _list73 = iprot.readListBegin(); this.success = new ArrayList(_list73.size); for (int _i74 = 0; _i74 < _list73.size; ++_i74) { - superColumn_t _elem75 = new superColumn_t(); + superColumn_t _elem75; _elem75 = new superColumn_t(); _elem75.read(iprot); this.success.add(_elem75); @@ -4207,7 +7450,7 @@ public class Cassandra { TProtocolUtil.skip(iprot, field.type); } break; - case 1: + case E: if (field.type == TType.STRUCT) { this.e = new CassandraException(); this.e.read(iprot); @@ -4223,19 +7466,18 @@ public class Cassandra { iprot.readFieldEnd(); } iprot.readStructEnd(); + + + // check for required fields of primitive type, which can't be checked in the validate method + validate(); } public void write(TProtocol oprot) throws TException { - TStruct struct = new TStruct("get_slice_super_by_names_result"); - oprot.writeStructBegin(struct); - TField field = new TField(); + oprot.writeStructBegin(STRUCT_DESC); if (this.__isset.success) { if (this.success != null) { - field.name = "success"; - field.type = TType.LIST; - field.id = 0; - oprot.writeFieldBegin(field); + oprot.writeFieldBegin(SUCCESS_FIELD_DESC); { oprot.writeListBegin(new TList(TType.STRUCT, this.success.size())); for (superColumn_t _iter76 : this.success) { @@ -4247,10 +7489,7 @@ public class Cassandra { } } else if (this.__isset.e) { if (this.e != null) { - field.name = "e"; - field.type = TType.STRUCT; - field.id = 1; - oprot.writeFieldBegin(field); + oprot.writeFieldBegin(E_FIELD_DESC); this.e.write(oprot); oprot.writeFieldEnd(); } @@ -4259,30 +7498,63 @@ public class Cassandra { oprot.writeStructEnd(); } + @Override public String toString() { StringBuilder sb = new StringBuilder("get_slice_super_by_names_result("); + boolean first = true; + + if (!first) sb.append(", "); sb.append("success:"); sb.append(this.success); - sb.append(",e:"); + first = false; + if (!first) sb.append(", "); + sb.append("e:"); sb.append(this.e); + first = false; sb.append(")"); return sb.toString(); } + public void validate() throws TException { + // check for required fields + // check that fields of type enum have valid values + } + } - public static class get_superColumn_args implements TBase, java.io.Serializable { - public String tablename; - public String key; - public String columnFamily; + public static class get_superColumn_args implements TBase, java.io.Serializable, Cloneable { + private static final TStruct STRUCT_DESC = new TStruct("get_superColumn_args"); + private static final TField TABLENAME_FIELD_DESC = new TField("tablename", TType.STRING, (short)-1); + private static final TField KEY_FIELD_DESC = new TField("key", TType.STRING, (short)-2); + private static final TField COLUMN_FAMILY_FIELD_DESC = new TField("columnFamily", TType.STRING, (short)-3); - public final Isset __isset = new Isset(); - public static final class Isset implements java.io.Serializable { + public String tablename; + public static final int TABLENAME = -1; + public String key; + public static final int KEY = -2; + public String columnFamily; + public static final int COLUMNFAMILY = -3; + + private final Isset __isset = new Isset(); + private static final class Isset implements java.io.Serializable { public boolean tablename = false; public boolean key = false; public boolean columnFamily = false; } + public static final Map metaDataMap = Collections.unmodifiableMap(new HashMap() {{ + put(TABLENAME, new FieldMetaData("tablename", TFieldRequirementType.DEFAULT, + new FieldValueMetaData(TType.STRING))); + put(KEY, new FieldMetaData("key", TFieldRequirementType.DEFAULT, + new FieldValueMetaData(TType.STRING))); + put(COLUMNFAMILY, new FieldMetaData("columnFamily", TFieldRequirementType.DEFAULT, + new FieldValueMetaData(TType.STRING))); + }}); + + static { + FieldMetaData.addStructMetaDataMap(get_superColumn_args.class, metaDataMap); + } + public get_superColumn_args() { } @@ -4293,13 +7565,152 @@ public class Cassandra { { this(); this.tablename = tablename; - this.__isset.tablename = true; + this.__isset.tablename = (tablename != null); this.key = key; - this.__isset.key = true; + this.__isset.key = (key != null); this.columnFamily = columnFamily; - this.__isset.columnFamily = true; + this.__isset.columnFamily = (columnFamily != null); } + /** + * Performs a deep copy on other. + */ + public get_superColumn_args(get_superColumn_args other) { + __isset.tablename = other.__isset.tablename; + if (other.tablename != null) { + this.tablename = other.tablename; + } + __isset.key = other.__isset.key; + if (other.key != null) { + this.key = other.key; + } + __isset.columnFamily = other.__isset.columnFamily; + if (other.columnFamily != null) { + this.columnFamily = other.columnFamily; + } + } + + @Override + public get_superColumn_args clone() { + return new get_superColumn_args(this); + } + + public String getTablename() { + return this.tablename; + } + + public void setTablename(String tablename) { + this.tablename = tablename; + this.__isset.tablename = (tablename != null); + } + + public void unsetTablename() { + this.__isset.tablename = false; + } + + // Returns true if field tablename is set (has been asigned a value) and false otherwise + public boolean isSetTablename() { + return this.__isset.tablename; + } + + public void setTablenameIsSet(boolean value) { + this.__isset.tablename = value; + } + + public String getKey() { + return this.key; + } + + public void setKey(String key) { + this.key = key; + this.__isset.key = (key != null); + } + + public void unsetKey() { + this.__isset.key = false; + } + + // Returns true if field key is set (has been asigned a value) and false otherwise + public boolean isSetKey() { + return this.__isset.key; + } + + public void setKeyIsSet(boolean value) { + this.__isset.key = value; + } + + public String getColumnFamily() { + return this.columnFamily; + } + + public void setColumnFamily(String columnFamily) { + this.columnFamily = columnFamily; + this.__isset.columnFamily = (columnFamily != null); + } + + public void unsetColumnFamily() { + this.__isset.columnFamily = false; + } + + // Returns true if field columnFamily is set (has been asigned a value) and false otherwise + public boolean isSetColumnFamily() { + return this.__isset.columnFamily; + } + + public void setColumnFamilyIsSet(boolean value) { + this.__isset.columnFamily = value; + } + + public void setFieldValue(int fieldID, Object value) { + switch (fieldID) { + case TABLENAME: + setTablename((String)value); + break; + + case KEY: + setKey((String)value); + break; + + case COLUMNFAMILY: + setColumnFamily((String)value); + break; + + default: + throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); + } + } + + public Object getFieldValue(int fieldID) { + switch (fieldID) { + case TABLENAME: + return getTablename(); + + case KEY: + return getKey(); + + case COLUMNFAMILY: + return getColumnFamily(); + + default: + throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); + } + } + + // Returns true if field corresponding to fieldID is set (has been asigned a value) and false otherwise + public boolean isSet(int fieldID) { + switch (fieldID) { + case TABLENAME: + return this.__isset.tablename; + case KEY: + return this.__isset.key; + case COLUMNFAMILY: + return this.__isset.columnFamily; + default: + throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); + } + } + + @Override public boolean equals(Object that) { if (that == null) return false; @@ -4342,6 +7753,7 @@ public class Cassandra { return true; } + @Override public int hashCode() { return 0; } @@ -4357,7 +7769,7 @@ public class Cassandra { } switch (field.id) { - case -1: + case TABLENAME: if (field.type == TType.STRING) { this.tablename = iprot.readString(); this.__isset.tablename = true; @@ -4365,7 +7777,7 @@ public class Cassandra { TProtocolUtil.skip(iprot, field.type); } break; - case -2: + case KEY: if (field.type == TType.STRING) { this.key = iprot.readString(); this.__isset.key = true; @@ -4373,7 +7785,7 @@ public class Cassandra { TProtocolUtil.skip(iprot, field.type); } break; - case -3: + case COLUMNFAMILY: if (field.type == TType.STRING) { this.columnFamily = iprot.readString(); this.__isset.columnFamily = true; @@ -4388,33 +7800,28 @@ public class Cassandra { iprot.readFieldEnd(); } iprot.readStructEnd(); + + + // check for required fields of primitive type, which can't be checked in the validate method + validate(); } public void write(TProtocol oprot) throws TException { - TStruct struct = new TStruct("get_superColumn_args"); - oprot.writeStructBegin(struct); - TField field = new TField(); + validate(); + + oprot.writeStructBegin(STRUCT_DESC); if (this.tablename != null) { - field.name = "tablename"; - field.type = TType.STRING; - field.id = -1; - oprot.writeFieldBegin(field); + oprot.writeFieldBegin(TABLENAME_FIELD_DESC); oprot.writeString(this.tablename); oprot.writeFieldEnd(); } if (this.key != null) { - field.name = "key"; - field.type = TType.STRING; - field.id = -2; - oprot.writeFieldBegin(field); + oprot.writeFieldBegin(KEY_FIELD_DESC); oprot.writeString(this.key); oprot.writeFieldEnd(); } if (this.columnFamily != null) { - field.name = "columnFamily"; - field.type = TType.STRING; - field.id = -3; - oprot.writeFieldBegin(field); + oprot.writeFieldBegin(COLUMN_FAMILY_FIELD_DESC); oprot.writeString(this.columnFamily); oprot.writeFieldEnd(); } @@ -4422,30 +7829,61 @@ public class Cassandra { oprot.writeStructEnd(); } + @Override public String toString() { StringBuilder sb = new StringBuilder("get_superColumn_args("); + boolean first = true; + + if (!first) sb.append(", "); sb.append("tablename:"); sb.append(this.tablename); - sb.append(",key:"); + first = false; + if (!first) sb.append(", "); + sb.append("key:"); sb.append(this.key); - sb.append(",columnFamily:"); + first = false; + if (!first) sb.append(", "); + sb.append("columnFamily:"); sb.append(this.columnFamily); + first = false; sb.append(")"); return sb.toString(); } + public void validate() throws TException { + // check for required fields + // check that fields of type enum have valid values + } + } - public static class get_superColumn_result implements TBase, java.io.Serializable { - public superColumn_t success; - public CassandraException e; + public static class get_superColumn_result implements TBase, java.io.Serializable, Cloneable { + private static final TStruct STRUCT_DESC = new TStruct("get_superColumn_result"); + private static final TField SUCCESS_FIELD_DESC = new TField("success", TType.STRUCT, (short)0); + private static final TField E_FIELD_DESC = new TField("e", TType.STRUCT, (short)1); - public final Isset __isset = new Isset(); - public static final class Isset implements java.io.Serializable { + public superColumn_t success; + public static final int SUCCESS = 0; + public CassandraException e; + public static final int E = 1; + + private final Isset __isset = new Isset(); + private static final class Isset implements java.io.Serializable { public boolean success = false; public boolean e = false; } + public static final Map metaDataMap = Collections.unmodifiableMap(new HashMap() {{ + put(SUCCESS, new FieldMetaData("success", TFieldRequirementType.DEFAULT, + new StructMetaData(TType.STRUCT, superColumn_t.class))); + put(E, new FieldMetaData("e", TFieldRequirementType.DEFAULT, + new FieldValueMetaData(TType.STRUCT))); + }}); + + static { + FieldMetaData.addStructMetaDataMap(get_superColumn_result.class, metaDataMap); + } + public get_superColumn_result() { } @@ -4455,11 +7893,117 @@ public class Cassandra { { this(); this.success = success; - this.__isset.success = true; + this.__isset.success = (success != null); this.e = e; - this.__isset.e = true; + this.__isset.e = (e != null); } + /** + * Performs a deep copy on other. + */ + public get_superColumn_result(get_superColumn_result other) { + __isset.success = other.__isset.success; + if (other.success != null) { + this.success = new superColumn_t(other.success); + } + __isset.e = other.__isset.e; + if (other.e != null) { + this.e = new CassandraException(other.e); + } + } + + @Override + public get_superColumn_result clone() { + return new get_superColumn_result(this); + } + + public superColumn_t getSuccess() { + return this.success; + } + + public void setSuccess(superColumn_t success) { + this.success = success; + this.__isset.success = (success != null); + } + + public void unsetSuccess() { + this.success = null; + this.__isset.success = false; + } + + // Returns true if field success is set (has been asigned a value) and false otherwise + public boolean isSetSuccess() { + return this.__isset.success; + } + + public void setSuccessIsSet(boolean value) { + this.__isset.success = value; + } + + public CassandraException getE() { + return this.e; + } + + public void setE(CassandraException e) { + this.e = e; + this.__isset.e = (e != null); + } + + public void unsetE() { + this.e = null; + this.__isset.e = false; + } + + // Returns true if field e is set (has been asigned a value) and false otherwise + public boolean isSetE() { + return this.__isset.e; + } + + public void setEIsSet(boolean value) { + this.__isset.e = value; + } + + public void setFieldValue(int fieldID, Object value) { + switch (fieldID) { + case SUCCESS: + setSuccess((superColumn_t)value); + break; + + case E: + setE((CassandraException)value); + break; + + default: + throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); + } + } + + public Object getFieldValue(int fieldID) { + switch (fieldID) { + case SUCCESS: + return getSuccess(); + + case E: + return getE(); + + default: + throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); + } + } + + // Returns true if field corresponding to fieldID is set (has been asigned a value) and false otherwise + public boolean isSet(int fieldID) { + switch (fieldID) { + case SUCCESS: + return this.__isset.success; + case E: + return this.__isset.e; + default: + throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); + } + } + + @Override public boolean equals(Object that) { if (that == null) return false; @@ -4493,6 +8037,7 @@ public class Cassandra { return true; } + @Override public int hashCode() { return 0; } @@ -4508,7 +8053,7 @@ public class Cassandra { } switch (field.id) { - case 0: + case SUCCESS: if (field.type == TType.STRUCT) { this.success = new superColumn_t(); this.success.read(iprot); @@ -4517,7 +8062,7 @@ public class Cassandra { TProtocolUtil.skip(iprot, field.type); } break; - case 1: + case E: if (field.type == TType.STRUCT) { this.e = new CassandraException(); this.e.read(iprot); @@ -4533,28 +8078,24 @@ public class Cassandra { iprot.readFieldEnd(); } iprot.readStructEnd(); + + + // check for required fields of primitive type, which can't be checked in the validate method + validate(); } public void write(TProtocol oprot) throws TException { - TStruct struct = new TStruct("get_superColumn_result"); - oprot.writeStructBegin(struct); - TField field = new TField(); + oprot.writeStructBegin(STRUCT_DESC); if (this.__isset.success) { if (this.success != null) { - field.name = "success"; - field.type = TType.STRUCT; - field.id = 0; - oprot.writeFieldBegin(field); + oprot.writeFieldBegin(SUCCESS_FIELD_DESC); this.success.write(oprot); oprot.writeFieldEnd(); } } else if (this.__isset.e) { if (this.e != null) { - field.name = "e"; - field.type = TType.STRUCT; - field.id = 1; - oprot.writeFieldBegin(field); + oprot.writeFieldBegin(E_FIELD_DESC); this.e.write(oprot); oprot.writeFieldEnd(); } @@ -4563,26 +8104,51 @@ public class Cassandra { oprot.writeStructEnd(); } + @Override public String toString() { StringBuilder sb = new StringBuilder("get_superColumn_result("); + boolean first = true; + + if (!first) sb.append(", "); sb.append("success:"); sb.append(this.success); - sb.append(",e:"); + first = false; + if (!first) sb.append(", "); + sb.append("e:"); sb.append(this.e); + first = false; sb.append(")"); return sb.toString(); } + public void validate() throws TException { + // check for required fields + // check that fields of type enum have valid values + } + } - public static class batch_insert_superColumn_args implements TBase, java.io.Serializable { - public batch_mutation_super_t batchMutationSuper; + public static class batch_insert_superColumn_args implements TBase, java.io.Serializable, Cloneable { + private static final TStruct STRUCT_DESC = new TStruct("batch_insert_superColumn_args"); + private static final TField BATCH_MUTATION_SUPER_FIELD_DESC = new TField("batchMutationSuper", TType.STRUCT, (short)-1); - public final Isset __isset = new Isset(); - public static final class Isset implements java.io.Serializable { + public batch_mutation_super_t batchMutationSuper; + public static final int BATCHMUTATIONSUPER = -1; + + private final Isset __isset = new Isset(); + private static final class Isset implements java.io.Serializable { public boolean batchMutationSuper = false; } + public static final Map metaDataMap = Collections.unmodifiableMap(new HashMap() {{ + put(BATCHMUTATIONSUPER, new FieldMetaData("batchMutationSuper", TFieldRequirementType.DEFAULT, + new StructMetaData(TType.STRUCT, batch_mutation_super_t.class))); + }}); + + static { + FieldMetaData.addStructMetaDataMap(batch_insert_superColumn_args.class, metaDataMap); + } + public batch_insert_superColumn_args() { } @@ -4591,9 +8157,79 @@ public class Cassandra { { this(); this.batchMutationSuper = batchMutationSuper; - this.__isset.batchMutationSuper = true; + this.__isset.batchMutationSuper = (batchMutationSuper != null); } + /** + * Performs a deep copy on other. + */ + public batch_insert_superColumn_args(batch_insert_superColumn_args other) { + __isset.batchMutationSuper = other.__isset.batchMutationSuper; + if (other.batchMutationSuper != null) { + this.batchMutationSuper = new batch_mutation_super_t(other.batchMutationSuper); + } + } + + @Override + public batch_insert_superColumn_args clone() { + return new batch_insert_superColumn_args(this); + } + + public batch_mutation_super_t getBatchMutationSuper() { + return this.batchMutationSuper; + } + + public void setBatchMutationSuper(batch_mutation_super_t batchMutationSuper) { + this.batchMutationSuper = batchMutationSuper; + this.__isset.batchMutationSuper = (batchMutationSuper != null); + } + + public void unsetBatchMutationSuper() { + this.batchMutationSuper = null; + this.__isset.batchMutationSuper = false; + } + + // Returns true if field batchMutationSuper is set (has been asigned a value) and false otherwise + public boolean isSetBatchMutationSuper() { + return this.__isset.batchMutationSuper; + } + + public void setBatchMutationSuperIsSet(boolean value) { + this.__isset.batchMutationSuper = value; + } + + public void setFieldValue(int fieldID, Object value) { + switch (fieldID) { + case BATCHMUTATIONSUPER: + setBatchMutationSuper((batch_mutation_super_t)value); + break; + + default: + throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); + } + } + + public Object getFieldValue(int fieldID) { + switch (fieldID) { + case BATCHMUTATIONSUPER: + return getBatchMutationSuper(); + + default: + throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); + } + } + + // Returns true if field corresponding to fieldID is set (has been asigned a value) and false otherwise + public boolean isSet(int fieldID) { + switch (fieldID) { + case BATCHMUTATIONSUPER: + return this.__isset.batchMutationSuper; + default: + throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); + } + } + + @Override public boolean equals(Object that) { if (that == null) return false; @@ -4618,6 +8254,7 @@ public class Cassandra { return true; } + @Override public int hashCode() { return 0; } @@ -4633,7 +8270,7 @@ public class Cassandra { } switch (field.id) { - case -1: + case BATCHMUTATIONSUPER: if (field.type == TType.STRUCT) { this.batchMutationSuper = new batch_mutation_super_t(); this.batchMutationSuper.read(iprot); @@ -4649,17 +8286,18 @@ public class Cassandra { iprot.readFieldEnd(); } iprot.readStructEnd(); + + + // check for required fields of primitive type, which can't be checked in the validate method + validate(); } public void write(TProtocol oprot) throws TException { - TStruct struct = new TStruct("batch_insert_superColumn_args"); - oprot.writeStructBegin(struct); - TField field = new TField(); + validate(); + + oprot.writeStructBegin(STRUCT_DESC); if (this.batchMutationSuper != null) { - field.name = "batchMutationSuper"; - field.type = TType.STRUCT; - field.id = -1; - oprot.writeFieldBegin(field); + oprot.writeFieldBegin(BATCH_MUTATION_SUPER_FIELD_DESC); this.batchMutationSuper.write(oprot); oprot.writeFieldEnd(); } @@ -4667,24 +8305,47 @@ public class Cassandra { oprot.writeStructEnd(); } + @Override public String toString() { StringBuilder sb = new StringBuilder("batch_insert_superColumn_args("); + boolean first = true; + + if (!first) sb.append(", "); sb.append("batchMutationSuper:"); sb.append(this.batchMutationSuper); + first = false; sb.append(")"); return sb.toString(); } + public void validate() throws TException { + // check for required fields + // check that fields of type enum have valid values + } + } - public static class batch_insert_superColumn_blocking_args implements TBase, java.io.Serializable { - public batch_mutation_super_t batchMutationSuper; + public static class batch_insert_superColumn_blocking_args implements TBase, java.io.Serializable, Cloneable { + private static final TStruct STRUCT_DESC = new TStruct("batch_insert_superColumn_blocking_args"); + private static final TField BATCH_MUTATION_SUPER_FIELD_DESC = new TField("batchMutationSuper", TType.STRUCT, (short)-1); - public final Isset __isset = new Isset(); - public static final class Isset implements java.io.Serializable { + public batch_mutation_super_t batchMutationSuper; + public static final int BATCHMUTATIONSUPER = -1; + + private final Isset __isset = new Isset(); + private static final class Isset implements java.io.Serializable { public boolean batchMutationSuper = false; } + public static final Map metaDataMap = Collections.unmodifiableMap(new HashMap() {{ + put(BATCHMUTATIONSUPER, new FieldMetaData("batchMutationSuper", TFieldRequirementType.DEFAULT, + new StructMetaData(TType.STRUCT, batch_mutation_super_t.class))); + }}); + + static { + FieldMetaData.addStructMetaDataMap(batch_insert_superColumn_blocking_args.class, metaDataMap); + } + public batch_insert_superColumn_blocking_args() { } @@ -4693,9 +8354,79 @@ public class Cassandra { { this(); this.batchMutationSuper = batchMutationSuper; - this.__isset.batchMutationSuper = true; + this.__isset.batchMutationSuper = (batchMutationSuper != null); } + /** + * Performs a deep copy on other. + */ + public batch_insert_superColumn_blocking_args(batch_insert_superColumn_blocking_args other) { + __isset.batchMutationSuper = other.__isset.batchMutationSuper; + if (other.batchMutationSuper != null) { + this.batchMutationSuper = new batch_mutation_super_t(other.batchMutationSuper); + } + } + + @Override + public batch_insert_superColumn_blocking_args clone() { + return new batch_insert_superColumn_blocking_args(this); + } + + public batch_mutation_super_t getBatchMutationSuper() { + return this.batchMutationSuper; + } + + public void setBatchMutationSuper(batch_mutation_super_t batchMutationSuper) { + this.batchMutationSuper = batchMutationSuper; + this.__isset.batchMutationSuper = (batchMutationSuper != null); + } + + public void unsetBatchMutationSuper() { + this.batchMutationSuper = null; + this.__isset.batchMutationSuper = false; + } + + // Returns true if field batchMutationSuper is set (has been asigned a value) and false otherwise + public boolean isSetBatchMutationSuper() { + return this.__isset.batchMutationSuper; + } + + public void setBatchMutationSuperIsSet(boolean value) { + this.__isset.batchMutationSuper = value; + } + + public void setFieldValue(int fieldID, Object value) { + switch (fieldID) { + case BATCHMUTATIONSUPER: + setBatchMutationSuper((batch_mutation_super_t)value); + break; + + default: + throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); + } + } + + public Object getFieldValue(int fieldID) { + switch (fieldID) { + case BATCHMUTATIONSUPER: + return getBatchMutationSuper(); + + default: + throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); + } + } + + // Returns true if field corresponding to fieldID is set (has been asigned a value) and false otherwise + public boolean isSet(int fieldID) { + switch (fieldID) { + case BATCHMUTATIONSUPER: + return this.__isset.batchMutationSuper; + default: + throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); + } + } + + @Override public boolean equals(Object that) { if (that == null) return false; @@ -4720,6 +8451,7 @@ public class Cassandra { return true; } + @Override public int hashCode() { return 0; } @@ -4735,7 +8467,7 @@ public class Cassandra { } switch (field.id) { - case -1: + case BATCHMUTATIONSUPER: if (field.type == TType.STRUCT) { this.batchMutationSuper = new batch_mutation_super_t(); this.batchMutationSuper.read(iprot); @@ -4751,17 +8483,18 @@ public class Cassandra { iprot.readFieldEnd(); } iprot.readStructEnd(); + + + // check for required fields of primitive type, which can't be checked in the validate method + validate(); } public void write(TProtocol oprot) throws TException { - TStruct struct = new TStruct("batch_insert_superColumn_blocking_args"); - oprot.writeStructBegin(struct); - TField field = new TField(); + validate(); + + oprot.writeStructBegin(STRUCT_DESC); if (this.batchMutationSuper != null) { - field.name = "batchMutationSuper"; - field.type = TType.STRUCT; - field.id = -1; - oprot.writeFieldBegin(field); + oprot.writeFieldBegin(BATCH_MUTATION_SUPER_FIELD_DESC); this.batchMutationSuper.write(oprot); oprot.writeFieldEnd(); } @@ -4769,26 +8502,53 @@ public class Cassandra { oprot.writeStructEnd(); } + @Override public String toString() { StringBuilder sb = new StringBuilder("batch_insert_superColumn_blocking_args("); + boolean first = true; + + if (!first) sb.append(", "); sb.append("batchMutationSuper:"); sb.append(this.batchMutationSuper); + first = false; sb.append(")"); return sb.toString(); } + public void validate() throws TException { + // check for required fields + // check that fields of type enum have valid values + } + } - public static class batch_insert_superColumn_blocking_result implements TBase, java.io.Serializable { - public boolean success; - public CassandraException e; + public static class batch_insert_superColumn_blocking_result implements TBase, java.io.Serializable, Cloneable { + private static final TStruct STRUCT_DESC = new TStruct("batch_insert_superColumn_blocking_result"); + private static final TField SUCCESS_FIELD_DESC = new TField("success", TType.BOOL, (short)0); + private static final TField E_FIELD_DESC = new TField("e", TType.STRUCT, (short)1); - public final Isset __isset = new Isset(); - public static final class Isset implements java.io.Serializable { + public boolean success; + public static final int SUCCESS = 0; + public CassandraException e; + public static final int E = 1; + + private final Isset __isset = new Isset(); + private static final class Isset implements java.io.Serializable { public boolean success = false; public boolean e = false; } + public static final Map metaDataMap = Collections.unmodifiableMap(new HashMap() {{ + put(SUCCESS, new FieldMetaData("success", TFieldRequirementType.DEFAULT, + new FieldValueMetaData(TType.BOOL))); + put(E, new FieldMetaData("e", TFieldRequirementType.DEFAULT, + new FieldValueMetaData(TType.STRUCT))); + }}); + + static { + FieldMetaData.addStructMetaDataMap(batch_insert_superColumn_blocking_result.class, metaDataMap); + } + public batch_insert_superColumn_blocking_result() { } @@ -4800,9 +8560,112 @@ public class Cassandra { this.success = success; this.__isset.success = true; this.e = e; - this.__isset.e = true; + this.__isset.e = (e != null); } + /** + * Performs a deep copy on other. + */ + public batch_insert_superColumn_blocking_result(batch_insert_superColumn_blocking_result other) { + __isset.success = other.__isset.success; + this.success = other.success; + __isset.e = other.__isset.e; + if (other.e != null) { + this.e = new CassandraException(other.e); + } + } + + @Override + public batch_insert_superColumn_blocking_result clone() { + return new batch_insert_superColumn_blocking_result(this); + } + + public boolean isSuccess() { + return this.success; + } + + public void setSuccess(boolean success) { + this.success = success; + this.__isset.success = true; + } + + public void unsetSuccess() { + this.__isset.success = false; + } + + // Returns true if field success is set (has been asigned a value) and false otherwise + public boolean isSetSuccess() { + return this.__isset.success; + } + + public void setSuccessIsSet(boolean value) { + this.__isset.success = value; + } + + public CassandraException getE() { + return this.e; + } + + public void setE(CassandraException e) { + this.e = e; + this.__isset.e = (e != null); + } + + public void unsetE() { + this.e = null; + this.__isset.e = false; + } + + // Returns true if field e is set (has been asigned a value) and false otherwise + public boolean isSetE() { + return this.__isset.e; + } + + public void setEIsSet(boolean value) { + this.__isset.e = value; + } + + public void setFieldValue(int fieldID, Object value) { + switch (fieldID) { + case SUCCESS: + setSuccess((Boolean)value); + break; + + case E: + setE((CassandraException)value); + break; + + default: + throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); + } + } + + public Object getFieldValue(int fieldID) { + switch (fieldID) { + case SUCCESS: + return new Boolean(isSuccess()); + + case E: + return getE(); + + default: + throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); + } + } + + // Returns true if field corresponding to fieldID is set (has been asigned a value) and false otherwise + public boolean isSet(int fieldID) { + switch (fieldID) { + case SUCCESS: + return this.__isset.success; + case E: + return this.__isset.e; + default: + throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); + } + } + + @Override public boolean equals(Object that) { if (that == null) return false; @@ -4836,6 +8699,7 @@ public class Cassandra { return true; } + @Override public int hashCode() { return 0; } @@ -4851,7 +8715,7 @@ public class Cassandra { } switch (field.id) { - case 0: + case SUCCESS: if (field.type == TType.BOOL) { this.success = iprot.readBool(); this.__isset.success = true; @@ -4859,7 +8723,7 @@ public class Cassandra { TProtocolUtil.skip(iprot, field.type); } break; - case 1: + case E: if (field.type == TType.STRUCT) { this.e = new CassandraException(); this.e.read(iprot); @@ -4875,26 +8739,22 @@ public class Cassandra { iprot.readFieldEnd(); } iprot.readStructEnd(); + + + // check for required fields of primitive type, which can't be checked in the validate method + validate(); } public void write(TProtocol oprot) throws TException { - TStruct struct = new TStruct("batch_insert_superColumn_blocking_result"); - oprot.writeStructBegin(struct); - TField field = new TField(); + oprot.writeStructBegin(STRUCT_DESC); if (this.__isset.success) { - field.name = "success"; - field.type = TType.BOOL; - field.id = 0; - oprot.writeFieldBegin(field); + oprot.writeFieldBegin(SUCCESS_FIELD_DESC); oprot.writeBool(this.success); oprot.writeFieldEnd(); } else if (this.__isset.e) { if (this.e != null) { - field.name = "e"; - field.type = TType.STRUCT; - field.id = 1; - oprot.writeFieldBegin(field); + oprot.writeFieldBegin(E_FIELD_DESC); this.e.write(oprot); oprot.writeFieldEnd(); } @@ -4903,28 +8763,57 @@ public class Cassandra { oprot.writeStructEnd(); } + @Override public String toString() { StringBuilder sb = new StringBuilder("batch_insert_superColumn_blocking_result("); + boolean first = true; + + if (!first) sb.append(", "); sb.append("success:"); sb.append(this.success); - sb.append(",e:"); + first = false; + if (!first) sb.append(", "); + sb.append("e:"); sb.append(this.e); + first = false; sb.append(")"); return sb.toString(); } + public void validate() throws TException { + // check for required fields + // check that fields of type enum have valid values + } + } - public static class touch_args implements TBase, java.io.Serializable { - public String key; - public boolean fData; + public static class touch_args implements TBase, java.io.Serializable, Cloneable { + private static final TStruct STRUCT_DESC = new TStruct("touch_args"); + private static final TField KEY_FIELD_DESC = new TField("key", TType.STRING, (short)-1); + private static final TField F_DATA_FIELD_DESC = new TField("fData", TType.BOOL, (short)-2); - public final Isset __isset = new Isset(); - public static final class Isset implements java.io.Serializable { + public String key; + public static final int KEY = -1; + public boolean fData; + public static final int FDATA = -2; + + private final Isset __isset = new Isset(); + private static final class Isset implements java.io.Serializable { public boolean key = false; public boolean fData = false; } + public static final Map metaDataMap = Collections.unmodifiableMap(new HashMap() {{ + put(KEY, new FieldMetaData("key", TFieldRequirementType.DEFAULT, + new FieldValueMetaData(TType.STRING))); + put(FDATA, new FieldMetaData("fData", TFieldRequirementType.DEFAULT, + new FieldValueMetaData(TType.BOOL))); + }}); + + static { + FieldMetaData.addStructMetaDataMap(touch_args.class, metaDataMap); + } + public touch_args() { } @@ -4934,11 +8823,113 @@ public class Cassandra { { this(); this.key = key; - this.__isset.key = true; + this.__isset.key = (key != null); this.fData = fData; this.__isset.fData = true; } + /** + * Performs a deep copy on other. + */ + public touch_args(touch_args other) { + __isset.key = other.__isset.key; + if (other.key != null) { + this.key = other.key; + } + __isset.fData = other.__isset.fData; + this.fData = other.fData; + } + + @Override + public touch_args clone() { + return new touch_args(this); + } + + public String getKey() { + return this.key; + } + + public void setKey(String key) { + this.key = key; + this.__isset.key = (key != null); + } + + public void unsetKey() { + this.__isset.key = false; + } + + // Returns true if field key is set (has been asigned a value) and false otherwise + public boolean isSetKey() { + return this.__isset.key; + } + + public void setKeyIsSet(boolean value) { + this.__isset.key = value; + } + + public boolean isFData() { + return this.fData; + } + + public void setFData(boolean fData) { + this.fData = fData; + this.__isset.fData = true; + } + + public void unsetFData() { + this.__isset.fData = false; + } + + // Returns true if field fData is set (has been asigned a value) and false otherwise + public boolean isSetFData() { + return this.__isset.fData; + } + + public void setFDataIsSet(boolean value) { + this.__isset.fData = value; + } + + public void setFieldValue(int fieldID, Object value) { + switch (fieldID) { + case KEY: + setKey((String)value); + break; + + case FDATA: + setFData((Boolean)value); + break; + + default: + throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); + } + } + + public Object getFieldValue(int fieldID) { + switch (fieldID) { + case KEY: + return getKey(); + + case FDATA: + return new Boolean(isFData()); + + default: + throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); + } + } + + // Returns true if field corresponding to fieldID is set (has been asigned a value) and false otherwise + public boolean isSet(int fieldID) { + switch (fieldID) { + case KEY: + return this.__isset.key; + case FDATA: + return this.__isset.fData; + default: + throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); + } + } + + @Override public boolean equals(Object that) { if (that == null) return false; @@ -4972,6 +8963,7 @@ public class Cassandra { return true; } + @Override public int hashCode() { return 0; } @@ -4987,7 +8979,7 @@ public class Cassandra { } switch (field.id) { - case -1: + case KEY: if (field.type == TType.STRING) { this.key = iprot.readString(); this.__isset.key = true; @@ -4995,7 +8987,7 @@ public class Cassandra { TProtocolUtil.skip(iprot, field.type); } break; - case -2: + case FDATA: if (field.type == TType.BOOL) { this.fData = iprot.readBool(); this.__isset.fData = true; @@ -5010,50 +9002,73 @@ public class Cassandra { iprot.readFieldEnd(); } iprot.readStructEnd(); + + + // check for required fields of primitive type, which can't be checked in the validate method + validate(); } public void write(TProtocol oprot) throws TException { - TStruct struct = new TStruct("touch_args"); - oprot.writeStructBegin(struct); - TField field = new TField(); + validate(); + + oprot.writeStructBegin(STRUCT_DESC); if (this.key != null) { - field.name = "key"; - field.type = TType.STRING; - field.id = -1; - oprot.writeFieldBegin(field); + oprot.writeFieldBegin(KEY_FIELD_DESC); oprot.writeString(this.key); oprot.writeFieldEnd(); } - field.name = "fData"; - field.type = TType.BOOL; - field.id = -2; - oprot.writeFieldBegin(field); + oprot.writeFieldBegin(F_DATA_FIELD_DESC); oprot.writeBool(this.fData); oprot.writeFieldEnd(); oprot.writeFieldStop(); oprot.writeStructEnd(); } + @Override public String toString() { StringBuilder sb = new StringBuilder("touch_args("); + boolean first = true; + + if (!first) sb.append(", "); sb.append("key:"); sb.append(this.key); - sb.append(",fData:"); + first = false; + if (!first) sb.append(", "); + sb.append("fData:"); sb.append(this.fData); + first = false; sb.append(")"); return sb.toString(); } + public void validate() throws TException { + // check for required fields + // check that fields of type enum have valid values + } + } - public static class getStringProperty_args implements TBase, java.io.Serializable { - public String propertyName; + public static class getStringProperty_args implements TBase, java.io.Serializable, Cloneable { + private static final TStruct STRUCT_DESC = new TStruct("getStringProperty_args"); + private static final TField PROPERTY_NAME_FIELD_DESC = new TField("propertyName", TType.STRING, (short)-1); - public final Isset __isset = new Isset(); - public static final class Isset implements java.io.Serializable { + public String propertyName; + public static final int PROPERTYNAME = -1; + + private final Isset __isset = new Isset(); + private static final class Isset implements java.io.Serializable { public boolean propertyName = false; } + public static final Map metaDataMap = Collections.unmodifiableMap(new HashMap() {{ + put(PROPERTYNAME, new FieldMetaData("propertyName", TFieldRequirementType.DEFAULT, + new FieldValueMetaData(TType.STRING))); + }}); + + static { + FieldMetaData.addStructMetaDataMap(getStringProperty_args.class, metaDataMap); + } + public getStringProperty_args() { } @@ -5062,9 +9077,78 @@ public class Cassandra { { this(); this.propertyName = propertyName; - this.__isset.propertyName = true; + this.__isset.propertyName = (propertyName != null); } + /** + * Performs a deep copy on other. + */ + public getStringProperty_args(getStringProperty_args other) { + __isset.propertyName = other.__isset.propertyName; + if (other.propertyName != null) { + this.propertyName = other.propertyName; + } + } + + @Override + public getStringProperty_args clone() { + return new getStringProperty_args(this); + } + + public String getPropertyName() { + return this.propertyName; + } + + public void setPropertyName(String propertyName) { + this.propertyName = propertyName; + this.__isset.propertyName = (propertyName != null); + } + + public void unsetPropertyName() { + this.__isset.propertyName = false; + } + + // Returns true if field propertyName is set (has been asigned a value) and false otherwise + public boolean isSetPropertyName() { + return this.__isset.propertyName; + } + + public void setPropertyNameIsSet(boolean value) { + this.__isset.propertyName = value; + } + + public void setFieldValue(int fieldID, Object value) { + switch (fieldID) { + case PROPERTYNAME: + setPropertyName((String)value); + break; + + default: + throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); + } + } + + public Object getFieldValue(int fieldID) { + switch (fieldID) { + case PROPERTYNAME: + return getPropertyName(); + + default: + throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); + } + } + + // Returns true if field corresponding to fieldID is set (has been asigned a value) and false otherwise + public boolean isSet(int fieldID) { + switch (fieldID) { + case PROPERTYNAME: + return this.__isset.propertyName; + default: + throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); + } + } + + @Override public boolean equals(Object that) { if (that == null) return false; @@ -5089,6 +9173,7 @@ public class Cassandra { return true; } + @Override public int hashCode() { return 0; } @@ -5104,7 +9189,7 @@ public class Cassandra { } switch (field.id) { - case -1: + case PROPERTYNAME: if (field.type == TType.STRING) { this.propertyName = iprot.readString(); this.__isset.propertyName = true; @@ -5119,17 +9204,18 @@ public class Cassandra { iprot.readFieldEnd(); } iprot.readStructEnd(); + + + // check for required fields of primitive type, which can't be checked in the validate method + validate(); } public void write(TProtocol oprot) throws TException { - TStruct struct = new TStruct("getStringProperty_args"); - oprot.writeStructBegin(struct); - TField field = new TField(); + validate(); + + oprot.writeStructBegin(STRUCT_DESC); if (this.propertyName != null) { - field.name = "propertyName"; - field.type = TType.STRING; - field.id = -1; - oprot.writeFieldBegin(field); + oprot.writeFieldBegin(PROPERTY_NAME_FIELD_DESC); oprot.writeString(this.propertyName); oprot.writeFieldEnd(); } @@ -5137,24 +9223,47 @@ public class Cassandra { oprot.writeStructEnd(); } + @Override public String toString() { StringBuilder sb = new StringBuilder("getStringProperty_args("); + boolean first = true; + + if (!first) sb.append(", "); sb.append("propertyName:"); sb.append(this.propertyName); + first = false; sb.append(")"); return sb.toString(); } + public void validate() throws TException { + // check for required fields + // check that fields of type enum have valid values + } + } - public static class getStringProperty_result implements TBase, java.io.Serializable { - public String success; + public static class getStringProperty_result implements TBase, java.io.Serializable, Cloneable { + private static final TStruct STRUCT_DESC = new TStruct("getStringProperty_result"); + private static final TField SUCCESS_FIELD_DESC = new TField("success", TType.STRING, (short)0); - public final Isset __isset = new Isset(); - public static final class Isset implements java.io.Serializable { + public String success; + public static final int SUCCESS = 0; + + private final Isset __isset = new Isset(); + private static final class Isset implements java.io.Serializable { public boolean success = false; } + public static final Map metaDataMap = Collections.unmodifiableMap(new HashMap() {{ + put(SUCCESS, new FieldMetaData("success", TFieldRequirementType.DEFAULT, + new FieldValueMetaData(TType.STRING))); + }}); + + static { + FieldMetaData.addStructMetaDataMap(getStringProperty_result.class, metaDataMap); + } + public getStringProperty_result() { } @@ -5163,9 +9272,78 @@ public class Cassandra { { this(); this.success = success; - this.__isset.success = true; + this.__isset.success = (success != null); } + /** + * Performs a deep copy on other. + */ + public getStringProperty_result(getStringProperty_result other) { + __isset.success = other.__isset.success; + if (other.success != null) { + this.success = other.success; + } + } + + @Override + public getStringProperty_result clone() { + return new getStringProperty_result(this); + } + + public String getSuccess() { + return this.success; + } + + public void setSuccess(String success) { + this.success = success; + this.__isset.success = (success != null); + } + + public void unsetSuccess() { + this.__isset.success = false; + } + + // Returns true if field success is set (has been asigned a value) and false otherwise + public boolean isSetSuccess() { + return this.__isset.success; + } + + public void setSuccessIsSet(boolean value) { + this.__isset.success = value; + } + + public void setFieldValue(int fieldID, Object value) { + switch (fieldID) { + case SUCCESS: + setSuccess((String)value); + break; + + default: + throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); + } + } + + public Object getFieldValue(int fieldID) { + switch (fieldID) { + case SUCCESS: + return getSuccess(); + + default: + throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); + } + } + + // Returns true if field corresponding to fieldID is set (has been asigned a value) and false otherwise + public boolean isSet(int fieldID) { + switch (fieldID) { + case SUCCESS: + return this.__isset.success; + default: + throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); + } + } + + @Override public boolean equals(Object that) { if (that == null) return false; @@ -5190,6 +9368,7 @@ public class Cassandra { return true; } + @Override public int hashCode() { return 0; } @@ -5205,7 +9384,7 @@ public class Cassandra { } switch (field.id) { - case 0: + case SUCCESS: if (field.type == TType.STRING) { this.success = iprot.readString(); this.__isset.success = true; @@ -5220,19 +9399,18 @@ public class Cassandra { iprot.readFieldEnd(); } iprot.readStructEnd(); + + + // check for required fields of primitive type, which can't be checked in the validate method + validate(); } public void write(TProtocol oprot) throws TException { - TStruct struct = new TStruct("getStringProperty_result"); - oprot.writeStructBegin(struct); - TField field = new TField(); + oprot.writeStructBegin(STRUCT_DESC); if (this.__isset.success) { if (this.success != null) { - field.name = "success"; - field.type = TType.STRING; - field.id = 0; - oprot.writeFieldBegin(field); + oprot.writeFieldBegin(SUCCESS_FIELD_DESC); oprot.writeString(this.success); oprot.writeFieldEnd(); } @@ -5241,24 +9419,47 @@ public class Cassandra { oprot.writeStructEnd(); } + @Override public String toString() { StringBuilder sb = new StringBuilder("getStringProperty_result("); + boolean first = true; + + if (!first) sb.append(", "); sb.append("success:"); sb.append(this.success); + first = false; sb.append(")"); return sb.toString(); } + public void validate() throws TException { + // check for required fields + // check that fields of type enum have valid values + } + } - public static class getStringListProperty_args implements TBase, java.io.Serializable { - public String propertyName; + public static class getStringListProperty_args implements TBase, java.io.Serializable, Cloneable { + private static final TStruct STRUCT_DESC = new TStruct("getStringListProperty_args"); + private static final TField PROPERTY_NAME_FIELD_DESC = new TField("propertyName", TType.STRING, (short)-1); - public final Isset __isset = new Isset(); - public static final class Isset implements java.io.Serializable { + public String propertyName; + public static final int PROPERTYNAME = -1; + + private final Isset __isset = new Isset(); + private static final class Isset implements java.io.Serializable { public boolean propertyName = false; } + public static final Map metaDataMap = Collections.unmodifiableMap(new HashMap() {{ + put(PROPERTYNAME, new FieldMetaData("propertyName", TFieldRequirementType.DEFAULT, + new FieldValueMetaData(TType.STRING))); + }}); + + static { + FieldMetaData.addStructMetaDataMap(getStringListProperty_args.class, metaDataMap); + } + public getStringListProperty_args() { } @@ -5267,9 +9468,78 @@ public class Cassandra { { this(); this.propertyName = propertyName; - this.__isset.propertyName = true; + this.__isset.propertyName = (propertyName != null); } + /** + * Performs a deep copy on other. + */ + public getStringListProperty_args(getStringListProperty_args other) { + __isset.propertyName = other.__isset.propertyName; + if (other.propertyName != null) { + this.propertyName = other.propertyName; + } + } + + @Override + public getStringListProperty_args clone() { + return new getStringListProperty_args(this); + } + + public String getPropertyName() { + return this.propertyName; + } + + public void setPropertyName(String propertyName) { + this.propertyName = propertyName; + this.__isset.propertyName = (propertyName != null); + } + + public void unsetPropertyName() { + this.__isset.propertyName = false; + } + + // Returns true if field propertyName is set (has been asigned a value) and false otherwise + public boolean isSetPropertyName() { + return this.__isset.propertyName; + } + + public void setPropertyNameIsSet(boolean value) { + this.__isset.propertyName = value; + } + + public void setFieldValue(int fieldID, Object value) { + switch (fieldID) { + case PROPERTYNAME: + setPropertyName((String)value); + break; + + default: + throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); + } + } + + public Object getFieldValue(int fieldID) { + switch (fieldID) { + case PROPERTYNAME: + return getPropertyName(); + + default: + throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); + } + } + + // Returns true if field corresponding to fieldID is set (has been asigned a value) and false otherwise + public boolean isSet(int fieldID) { + switch (fieldID) { + case PROPERTYNAME: + return this.__isset.propertyName; + default: + throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); + } + } + + @Override public boolean equals(Object that) { if (that == null) return false; @@ -5294,6 +9564,7 @@ public class Cassandra { return true; } + @Override public int hashCode() { return 0; } @@ -5309,7 +9580,7 @@ public class Cassandra { } switch (field.id) { - case -1: + case PROPERTYNAME: if (field.type == TType.STRING) { this.propertyName = iprot.readString(); this.__isset.propertyName = true; @@ -5324,17 +9595,18 @@ public class Cassandra { iprot.readFieldEnd(); } iprot.readStructEnd(); + + + // check for required fields of primitive type, which can't be checked in the validate method + validate(); } public void write(TProtocol oprot) throws TException { - TStruct struct = new TStruct("getStringListProperty_args"); - oprot.writeStructBegin(struct); - TField field = new TField(); + validate(); + + oprot.writeStructBegin(STRUCT_DESC); if (this.propertyName != null) { - field.name = "propertyName"; - field.type = TType.STRING; - field.id = -1; - oprot.writeFieldBegin(field); + oprot.writeFieldBegin(PROPERTY_NAME_FIELD_DESC); oprot.writeString(this.propertyName); oprot.writeFieldEnd(); } @@ -5342,24 +9614,48 @@ public class Cassandra { oprot.writeStructEnd(); } + @Override public String toString() { StringBuilder sb = new StringBuilder("getStringListProperty_args("); + boolean first = true; + + if (!first) sb.append(", "); sb.append("propertyName:"); sb.append(this.propertyName); + first = false; sb.append(")"); return sb.toString(); } + public void validate() throws TException { + // check for required fields + // check that fields of type enum have valid values + } + } - public static class getStringListProperty_result implements TBase, java.io.Serializable { - public List success; + public static class getStringListProperty_result implements TBase, java.io.Serializable, Cloneable { + private static final TStruct STRUCT_DESC = new TStruct("getStringListProperty_result"); + private static final TField SUCCESS_FIELD_DESC = new TField("success", TType.LIST, (short)0); - public final Isset __isset = new Isset(); - public static final class Isset implements java.io.Serializable { + public List success; + public static final int SUCCESS = 0; + + private final Isset __isset = new Isset(); + private static final class Isset implements java.io.Serializable { public boolean success = false; } + public static final Map metaDataMap = Collections.unmodifiableMap(new HashMap() {{ + put(SUCCESS, new FieldMetaData("success", TFieldRequirementType.DEFAULT, + new ListMetaData(TType.LIST, + new FieldValueMetaData(TType.STRING)))); + }}); + + static { + FieldMetaData.addStructMetaDataMap(getStringListProperty_result.class, metaDataMap); + } + public getStringListProperty_result() { } @@ -5368,9 +9664,99 @@ public class Cassandra { { this(); this.success = success; + this.__isset.success = (success != null); + } + + /** + * Performs a deep copy on other. + */ + public getStringListProperty_result(getStringListProperty_result other) { + __isset.success = other.__isset.success; + if (other.success != null) { + List __this__success = new ArrayList(); + for (String other_element : other.success) { + __this__success.add(other_element); + } + this.success = __this__success; + } + } + + @Override + public getStringListProperty_result clone() { + return new getStringListProperty_result(this); + } + + public int getSuccessSize() { + return (this.success == null) ? 0 : this.success.size(); + } + + public java.util.Iterator getSuccessIterator() { + return (this.success == null) ? null : this.success.iterator(); + } + + public void addToSuccess(String elem) { + if (this.success == null) { + this.success = new ArrayList(); + } + this.success.add(elem); this.__isset.success = true; } + public List getSuccess() { + return this.success; + } + + public void setSuccess(List success) { + this.success = success; + this.__isset.success = (success != null); + } + + public void unsetSuccess() { + this.success = null; + this.__isset.success = false; + } + + // Returns true if field success is set (has been asigned a value) and false otherwise + public boolean isSetSuccess() { + return this.__isset.success; + } + + public void setSuccessIsSet(boolean value) { + this.__isset.success = value; + } + + public void setFieldValue(int fieldID, Object value) { + switch (fieldID) { + case SUCCESS: + setSuccess((List)value); + break; + + default: + throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); + } + } + + public Object getFieldValue(int fieldID) { + switch (fieldID) { + case SUCCESS: + return getSuccess(); + + default: + throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); + } + } + + // Returns true if field corresponding to fieldID is set (has been asigned a value) and false otherwise + public boolean isSet(int fieldID) { + switch (fieldID) { + case SUCCESS: + return this.__isset.success; + default: + throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); + } + } + + @Override public boolean equals(Object that) { if (that == null) return false; @@ -5395,6 +9781,7 @@ public class Cassandra { return true; } + @Override public int hashCode() { return 0; } @@ -5410,14 +9797,14 @@ public class Cassandra { } switch (field.id) { - case 0: + case SUCCESS: if (field.type == TType.LIST) { { TList _list77 = iprot.readListBegin(); this.success = new ArrayList(_list77.size); for (int _i78 = 0; _i78 < _list77.size; ++_i78) { - String _elem79 = null; + String _elem79; _elem79 = iprot.readString(); this.success.add(_elem79); } @@ -5435,19 +9822,18 @@ public class Cassandra { iprot.readFieldEnd(); } iprot.readStructEnd(); + + + // check for required fields of primitive type, which can't be checked in the validate method + validate(); } public void write(TProtocol oprot) throws TException { - TStruct struct = new TStruct("getStringListProperty_result"); - oprot.writeStructBegin(struct); - TField field = new TField(); + oprot.writeStructBegin(STRUCT_DESC); if (this.__isset.success) { if (this.success != null) { - field.name = "success"; - field.type = TType.LIST; - field.id = 0; - oprot.writeFieldBegin(field); + oprot.writeFieldBegin(SUCCESS_FIELD_DESC); { oprot.writeListBegin(new TList(TType.STRING, this.success.size())); for (String _iter80 : this.success) { @@ -5462,24 +9848,47 @@ public class Cassandra { oprot.writeStructEnd(); } + @Override public String toString() { StringBuilder sb = new StringBuilder("getStringListProperty_result("); + boolean first = true; + + if (!first) sb.append(", "); sb.append("success:"); sb.append(this.success); + first = false; sb.append(")"); return sb.toString(); } + public void validate() throws TException { + // check for required fields + // check that fields of type enum have valid values + } + } - public static class describeTable_args implements TBase, java.io.Serializable { - public String tableName; + public static class describeTable_args implements TBase, java.io.Serializable, Cloneable { + private static final TStruct STRUCT_DESC = new TStruct("describeTable_args"); + private static final TField TABLE_NAME_FIELD_DESC = new TField("tableName", TType.STRING, (short)-1); - public final Isset __isset = new Isset(); - public static final class Isset implements java.io.Serializable { + public String tableName; + public static final int TABLENAME = -1; + + private final Isset __isset = new Isset(); + private static final class Isset implements java.io.Serializable { public boolean tableName = false; } + public static final Map metaDataMap = Collections.unmodifiableMap(new HashMap() {{ + put(TABLENAME, new FieldMetaData("tableName", TFieldRequirementType.DEFAULT, + new FieldValueMetaData(TType.STRING))); + }}); + + static { + FieldMetaData.addStructMetaDataMap(describeTable_args.class, metaDataMap); + } + public describeTable_args() { } @@ -5488,9 +9897,78 @@ public class Cassandra { { this(); this.tableName = tableName; - this.__isset.tableName = true; + this.__isset.tableName = (tableName != null); } + /** + * Performs a deep copy on other. + */ + public describeTable_args(describeTable_args other) { + __isset.tableName = other.__isset.tableName; + if (other.tableName != null) { + this.tableName = other.tableName; + } + } + + @Override + public describeTable_args clone() { + return new describeTable_args(this); + } + + public String getTableName() { + return this.tableName; + } + + public void setTableName(String tableName) { + this.tableName = tableName; + this.__isset.tableName = (tableName != null); + } + + public void unsetTableName() { + this.__isset.tableName = false; + } + + // Returns true if field tableName is set (has been asigned a value) and false otherwise + public boolean isSetTableName() { + return this.__isset.tableName; + } + + public void setTableNameIsSet(boolean value) { + this.__isset.tableName = value; + } + + public void setFieldValue(int fieldID, Object value) { + switch (fieldID) { + case TABLENAME: + setTableName((String)value); + break; + + default: + throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); + } + } + + public Object getFieldValue(int fieldID) { + switch (fieldID) { + case TABLENAME: + return getTableName(); + + default: + throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); + } + } + + // Returns true if field corresponding to fieldID is set (has been asigned a value) and false otherwise + public boolean isSet(int fieldID) { + switch (fieldID) { + case TABLENAME: + return this.__isset.tableName; + default: + throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); + } + } + + @Override public boolean equals(Object that) { if (that == null) return false; @@ -5515,6 +9993,7 @@ public class Cassandra { return true; } + @Override public int hashCode() { return 0; } @@ -5530,7 +10009,7 @@ public class Cassandra { } switch (field.id) { - case -1: + case TABLENAME: if (field.type == TType.STRING) { this.tableName = iprot.readString(); this.__isset.tableName = true; @@ -5545,17 +10024,18 @@ public class Cassandra { iprot.readFieldEnd(); } iprot.readStructEnd(); + + + // check for required fields of primitive type, which can't be checked in the validate method + validate(); } public void write(TProtocol oprot) throws TException { - TStruct struct = new TStruct("describeTable_args"); - oprot.writeStructBegin(struct); - TField field = new TField(); + validate(); + + oprot.writeStructBegin(STRUCT_DESC); if (this.tableName != null) { - field.name = "tableName"; - field.type = TType.STRING; - field.id = -1; - oprot.writeFieldBegin(field); + oprot.writeFieldBegin(TABLE_NAME_FIELD_DESC); oprot.writeString(this.tableName); oprot.writeFieldEnd(); } @@ -5563,24 +10043,47 @@ public class Cassandra { oprot.writeStructEnd(); } + @Override public String toString() { StringBuilder sb = new StringBuilder("describeTable_args("); + boolean first = true; + + if (!first) sb.append(", "); sb.append("tableName:"); sb.append(this.tableName); + first = false; sb.append(")"); return sb.toString(); } + public void validate() throws TException { + // check for required fields + // check that fields of type enum have valid values + } + } - public static class describeTable_result implements TBase, java.io.Serializable { - public String success; + public static class describeTable_result implements TBase, java.io.Serializable, Cloneable { + private static final TStruct STRUCT_DESC = new TStruct("describeTable_result"); + private static final TField SUCCESS_FIELD_DESC = new TField("success", TType.STRING, (short)0); - public final Isset __isset = new Isset(); - public static final class Isset implements java.io.Serializable { + public String success; + public static final int SUCCESS = 0; + + private final Isset __isset = new Isset(); + private static final class Isset implements java.io.Serializable { public boolean success = false; } + public static final Map metaDataMap = Collections.unmodifiableMap(new HashMap() {{ + put(SUCCESS, new FieldMetaData("success", TFieldRequirementType.DEFAULT, + new FieldValueMetaData(TType.STRING))); + }}); + + static { + FieldMetaData.addStructMetaDataMap(describeTable_result.class, metaDataMap); + } + public describeTable_result() { } @@ -5589,9 +10092,78 @@ public class Cassandra { { this(); this.success = success; - this.__isset.success = true; + this.__isset.success = (success != null); } + /** + * Performs a deep copy on other. + */ + public describeTable_result(describeTable_result other) { + __isset.success = other.__isset.success; + if (other.success != null) { + this.success = other.success; + } + } + + @Override + public describeTable_result clone() { + return new describeTable_result(this); + } + + public String getSuccess() { + return this.success; + } + + public void setSuccess(String success) { + this.success = success; + this.__isset.success = (success != null); + } + + public void unsetSuccess() { + this.__isset.success = false; + } + + // Returns true if field success is set (has been asigned a value) and false otherwise + public boolean isSetSuccess() { + return this.__isset.success; + } + + public void setSuccessIsSet(boolean value) { + this.__isset.success = value; + } + + public void setFieldValue(int fieldID, Object value) { + switch (fieldID) { + case SUCCESS: + setSuccess((String)value); + break; + + default: + throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); + } + } + + public Object getFieldValue(int fieldID) { + switch (fieldID) { + case SUCCESS: + return getSuccess(); + + default: + throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); + } + } + + // Returns true if field corresponding to fieldID is set (has been asigned a value) and false otherwise + public boolean isSet(int fieldID) { + switch (fieldID) { + case SUCCESS: + return this.__isset.success; + default: + throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); + } + } + + @Override public boolean equals(Object that) { if (that == null) return false; @@ -5616,6 +10188,7 @@ public class Cassandra { return true; } + @Override public int hashCode() { return 0; } @@ -5631,7 +10204,7 @@ public class Cassandra { } switch (field.id) { - case 0: + case SUCCESS: if (field.type == TType.STRING) { this.success = iprot.readString(); this.__isset.success = true; @@ -5646,19 +10219,18 @@ public class Cassandra { iprot.readFieldEnd(); } iprot.readStructEnd(); + + + // check for required fields of primitive type, which can't be checked in the validate method + validate(); } public void write(TProtocol oprot) throws TException { - TStruct struct = new TStruct("describeTable_result"); - oprot.writeStructBegin(struct); - TField field = new TField(); + oprot.writeStructBegin(STRUCT_DESC); if (this.__isset.success) { if (this.success != null) { - field.name = "success"; - field.type = TType.STRING; - field.id = 0; - oprot.writeFieldBegin(field); + oprot.writeFieldBegin(SUCCESS_FIELD_DESC); oprot.writeString(this.success); oprot.writeFieldEnd(); } @@ -5667,24 +10239,47 @@ public class Cassandra { oprot.writeStructEnd(); } + @Override public String toString() { StringBuilder sb = new StringBuilder("describeTable_result("); + boolean first = true; + + if (!first) sb.append(", "); sb.append("success:"); sb.append(this.success); + first = false; sb.append(")"); return sb.toString(); } + public void validate() throws TException { + // check for required fields + // check that fields of type enum have valid values + } + } - public static class executeQuery_args implements TBase, java.io.Serializable { - public String query; + public static class executeQuery_args implements TBase, java.io.Serializable, Cloneable { + private static final TStruct STRUCT_DESC = new TStruct("executeQuery_args"); + private static final TField QUERY_FIELD_DESC = new TField("query", TType.STRING, (short)-1); - public final Isset __isset = new Isset(); - public static final class Isset implements java.io.Serializable { + public String query; + public static final int QUERY = -1; + + private final Isset __isset = new Isset(); + private static final class Isset implements java.io.Serializable { public boolean query = false; } + public static final Map metaDataMap = Collections.unmodifiableMap(new HashMap() {{ + put(QUERY, new FieldMetaData("query", TFieldRequirementType.DEFAULT, + new FieldValueMetaData(TType.STRING))); + }}); + + static { + FieldMetaData.addStructMetaDataMap(executeQuery_args.class, metaDataMap); + } + public executeQuery_args() { } @@ -5693,9 +10288,78 @@ public class Cassandra { { this(); this.query = query; - this.__isset.query = true; + this.__isset.query = (query != null); } + /** + * Performs a deep copy on other. + */ + public executeQuery_args(executeQuery_args other) { + __isset.query = other.__isset.query; + if (other.query != null) { + this.query = other.query; + } + } + + @Override + public executeQuery_args clone() { + return new executeQuery_args(this); + } + + public String getQuery() { + return this.query; + } + + public void setQuery(String query) { + this.query = query; + this.__isset.query = (query != null); + } + + public void unsetQuery() { + this.__isset.query = false; + } + + // Returns true if field query is set (has been asigned a value) and false otherwise + public boolean isSetQuery() { + return this.__isset.query; + } + + public void setQueryIsSet(boolean value) { + this.__isset.query = value; + } + + public void setFieldValue(int fieldID, Object value) { + switch (fieldID) { + case QUERY: + setQuery((String)value); + break; + + default: + throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); + } + } + + public Object getFieldValue(int fieldID) { + switch (fieldID) { + case QUERY: + return getQuery(); + + default: + throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); + } + } + + // Returns true if field corresponding to fieldID is set (has been asigned a value) and false otherwise + public boolean isSet(int fieldID) { + switch (fieldID) { + case QUERY: + return this.__isset.query; + default: + throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); + } + } + + @Override public boolean equals(Object that) { if (that == null) return false; @@ -5720,6 +10384,7 @@ public class Cassandra { return true; } + @Override public int hashCode() { return 0; } @@ -5735,7 +10400,7 @@ public class Cassandra { } switch (field.id) { - case -1: + case QUERY: if (field.type == TType.STRING) { this.query = iprot.readString(); this.__isset.query = true; @@ -5750,17 +10415,18 @@ public class Cassandra { iprot.readFieldEnd(); } iprot.readStructEnd(); + + + // check for required fields of primitive type, which can't be checked in the validate method + validate(); } public void write(TProtocol oprot) throws TException { - TStruct struct = new TStruct("executeQuery_args"); - oprot.writeStructBegin(struct); - TField field = new TField(); + validate(); + + oprot.writeStructBegin(STRUCT_DESC); if (this.query != null) { - field.name = "query"; - field.type = TType.STRING; - field.id = -1; - oprot.writeFieldBegin(field); + oprot.writeFieldBegin(QUERY_FIELD_DESC); oprot.writeString(this.query); oprot.writeFieldEnd(); } @@ -5768,24 +10434,47 @@ public class Cassandra { oprot.writeStructEnd(); } + @Override public String toString() { StringBuilder sb = new StringBuilder("executeQuery_args("); + boolean first = true; + + if (!first) sb.append(", "); sb.append("query:"); sb.append(this.query); + first = false; sb.append(")"); return sb.toString(); } + public void validate() throws TException { + // check for required fields + // check that fields of type enum have valid values + } + } - public static class executeQuery_result implements TBase, java.io.Serializable { - public CqlResult_t success; + public static class executeQuery_result implements TBase, java.io.Serializable, Cloneable { + private static final TStruct STRUCT_DESC = new TStruct("executeQuery_result"); + private static final TField SUCCESS_FIELD_DESC = new TField("success", TType.STRUCT, (short)0); - public final Isset __isset = new Isset(); - public static final class Isset implements java.io.Serializable { + public CqlResult_t success; + public static final int SUCCESS = 0; + + private final Isset __isset = new Isset(); + private static final class Isset implements java.io.Serializable { public boolean success = false; } + public static final Map metaDataMap = Collections.unmodifiableMap(new HashMap() {{ + put(SUCCESS, new FieldMetaData("success", TFieldRequirementType.DEFAULT, + new StructMetaData(TType.STRUCT, CqlResult_t.class))); + }}); + + static { + FieldMetaData.addStructMetaDataMap(executeQuery_result.class, metaDataMap); + } + public executeQuery_result() { } @@ -5794,9 +10483,79 @@ public class Cassandra { { this(); this.success = success; - this.__isset.success = true; + this.__isset.success = (success != null); } + /** + * Performs a deep copy on other. + */ + public executeQuery_result(executeQuery_result other) { + __isset.success = other.__isset.success; + if (other.success != null) { + this.success = new CqlResult_t(other.success); + } + } + + @Override + public executeQuery_result clone() { + return new executeQuery_result(this); + } + + public CqlResult_t getSuccess() { + return this.success; + } + + public void setSuccess(CqlResult_t success) { + this.success = success; + this.__isset.success = (success != null); + } + + public void unsetSuccess() { + this.success = null; + this.__isset.success = false; + } + + // Returns true if field success is set (has been asigned a value) and false otherwise + public boolean isSetSuccess() { + return this.__isset.success; + } + + public void setSuccessIsSet(boolean value) { + this.__isset.success = value; + } + + public void setFieldValue(int fieldID, Object value) { + switch (fieldID) { + case SUCCESS: + setSuccess((CqlResult_t)value); + break; + + default: + throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); + } + } + + public Object getFieldValue(int fieldID) { + switch (fieldID) { + case SUCCESS: + return getSuccess(); + + default: + throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); + } + } + + // Returns true if field corresponding to fieldID is set (has been asigned a value) and false otherwise + public boolean isSet(int fieldID) { + switch (fieldID) { + case SUCCESS: + return this.__isset.success; + default: + throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); + } + } + + @Override public boolean equals(Object that) { if (that == null) return false; @@ -5821,6 +10580,7 @@ public class Cassandra { return true; } + @Override public int hashCode() { return 0; } @@ -5836,7 +10596,7 @@ public class Cassandra { } switch (field.id) { - case 0: + case SUCCESS: if (field.type == TType.STRUCT) { this.success = new CqlResult_t(); this.success.read(iprot); @@ -5852,19 +10612,18 @@ public class Cassandra { iprot.readFieldEnd(); } iprot.readStructEnd(); + + + // check for required fields of primitive type, which can't be checked in the validate method + validate(); } public void write(TProtocol oprot) throws TException { - TStruct struct = new TStruct("executeQuery_result"); - oprot.writeStructBegin(struct); - TField field = new TField(); + oprot.writeStructBegin(STRUCT_DESC); if (this.__isset.success) { if (this.success != null) { - field.name = "success"; - field.type = TType.STRUCT; - field.id = 0; - oprot.writeFieldBegin(field); + oprot.writeFieldBegin(SUCCESS_FIELD_DESC); this.success.write(oprot); oprot.writeFieldEnd(); } @@ -5873,14 +10632,24 @@ public class Cassandra { oprot.writeStructEnd(); } + @Override public String toString() { StringBuilder sb = new StringBuilder("executeQuery_result("); + boolean first = true; + + if (!first) sb.append(", "); sb.append("success:"); sb.append(this.success); + first = false; sb.append(")"); return sb.toString(); } + public void validate() throws TException { + // check for required fields + // check that fields of type enum have valid values + } + } } diff --git a/src/org/apache/cassandra/service/CassandraDaemon.java b/src/org/apache/cassandra/service/CassandraDaemon.java index bae8e45441..7de19674d9 100644 --- a/src/org/apache/cassandra/service/CassandraDaemon.java +++ b/src/org/apache/cassandra/service/CassandraDaemon.java @@ -22,13 +22,13 @@ import java.io.File; import java.io.IOException; import org.apache.log4j.Logger; -import com.facebook.thrift.protocol.TBinaryProtocol; -import com.facebook.thrift.protocol.TProtocolFactory; -import com.facebook.thrift.server.TThreadPoolServer; -import com.facebook.thrift.transport.TServerSocket; -import com.facebook.thrift.transport.TTransportException; -import com.facebook.thrift.transport.TTransportFactory; -import com.facebook.thrift.TProcessorFactory; +import org.apache.thrift.protocol.TBinaryProtocol; +import org.apache.thrift.protocol.TProtocolFactory; +import org.apache.thrift.server.TThreadPoolServer; +import org.apache.thrift.transport.TServerSocket; +import org.apache.thrift.transport.TTransportException; +import org.apache.thrift.transport.TTransportFactory; +import org.apache.thrift.TProcessorFactory; import org.apache.cassandra.config.DatabaseDescriptor; /** diff --git a/src/org/apache/cassandra/service/CassandraException.java b/src/org/apache/cassandra/service/CassandraException.java index 5e329b2859..68536fff20 100644 --- a/src/org/apache/cassandra/service/CassandraException.java +++ b/src/org/apache/cassandra/service/CassandraException.java @@ -11,19 +11,34 @@ import java.util.Map; import java.util.HashMap; import java.util.Set; import java.util.HashSet; -import com.facebook.thrift.*; +import java.util.Collections; +import org.apache.thrift.*; +import org.apache.thrift.meta_data.*; -import com.facebook.thrift.protocol.*; -import com.facebook.thrift.transport.*; +import org.apache.thrift.protocol.*; +import org.apache.thrift.transport.*; + +public class CassandraException extends Exception implements TBase, java.io.Serializable, Cloneable { + private static final TStruct STRUCT_DESC = new TStruct("CassandraException"); + private static final TField ERROR_FIELD_DESC = new TField("error", TType.STRING, (short)1); -public class CassandraException extends Exception implements TBase, java.io.Serializable { public String error; + public static final int ERROR = 1; - public final Isset __isset = new Isset(); - public static final class Isset implements java.io.Serializable { + private final Isset __isset = new Isset(); + private static final class Isset implements java.io.Serializable { public boolean error = false; } + public static final Map metaDataMap = Collections.unmodifiableMap(new HashMap() {{ + put(ERROR, new FieldMetaData("error", TFieldRequirementType.DEFAULT, + new FieldValueMetaData(TType.STRING))); + }}); + + static { + FieldMetaData.addStructMetaDataMap(CassandraException.class, metaDataMap); + } + public CassandraException() { } @@ -32,9 +47,78 @@ public class CassandraException extends Exception implements TBase, java.io.Seri { this(); this.error = error; - this.__isset.error = true; + this.__isset.error = (error != null); } + /** + * Performs a deep copy on other. + */ + public CassandraException(CassandraException other) { + __isset.error = other.__isset.error; + if (other.error != null) { + this.error = other.error; + } + } + + @Override + public CassandraException clone() { + return new CassandraException(this); + } + + public String getError() { + return this.error; + } + + public void setError(String error) { + this.error = error; + this.__isset.error = (error != null); + } + + public void unsetError() { + this.__isset.error = false; + } + + // Returns true if field error is set (has been asigned a value) and false otherwise + public boolean isSetError() { + return this.__isset.error; + } + + public void setErrorIsSet(boolean value) { + this.__isset.error = value; + } + + public void setFieldValue(int fieldID, Object value) { + switch (fieldID) { + case ERROR: + setError((String)value); + break; + + default: + throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); + } + } + + public Object getFieldValue(int fieldID) { + switch (fieldID) { + case ERROR: + return getError(); + + default: + throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); + } + } + + // Returns true if field corresponding to fieldID is set (has been asigned a value) and false otherwise + public boolean isSet(int fieldID) { + switch (fieldID) { + case ERROR: + return this.__isset.error; + default: + throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); + } + } + + @Override public boolean equals(Object that) { if (that == null) return false; @@ -59,6 +143,7 @@ public class CassandraException extends Exception implements TBase, java.io.Seri return true; } + @Override public int hashCode() { return 0; } @@ -74,7 +159,7 @@ public class CassandraException extends Exception implements TBase, java.io.Seri } switch (field.id) { - case 1: + case ERROR: if (field.type == TType.STRING) { this.error = iprot.readString(); this.__isset.error = true; @@ -89,17 +174,18 @@ public class CassandraException extends Exception implements TBase, java.io.Seri iprot.readFieldEnd(); } iprot.readStructEnd(); + + + // check for required fields of primitive type, which can't be checked in the validate method + validate(); } public void write(TProtocol oprot) throws TException { - TStruct struct = new TStruct("CassandraException"); - oprot.writeStructBegin(struct); - TField field = new TField(); + validate(); + + oprot.writeStructBegin(STRUCT_DESC); if (this.error != null) { - field.name = "error"; - field.type = TType.STRING; - field.id = 1; - oprot.writeFieldBegin(field); + oprot.writeFieldBegin(ERROR_FIELD_DESC); oprot.writeString(this.error); oprot.writeFieldEnd(); } @@ -107,13 +193,23 @@ public class CassandraException extends Exception implements TBase, java.io.Seri oprot.writeStructEnd(); } + @Override public String toString() { StringBuilder sb = new StringBuilder("CassandraException("); + boolean first = true; + + if (!first) sb.append(", "); sb.append("error:"); sb.append(this.error); + first = false; sb.append(")"); return sb.toString(); } + public void validate() throws TException { + // check for required fields + // check that fields of type enum have valid values + } + } diff --git a/src/org/apache/cassandra/service/CassandraServer.java b/src/org/apache/cassandra/service/CassandraServer.java index 3bf83a1a43..9bea0d54ff 100644 --- a/src/org/apache/cassandra/service/CassandraServer.java +++ b/src/org/apache/cassandra/service/CassandraServer.java @@ -35,12 +35,6 @@ import org.apache.log4j.Logger; import com.facebook.fb303.FacebookBase; import com.facebook.fb303.fb_status; -import com.facebook.thrift.TException; -import com.facebook.thrift.protocol.TBinaryProtocol; -import com.facebook.thrift.protocol.TProtocolFactory; -import com.facebook.thrift.server.TThreadPoolServer; -import com.facebook.thrift.server.TThreadPoolServer.Options; -import com.facebook.thrift.transport.TServerSocket; import org.apache.cassandra.config.CFMetaData; import org.apache.cassandra.config.DatabaseDescriptor; import org.apache.cassandra.cql.common.CqlResult; @@ -57,6 +51,7 @@ import org.apache.cassandra.net.IAsyncResult; import org.apache.cassandra.utils.LogUtil; import org.apache.cassandra.io.DataInputBuffer; import org.apache.cassandra.io.DataOutputBuffer; +import org.apache.thrift.TException; /** * Author : Avinash Lakshman ( alakshman@facebook.com) & Prashant Malik ( pmalik@facebook.com ) diff --git a/src/org/apache/cassandra/service/Constants.java b/src/org/apache/cassandra/service/Constants.java index 1227e86651..1171df7633 100644 --- a/src/org/apache/cassandra/service/Constants.java +++ b/src/org/apache/cassandra/service/Constants.java @@ -11,7 +11,7 @@ import java.util.Map; import java.util.HashMap; import java.util.Set; import java.util.HashSet; -import com.facebook.thrift.*; +import org.apache.thrift.*; public class Constants { diff --git a/src/org/apache/cassandra/service/CqlResult_t.java b/src/org/apache/cassandra/service/CqlResult_t.java index 5670fa9784..11f8e6d1c9 100644 --- a/src/org/apache/cassandra/service/CqlResult_t.java +++ b/src/org/apache/cassandra/service/CqlResult_t.java @@ -11,23 +11,46 @@ import java.util.Map; import java.util.HashMap; import java.util.Set; import java.util.HashSet; -import com.facebook.thrift.*; +import java.util.Collections; +import org.apache.thrift.*; +import org.apache.thrift.meta_data.*; -import com.facebook.thrift.protocol.*; -import com.facebook.thrift.transport.*; +import org.apache.thrift.protocol.*; +import org.apache.thrift.transport.*; + +public class CqlResult_t implements TBase, java.io.Serializable, Cloneable { + private static final TStruct STRUCT_DESC = new TStruct("CqlResult_t"); + private static final TField ERROR_CODE_FIELD_DESC = new TField("errorCode", TType.I32, (short)1); + private static final TField ERROR_TXT_FIELD_DESC = new TField("errorTxt", TType.STRING, (short)2); + private static final TField RESULT_SET_FIELD_DESC = new TField("resultSet", TType.LIST, (short)3); -public class CqlResult_t implements TBase, java.io.Serializable { public int errorCode; + public static final int ERRORCODE = 1; public String errorTxt; + public static final int ERRORTXT = 2; public List> resultSet; + public static final int RESULTSET = 3; - public final Isset __isset = new Isset(); - public static final class Isset implements java.io.Serializable { + private final Isset __isset = new Isset(); + private static final class Isset implements java.io.Serializable { public boolean errorCode = false; public boolean errorTxt = false; public boolean resultSet = false; } + public static final Map metaDataMap = Collections.unmodifiableMap(new HashMap() {{ + put(ERRORCODE, new FieldMetaData("errorCode", TFieldRequirementType.DEFAULT, + new FieldValueMetaData(TType.I32))); + put(ERRORTXT, new FieldMetaData("errorTxt", TFieldRequirementType.DEFAULT, + new FieldValueMetaData(TType.STRING))); + put(RESULTSET, new FieldMetaData("resultSet", TFieldRequirementType.DEFAULT, + new FieldValueMetaData(TType.LIST))); + }}); + + static { + FieldMetaData.addStructMetaDataMap(CqlResult_t.class, metaDataMap); + } + public CqlResult_t() { } @@ -40,11 +63,165 @@ public class CqlResult_t implements TBase, java.io.Serializable { this.errorCode = errorCode; this.__isset.errorCode = true; this.errorTxt = errorTxt; - this.__isset.errorTxt = true; + this.__isset.errorTxt = (errorTxt != null); this.resultSet = resultSet; + this.__isset.resultSet = (resultSet != null); + } + + /** + * Performs a deep copy on other. + */ + public CqlResult_t(CqlResult_t other) { + __isset.errorCode = other.__isset.errorCode; + this.errorCode = other.errorCode; + __isset.errorTxt = other.__isset.errorTxt; + if (other.errorTxt != null) { + this.errorTxt = other.errorTxt; + } + __isset.resultSet = other.__isset.resultSet; + if (other.resultSet != null) { + this.resultSet = other.resultSet; + } + } + + @Override + public CqlResult_t clone() { + return new CqlResult_t(this); + } + + public int getErrorCode() { + return this.errorCode; + } + + public void setErrorCode(int errorCode) { + this.errorCode = errorCode; + this.__isset.errorCode = true; + } + + public void unsetErrorCode() { + this.__isset.errorCode = false; + } + + // Returns true if field errorCode is set (has been asigned a value) and false otherwise + public boolean isSetErrorCode() { + return this.__isset.errorCode; + } + + public void setErrorCodeIsSet(boolean value) { + this.__isset.errorCode = value; + } + + public String getErrorTxt() { + return this.errorTxt; + } + + public void setErrorTxt(String errorTxt) { + this.errorTxt = errorTxt; + this.__isset.errorTxt = (errorTxt != null); + } + + public void unsetErrorTxt() { + this.__isset.errorTxt = false; + } + + // Returns true if field errorTxt is set (has been asigned a value) and false otherwise + public boolean isSetErrorTxt() { + return this.__isset.errorTxt; + } + + public void setErrorTxtIsSet(boolean value) { + this.__isset.errorTxt = value; + } + + public int getResultSetSize() { + return (this.resultSet == null) ? 0 : this.resultSet.size(); + } + + public java.util.Iterator> getResultSetIterator() { + return (this.resultSet == null) ? null : this.resultSet.iterator(); + } + + public void addToResultSet(Map elem) { + if (this.resultSet == null) { + this.resultSet = new ArrayList>(); + } + this.resultSet.add(elem); this.__isset.resultSet = true; } + public List> getResultSet() { + return this.resultSet; + } + + public void setResultSet(List> resultSet) { + this.resultSet = resultSet; + this.__isset.resultSet = (resultSet != null); + } + + public void unsetResultSet() { + this.resultSet = null; + this.__isset.resultSet = false; + } + + // Returns true if field resultSet is set (has been asigned a value) and false otherwise + public boolean isSetResultSet() { + return this.__isset.resultSet; + } + + public void setResultSetIsSet(boolean value) { + this.__isset.resultSet = value; + } + + public void setFieldValue(int fieldID, Object value) { + switch (fieldID) { + case ERRORCODE: + setErrorCode((Integer)value); + break; + + case ERRORTXT: + setErrorTxt((String)value); + break; + + case RESULTSET: + setResultSet((List>)value); + break; + + default: + throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); + } + } + + public Object getFieldValue(int fieldID) { + switch (fieldID) { + case ERRORCODE: + return new Integer(getErrorCode()); + + case ERRORTXT: + return getErrorTxt(); + + case RESULTSET: + return getResultSet(); + + default: + throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); + } + } + + // Returns true if field corresponding to fieldID is set (has been asigned a value) and false otherwise + public boolean isSet(int fieldID) { + switch (fieldID) { + case ERRORCODE: + return this.__isset.errorCode; + case ERRORTXT: + return this.__isset.errorTxt; + case RESULTSET: + return this.__isset.resultSet; + default: + throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); + } + } + + @Override public boolean equals(Object that) { if (that == null) return false; @@ -87,6 +264,7 @@ public class CqlResult_t implements TBase, java.io.Serializable { return true; } + @Override public int hashCode() { return 0; } @@ -102,7 +280,7 @@ public class CqlResult_t implements TBase, java.io.Serializable { } switch (field.id) { - case 1: + case ERRORCODE: if (field.type == TType.I32) { this.errorCode = iprot.readI32(); this.__isset.errorCode = true; @@ -110,7 +288,7 @@ public class CqlResult_t implements TBase, java.io.Serializable { TProtocolUtil.skip(iprot, field.type); } break; - case 2: + case ERRORTXT: if (field.type == TType.STRING) { this.errorTxt = iprot.readString(); this.__isset.errorTxt = true; @@ -118,14 +296,14 @@ public class CqlResult_t implements TBase, java.io.Serializable { TProtocolUtil.skip(iprot, field.type); } break; - case 3: + case RESULTSET: if (field.type == TType.LIST) { { TList _list40 = iprot.readListBegin(); this.resultSet = new ArrayList>(_list40.size); for (int _i41 = 0; _i41 < _list40.size; ++_i41) { - Map _elem42 = new HashMap(); + Map _elem42; { TMap _map43 = iprot.readMapBegin(); _elem42 = new HashMap(2*_map43.size); @@ -155,39 +333,34 @@ public class CqlResult_t implements TBase, java.io.Serializable { iprot.readFieldEnd(); } iprot.readStructEnd(); + + + // check for required fields of primitive type, which can't be checked in the validate method + validate(); } public void write(TProtocol oprot) throws TException { - TStruct struct = new TStruct("CqlResult_t"); - oprot.writeStructBegin(struct); - TField field = new TField(); - field.name = "errorCode"; - field.type = TType.I32; - field.id = 1; - oprot.writeFieldBegin(field); + validate(); + + oprot.writeStructBegin(STRUCT_DESC); + oprot.writeFieldBegin(ERROR_CODE_FIELD_DESC); oprot.writeI32(this.errorCode); oprot.writeFieldEnd(); if (this.errorTxt != null) { - field.name = "errorTxt"; - field.type = TType.STRING; - field.id = 2; - oprot.writeFieldBegin(field); + oprot.writeFieldBegin(ERROR_TXT_FIELD_DESC); oprot.writeString(this.errorTxt); oprot.writeFieldEnd(); } if (this.resultSet != null) { - field.name = "resultSet"; - field.type = TType.LIST; - field.id = 3; - oprot.writeFieldBegin(field); + oprot.writeFieldBegin(RESULT_SET_FIELD_DESC); { oprot.writeListBegin(new TList(TType.MAP, this.resultSet.size())); for (Map _iter47 : this.resultSet) { { oprot.writeMapBegin(new TMap(TType.STRING, TType.STRING, _iter47.size())); - for (String _iter48 : _iter47.keySet()) { - oprot.writeString(_iter48); - oprot.writeString(_iter47.get(_iter48)); + for (Map.Entry _iter48 : _iter47.entrySet()) { + oprot.writeString(_iter48.getKey()); + oprot.writeString(_iter48.getValue()); } oprot.writeMapEnd(); } @@ -200,17 +373,31 @@ public class CqlResult_t implements TBase, java.io.Serializable { oprot.writeStructEnd(); } + @Override public String toString() { StringBuilder sb = new StringBuilder("CqlResult_t("); + boolean first = true; + + if (!first) sb.append(", "); sb.append("errorCode:"); sb.append(this.errorCode); - sb.append(",errorTxt:"); + first = false; + if (!first) sb.append(", "); + sb.append("errorTxt:"); sb.append(this.errorTxt); - sb.append(",resultSet:"); + first = false; + if (!first) sb.append(", "); + sb.append("resultSet:"); sb.append(this.resultSet); + first = false; sb.append(")"); return sb.toString(); } + public void validate() throws TException { + // check for required fields + // check that fields of type enum have valid values + } + } diff --git a/src/org/apache/cassandra/service/batch_mutation_super_t.java b/src/org/apache/cassandra/service/batch_mutation_super_t.java index 80857454c5..03501cb642 100644 --- a/src/org/apache/cassandra/service/batch_mutation_super_t.java +++ b/src/org/apache/cassandra/service/batch_mutation_super_t.java @@ -11,25 +11,52 @@ import java.util.Map; import java.util.HashMap; import java.util.Set; import java.util.HashSet; -import com.facebook.thrift.*; +import java.util.Collections; +import org.apache.thrift.*; +import org.apache.thrift.meta_data.*; -import com.facebook.thrift.protocol.*; -import com.facebook.thrift.transport.*; +import org.apache.thrift.protocol.*; +import org.apache.thrift.transport.*; + +public class batch_mutation_super_t implements TBase, java.io.Serializable, Cloneable { + private static final TStruct STRUCT_DESC = new TStruct("batch_mutation_super_t"); + private static final TField TABLE_FIELD_DESC = new TField("table", TType.STRING, (short)1); + private static final TField KEY_FIELD_DESC = new TField("key", TType.STRING, (short)2); + private static final TField CFMAP_FIELD_DESC = new TField("cfmap", TType.MAP, (short)3); + private static final TField CFMAPDEL_FIELD_DESC = new TField("cfmapdel", TType.MAP, (short)4); -public class batch_mutation_super_t implements TBase, java.io.Serializable { public String table; + public static final int TABLE = 1; public String key; + public static final int KEY = 2; public Map> cfmap; + public static final int CFMAP = 3; public Map> cfmapdel; + public static final int CFMAPDEL = 4; - public final Isset __isset = new Isset(); - public static final class Isset implements java.io.Serializable { + private final Isset __isset = new Isset(); + private static final class Isset implements java.io.Serializable { public boolean table = false; public boolean key = false; public boolean cfmap = false; public boolean cfmapdel = false; } + public static final Map metaDataMap = Collections.unmodifiableMap(new HashMap() {{ + put(TABLE, new FieldMetaData("table", TFieldRequirementType.DEFAULT, + new FieldValueMetaData(TType.STRING))); + put(KEY, new FieldMetaData("key", TFieldRequirementType.DEFAULT, + new FieldValueMetaData(TType.STRING))); + put(CFMAP, new FieldMetaData("cfmap", TFieldRequirementType.DEFAULT, + new FieldValueMetaData(TType.MAP))); + put(CFMAPDEL, new FieldMetaData("cfmapdel", TFieldRequirementType.DEFAULT, + new FieldValueMetaData(TType.MAP))); + }}); + + static { + FieldMetaData.addStructMetaDataMap(batch_mutation_super_t.class, metaDataMap); + } + public batch_mutation_super_t() { } @@ -41,15 +68,215 @@ public class batch_mutation_super_t implements TBase, java.io.Serializable { { this(); this.table = table; - this.__isset.table = true; + this.__isset.table = (table != null); this.key = key; - this.__isset.key = true; + this.__isset.key = (key != null); this.cfmap = cfmap; - this.__isset.cfmap = true; + this.__isset.cfmap = (cfmap != null); this.cfmapdel = cfmapdel; + this.__isset.cfmapdel = (cfmapdel != null); + } + + /** + * Performs a deep copy on other. + */ + public batch_mutation_super_t(batch_mutation_super_t other) { + __isset.table = other.__isset.table; + if (other.table != null) { + this.table = other.table; + } + __isset.key = other.__isset.key; + if (other.key != null) { + this.key = other.key; + } + __isset.cfmap = other.__isset.cfmap; + if (other.cfmap != null) { + this.cfmap = other.cfmap; + } + __isset.cfmapdel = other.__isset.cfmapdel; + if (other.cfmapdel != null) { + this.cfmapdel = other.cfmapdel; + } + } + + @Override + public batch_mutation_super_t clone() { + return new batch_mutation_super_t(this); + } + + public String getTable() { + return this.table; + } + + public void setTable(String table) { + this.table = table; + this.__isset.table = (table != null); + } + + public void unsetTable() { + this.__isset.table = false; + } + + // Returns true if field table is set (has been asigned a value) and false otherwise + public boolean isSetTable() { + return this.__isset.table; + } + + public void setTableIsSet(boolean value) { + this.__isset.table = value; + } + + public String getKey() { + return this.key; + } + + public void setKey(String key) { + this.key = key; + this.__isset.key = (key != null); + } + + public void unsetKey() { + this.__isset.key = false; + } + + // Returns true if field key is set (has been asigned a value) and false otherwise + public boolean isSetKey() { + return this.__isset.key; + } + + public void setKeyIsSet(boolean value) { + this.__isset.key = value; + } + + public int getCfmapSize() { + return (this.cfmap == null) ? 0 : this.cfmap.size(); + } + + public void putToCfmap(String key, List val) { + if (this.cfmap == null) { + this.cfmap = new HashMap>(); + } + this.cfmap.put(key, val); + this.__isset.cfmap = true; + } + + public Map> getCfmap() { + return this.cfmap; + } + + public void setCfmap(Map> cfmap) { + this.cfmap = cfmap; + this.__isset.cfmap = (cfmap != null); + } + + public void unsetCfmap() { + this.cfmap = null; + this.__isset.cfmap = false; + } + + // Returns true if field cfmap is set (has been asigned a value) and false otherwise + public boolean isSetCfmap() { + return this.__isset.cfmap; + } + + public void setCfmapIsSet(boolean value) { + this.__isset.cfmap = value; + } + + public int getCfmapdelSize() { + return (this.cfmapdel == null) ? 0 : this.cfmapdel.size(); + } + + public void putToCfmapdel(String key, List val) { + if (this.cfmapdel == null) { + this.cfmapdel = new HashMap>(); + } + this.cfmapdel.put(key, val); this.__isset.cfmapdel = true; } + public Map> getCfmapdel() { + return this.cfmapdel; + } + + public void setCfmapdel(Map> cfmapdel) { + this.cfmapdel = cfmapdel; + this.__isset.cfmapdel = (cfmapdel != null); + } + + public void unsetCfmapdel() { + this.cfmapdel = null; + this.__isset.cfmapdel = false; + } + + // Returns true if field cfmapdel is set (has been asigned a value) and false otherwise + public boolean isSetCfmapdel() { + return this.__isset.cfmapdel; + } + + public void setCfmapdelIsSet(boolean value) { + this.__isset.cfmapdel = value; + } + + public void setFieldValue(int fieldID, Object value) { + switch (fieldID) { + case TABLE: + setTable((String)value); + break; + + case KEY: + setKey((String)value); + break; + + case CFMAP: + setCfmap((Map>)value); + break; + + case CFMAPDEL: + setCfmapdel((Map>)value); + break; + + default: + throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); + } + } + + public Object getFieldValue(int fieldID) { + switch (fieldID) { + case TABLE: + return getTable(); + + case KEY: + return getKey(); + + case CFMAP: + return getCfmap(); + + case CFMAPDEL: + return getCfmapdel(); + + default: + throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); + } + } + + // Returns true if field corresponding to fieldID is set (has been asigned a value) and false otherwise + public boolean isSet(int fieldID) { + switch (fieldID) { + case TABLE: + return this.__isset.table; + case KEY: + return this.__isset.key; + case CFMAP: + return this.__isset.cfmap; + case CFMAPDEL: + return this.__isset.cfmapdel; + default: + throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); + } + } + + @Override public boolean equals(Object that) { if (that == null) return false; @@ -101,6 +328,7 @@ public class batch_mutation_super_t implements TBase, java.io.Serializable { return true; } + @Override public int hashCode() { return 0; } @@ -116,7 +344,7 @@ public class batch_mutation_super_t implements TBase, java.io.Serializable { } switch (field.id) { - case 1: + case TABLE: if (field.type == TType.STRING) { this.table = iprot.readString(); this.__isset.table = true; @@ -124,7 +352,7 @@ public class batch_mutation_super_t implements TBase, java.io.Serializable { TProtocolUtil.skip(iprot, field.type); } break; - case 2: + case KEY: if (field.type == TType.STRING) { this.key = iprot.readString(); this.__isset.key = true; @@ -132,7 +360,7 @@ public class batch_mutation_super_t implements TBase, java.io.Serializable { TProtocolUtil.skip(iprot, field.type); } break; - case 3: + case CFMAP: if (field.type == TType.MAP) { { TMap _map22 = iprot.readMapBegin(); @@ -147,7 +375,7 @@ public class batch_mutation_super_t implements TBase, java.io.Serializable { _val25 = new ArrayList(_list26.size); for (int _i27 = 0; _i27 < _list26.size; ++_i27) { - superColumn_t _elem28 = new superColumn_t(); + superColumn_t _elem28; _elem28 = new superColumn_t(); _elem28.read(iprot); _val25.add(_elem28); @@ -163,7 +391,7 @@ public class batch_mutation_super_t implements TBase, java.io.Serializable { TProtocolUtil.skip(iprot, field.type); } break; - case 4: + case CFMAPDEL: if (field.type == TType.MAP) { { TMap _map29 = iprot.readMapBegin(); @@ -178,7 +406,7 @@ public class batch_mutation_super_t implements TBase, java.io.Serializable { _val32 = new ArrayList(_list33.size); for (int _i34 = 0; _i34 < _list33.size; ++_i34) { - superColumn_t _elem35 = new superColumn_t(); + superColumn_t _elem35; _elem35 = new superColumn_t(); _elem35.read(iprot); _val32.add(_elem35); @@ -201,40 +429,35 @@ public class batch_mutation_super_t implements TBase, java.io.Serializable { iprot.readFieldEnd(); } iprot.readStructEnd(); + + + // check for required fields of primitive type, which can't be checked in the validate method + validate(); } public void write(TProtocol oprot) throws TException { - TStruct struct = new TStruct("batch_mutation_super_t"); - oprot.writeStructBegin(struct); - TField field = new TField(); + validate(); + + oprot.writeStructBegin(STRUCT_DESC); if (this.table != null) { - field.name = "table"; - field.type = TType.STRING; - field.id = 1; - oprot.writeFieldBegin(field); + oprot.writeFieldBegin(TABLE_FIELD_DESC); oprot.writeString(this.table); oprot.writeFieldEnd(); } if (this.key != null) { - field.name = "key"; - field.type = TType.STRING; - field.id = 2; - oprot.writeFieldBegin(field); + oprot.writeFieldBegin(KEY_FIELD_DESC); oprot.writeString(this.key); oprot.writeFieldEnd(); } if (this.cfmap != null) { - field.name = "cfmap"; - field.type = TType.MAP; - field.id = 3; - oprot.writeFieldBegin(field); + oprot.writeFieldBegin(CFMAP_FIELD_DESC); { oprot.writeMapBegin(new TMap(TType.STRING, TType.LIST, this.cfmap.size())); - for (String _iter36 : this.cfmap.keySet()) { - oprot.writeString(_iter36); + for (Map.Entry> _iter36 : this.cfmap.entrySet()) { + oprot.writeString(_iter36.getKey()); { - oprot.writeListBegin(new TList(TType.STRUCT, this.cfmap.get(_iter36).size())); - for (superColumn_t _iter37 : this.cfmap.get(_iter36)) { + oprot.writeListBegin(new TList(TType.STRUCT, _iter36.getValue().size())); + for (superColumn_t _iter37 : _iter36.getValue()) { _iter37.write(oprot); } oprot.writeListEnd(); @@ -245,17 +468,14 @@ public class batch_mutation_super_t implements TBase, java.io.Serializable { oprot.writeFieldEnd(); } if (this.cfmapdel != null) { - field.name = "cfmapdel"; - field.type = TType.MAP; - field.id = 4; - oprot.writeFieldBegin(field); + oprot.writeFieldBegin(CFMAPDEL_FIELD_DESC); { oprot.writeMapBegin(new TMap(TType.STRING, TType.LIST, this.cfmapdel.size())); - for (String _iter38 : this.cfmapdel.keySet()) { - oprot.writeString(_iter38); + for (Map.Entry> _iter38 : this.cfmapdel.entrySet()) { + oprot.writeString(_iter38.getKey()); { - oprot.writeListBegin(new TList(TType.STRUCT, this.cfmapdel.get(_iter38).size())); - for (superColumn_t _iter39 : this.cfmapdel.get(_iter38)) { + oprot.writeListBegin(new TList(TType.STRUCT, _iter38.getValue().size())); + for (superColumn_t _iter39 : _iter38.getValue()) { _iter39.write(oprot); } oprot.writeListEnd(); @@ -269,19 +489,35 @@ public class batch_mutation_super_t implements TBase, java.io.Serializable { oprot.writeStructEnd(); } + @Override public String toString() { StringBuilder sb = new StringBuilder("batch_mutation_super_t("); + boolean first = true; + + if (!first) sb.append(", "); sb.append("table:"); sb.append(this.table); - sb.append(",key:"); + first = false; + if (!first) sb.append(", "); + sb.append("key:"); sb.append(this.key); - sb.append(",cfmap:"); + first = false; + if (!first) sb.append(", "); + sb.append("cfmap:"); sb.append(this.cfmap); - sb.append(",cfmapdel:"); + first = false; + if (!first) sb.append(", "); + sb.append("cfmapdel:"); sb.append(this.cfmapdel); + first = false; sb.append(")"); return sb.toString(); } + public void validate() throws TException { + // check for required fields + // check that fields of type enum have valid values + } + } diff --git a/src/org/apache/cassandra/service/batch_mutation_t.java b/src/org/apache/cassandra/service/batch_mutation_t.java index fff8c817ce..6477224ff2 100644 --- a/src/org/apache/cassandra/service/batch_mutation_t.java +++ b/src/org/apache/cassandra/service/batch_mutation_t.java @@ -11,25 +11,52 @@ import java.util.Map; import java.util.HashMap; import java.util.Set; import java.util.HashSet; -import com.facebook.thrift.*; +import java.util.Collections; +import org.apache.thrift.*; +import org.apache.thrift.meta_data.*; -import com.facebook.thrift.protocol.*; -import com.facebook.thrift.transport.*; +import org.apache.thrift.protocol.*; +import org.apache.thrift.transport.*; + +public class batch_mutation_t implements TBase, java.io.Serializable, Cloneable { + private static final TStruct STRUCT_DESC = new TStruct("batch_mutation_t"); + private static final TField TABLE_FIELD_DESC = new TField("table", TType.STRING, (short)1); + private static final TField KEY_FIELD_DESC = new TField("key", TType.STRING, (short)2); + private static final TField CFMAP_FIELD_DESC = new TField("cfmap", TType.MAP, (short)3); + private static final TField CFMAPDEL_FIELD_DESC = new TField("cfmapdel", TType.MAP, (short)4); -public class batch_mutation_t implements TBase, java.io.Serializable { public String table; + public static final int TABLE = 1; public String key; + public static final int KEY = 2; public Map> cfmap; + public static final int CFMAP = 3; public Map> cfmapdel; + public static final int CFMAPDEL = 4; - public final Isset __isset = new Isset(); - public static final class Isset implements java.io.Serializable { + private final Isset __isset = new Isset(); + private static final class Isset implements java.io.Serializable { public boolean table = false; public boolean key = false; public boolean cfmap = false; public boolean cfmapdel = false; } + public static final Map metaDataMap = Collections.unmodifiableMap(new HashMap() {{ + put(TABLE, new FieldMetaData("table", TFieldRequirementType.DEFAULT, + new FieldValueMetaData(TType.STRING))); + put(KEY, new FieldMetaData("key", TFieldRequirementType.DEFAULT, + new FieldValueMetaData(TType.STRING))); + put(CFMAP, new FieldMetaData("cfmap", TFieldRequirementType.DEFAULT, + new FieldValueMetaData(TType.MAP))); + put(CFMAPDEL, new FieldMetaData("cfmapdel", TFieldRequirementType.DEFAULT, + new FieldValueMetaData(TType.MAP))); + }}); + + static { + FieldMetaData.addStructMetaDataMap(batch_mutation_t.class, metaDataMap); + } + public batch_mutation_t() { } @@ -41,15 +68,215 @@ public class batch_mutation_t implements TBase, java.io.Serializable { { this(); this.table = table; - this.__isset.table = true; + this.__isset.table = (table != null); this.key = key; - this.__isset.key = true; + this.__isset.key = (key != null); this.cfmap = cfmap; - this.__isset.cfmap = true; + this.__isset.cfmap = (cfmap != null); this.cfmapdel = cfmapdel; + this.__isset.cfmapdel = (cfmapdel != null); + } + + /** + * Performs a deep copy on other. + */ + public batch_mutation_t(batch_mutation_t other) { + __isset.table = other.__isset.table; + if (other.table != null) { + this.table = other.table; + } + __isset.key = other.__isset.key; + if (other.key != null) { + this.key = other.key; + } + __isset.cfmap = other.__isset.cfmap; + if (other.cfmap != null) { + this.cfmap = other.cfmap; + } + __isset.cfmapdel = other.__isset.cfmapdel; + if (other.cfmapdel != null) { + this.cfmapdel = other.cfmapdel; + } + } + + @Override + public batch_mutation_t clone() { + return new batch_mutation_t(this); + } + + public String getTable() { + return this.table; + } + + public void setTable(String table) { + this.table = table; + this.__isset.table = (table != null); + } + + public void unsetTable() { + this.__isset.table = false; + } + + // Returns true if field table is set (has been asigned a value) and false otherwise + public boolean isSetTable() { + return this.__isset.table; + } + + public void setTableIsSet(boolean value) { + this.__isset.table = value; + } + + public String getKey() { + return this.key; + } + + public void setKey(String key) { + this.key = key; + this.__isset.key = (key != null); + } + + public void unsetKey() { + this.__isset.key = false; + } + + // Returns true if field key is set (has been asigned a value) and false otherwise + public boolean isSetKey() { + return this.__isset.key; + } + + public void setKeyIsSet(boolean value) { + this.__isset.key = value; + } + + public int getCfmapSize() { + return (this.cfmap == null) ? 0 : this.cfmap.size(); + } + + public void putToCfmap(String key, List val) { + if (this.cfmap == null) { + this.cfmap = new HashMap>(); + } + this.cfmap.put(key, val); + this.__isset.cfmap = true; + } + + public Map> getCfmap() { + return this.cfmap; + } + + public void setCfmap(Map> cfmap) { + this.cfmap = cfmap; + this.__isset.cfmap = (cfmap != null); + } + + public void unsetCfmap() { + this.cfmap = null; + this.__isset.cfmap = false; + } + + // Returns true if field cfmap is set (has been asigned a value) and false otherwise + public boolean isSetCfmap() { + return this.__isset.cfmap; + } + + public void setCfmapIsSet(boolean value) { + this.__isset.cfmap = value; + } + + public int getCfmapdelSize() { + return (this.cfmapdel == null) ? 0 : this.cfmapdel.size(); + } + + public void putToCfmapdel(String key, List val) { + if (this.cfmapdel == null) { + this.cfmapdel = new HashMap>(); + } + this.cfmapdel.put(key, val); this.__isset.cfmapdel = true; } + public Map> getCfmapdel() { + return this.cfmapdel; + } + + public void setCfmapdel(Map> cfmapdel) { + this.cfmapdel = cfmapdel; + this.__isset.cfmapdel = (cfmapdel != null); + } + + public void unsetCfmapdel() { + this.cfmapdel = null; + this.__isset.cfmapdel = false; + } + + // Returns true if field cfmapdel is set (has been asigned a value) and false otherwise + public boolean isSetCfmapdel() { + return this.__isset.cfmapdel; + } + + public void setCfmapdelIsSet(boolean value) { + this.__isset.cfmapdel = value; + } + + public void setFieldValue(int fieldID, Object value) { + switch (fieldID) { + case TABLE: + setTable((String)value); + break; + + case KEY: + setKey((String)value); + break; + + case CFMAP: + setCfmap((Map>)value); + break; + + case CFMAPDEL: + setCfmapdel((Map>)value); + break; + + default: + throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); + } + } + + public Object getFieldValue(int fieldID) { + switch (fieldID) { + case TABLE: + return getTable(); + + case KEY: + return getKey(); + + case CFMAP: + return getCfmap(); + + case CFMAPDEL: + return getCfmapdel(); + + default: + throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); + } + } + + // Returns true if field corresponding to fieldID is set (has been asigned a value) and false otherwise + public boolean isSet(int fieldID) { + switch (fieldID) { + case TABLE: + return this.__isset.table; + case KEY: + return this.__isset.key; + case CFMAP: + return this.__isset.cfmap; + case CFMAPDEL: + return this.__isset.cfmapdel; + default: + throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); + } + } + + @Override public boolean equals(Object that) { if (that == null) return false; @@ -101,6 +328,7 @@ public class batch_mutation_t implements TBase, java.io.Serializable { return true; } + @Override public int hashCode() { return 0; } @@ -116,7 +344,7 @@ public class batch_mutation_t implements TBase, java.io.Serializable { } switch (field.id) { - case 1: + case TABLE: if (field.type == TType.STRING) { this.table = iprot.readString(); this.__isset.table = true; @@ -124,7 +352,7 @@ public class batch_mutation_t implements TBase, java.io.Serializable { TProtocolUtil.skip(iprot, field.type); } break; - case 2: + case KEY: if (field.type == TType.STRING) { this.key = iprot.readString(); this.__isset.key = true; @@ -132,7 +360,7 @@ public class batch_mutation_t implements TBase, java.io.Serializable { TProtocolUtil.skip(iprot, field.type); } break; - case 3: + case CFMAP: if (field.type == TType.MAP) { { TMap _map0 = iprot.readMapBegin(); @@ -147,7 +375,7 @@ public class batch_mutation_t implements TBase, java.io.Serializable { _val3 = new ArrayList(_list4.size); for (int _i5 = 0; _i5 < _list4.size; ++_i5) { - column_t _elem6 = new column_t(); + column_t _elem6; _elem6 = new column_t(); _elem6.read(iprot); _val3.add(_elem6); @@ -163,7 +391,7 @@ public class batch_mutation_t implements TBase, java.io.Serializable { TProtocolUtil.skip(iprot, field.type); } break; - case 4: + case CFMAPDEL: if (field.type == TType.MAP) { { TMap _map7 = iprot.readMapBegin(); @@ -178,7 +406,7 @@ public class batch_mutation_t implements TBase, java.io.Serializable { _val10 = new ArrayList(_list11.size); for (int _i12 = 0; _i12 < _list11.size; ++_i12) { - column_t _elem13 = new column_t(); + column_t _elem13; _elem13 = new column_t(); _elem13.read(iprot); _val10.add(_elem13); @@ -201,40 +429,35 @@ public class batch_mutation_t implements TBase, java.io.Serializable { iprot.readFieldEnd(); } iprot.readStructEnd(); + + + // check for required fields of primitive type, which can't be checked in the validate method + validate(); } public void write(TProtocol oprot) throws TException { - TStruct struct = new TStruct("batch_mutation_t"); - oprot.writeStructBegin(struct); - TField field = new TField(); + validate(); + + oprot.writeStructBegin(STRUCT_DESC); if (this.table != null) { - field.name = "table"; - field.type = TType.STRING; - field.id = 1; - oprot.writeFieldBegin(field); + oprot.writeFieldBegin(TABLE_FIELD_DESC); oprot.writeString(this.table); oprot.writeFieldEnd(); } if (this.key != null) { - field.name = "key"; - field.type = TType.STRING; - field.id = 2; - oprot.writeFieldBegin(field); + oprot.writeFieldBegin(KEY_FIELD_DESC); oprot.writeString(this.key); oprot.writeFieldEnd(); } if (this.cfmap != null) { - field.name = "cfmap"; - field.type = TType.MAP; - field.id = 3; - oprot.writeFieldBegin(field); + oprot.writeFieldBegin(CFMAP_FIELD_DESC); { oprot.writeMapBegin(new TMap(TType.STRING, TType.LIST, this.cfmap.size())); - for (String _iter14 : this.cfmap.keySet()) { - oprot.writeString(_iter14); + for (Map.Entry> _iter14 : this.cfmap.entrySet()) { + oprot.writeString(_iter14.getKey()); { - oprot.writeListBegin(new TList(TType.STRUCT, this.cfmap.get(_iter14).size())); - for (column_t _iter15 : this.cfmap.get(_iter14)) { + oprot.writeListBegin(new TList(TType.STRUCT, _iter14.getValue().size())); + for (column_t _iter15 : _iter14.getValue()) { _iter15.write(oprot); } oprot.writeListEnd(); @@ -245,17 +468,14 @@ public class batch_mutation_t implements TBase, java.io.Serializable { oprot.writeFieldEnd(); } if (this.cfmapdel != null) { - field.name = "cfmapdel"; - field.type = TType.MAP; - field.id = 4; - oprot.writeFieldBegin(field); + oprot.writeFieldBegin(CFMAPDEL_FIELD_DESC); { oprot.writeMapBegin(new TMap(TType.STRING, TType.LIST, this.cfmapdel.size())); - for (String _iter16 : this.cfmapdel.keySet()) { - oprot.writeString(_iter16); + for (Map.Entry> _iter16 : this.cfmapdel.entrySet()) { + oprot.writeString(_iter16.getKey()); { - oprot.writeListBegin(new TList(TType.STRUCT, this.cfmapdel.get(_iter16).size())); - for (column_t _iter17 : this.cfmapdel.get(_iter16)) { + oprot.writeListBegin(new TList(TType.STRUCT, _iter16.getValue().size())); + for (column_t _iter17 : _iter16.getValue()) { _iter17.write(oprot); } oprot.writeListEnd(); @@ -269,19 +489,35 @@ public class batch_mutation_t implements TBase, java.io.Serializable { oprot.writeStructEnd(); } + @Override public String toString() { StringBuilder sb = new StringBuilder("batch_mutation_t("); + boolean first = true; + + if (!first) sb.append(", "); sb.append("table:"); sb.append(this.table); - sb.append(",key:"); + first = false; + if (!first) sb.append(", "); + sb.append("key:"); sb.append(this.key); - sb.append(",cfmap:"); + first = false; + if (!first) sb.append(", "); + sb.append("cfmap:"); sb.append(this.cfmap); - sb.append(",cfmapdel:"); + first = false; + if (!first) sb.append(", "); + sb.append("cfmapdel:"); sb.append(this.cfmapdel); + first = false; sb.append(")"); return sb.toString(); } + public void validate() throws TException { + // check for required fields + // check that fields of type enum have valid values + } + } diff --git a/src/org/apache/cassandra/service/column_t.java b/src/org/apache/cassandra/service/column_t.java index da2c2123ac..dbe0cd372b 100644 --- a/src/org/apache/cassandra/service/column_t.java +++ b/src/org/apache/cassandra/service/column_t.java @@ -11,23 +11,46 @@ import java.util.Map; import java.util.HashMap; import java.util.Set; import java.util.HashSet; -import com.facebook.thrift.*; +import java.util.Collections; +import org.apache.thrift.*; +import org.apache.thrift.meta_data.*; -import com.facebook.thrift.protocol.*; -import com.facebook.thrift.transport.*; +import org.apache.thrift.protocol.*; +import org.apache.thrift.transport.*; + +public class column_t implements TBase, java.io.Serializable, Cloneable { + private static final TStruct STRUCT_DESC = new TStruct("column_t"); + private static final TField COLUMN_NAME_FIELD_DESC = new TField("columnName", TType.STRING, (short)1); + private static final TField VALUE_FIELD_DESC = new TField("value", TType.STRING, (short)2); + private static final TField TIMESTAMP_FIELD_DESC = new TField("timestamp", TType.I64, (short)3); -public class column_t implements TBase, java.io.Serializable { public String columnName; + public static final int COLUMNNAME = 1; public String value; + public static final int VALUE = 2; public long timestamp; + public static final int TIMESTAMP = 3; - public final Isset __isset = new Isset(); - public static final class Isset implements java.io.Serializable { + private final Isset __isset = new Isset(); + private static final class Isset implements java.io.Serializable { public boolean columnName = false; public boolean value = false; public boolean timestamp = false; } + public static final Map metaDataMap = Collections.unmodifiableMap(new HashMap() {{ + put(COLUMNNAME, new FieldMetaData("columnName", TFieldRequirementType.DEFAULT, + new FieldValueMetaData(TType.STRING))); + put(VALUE, new FieldMetaData("value", TFieldRequirementType.DEFAULT, + new FieldValueMetaData(TType.STRING))); + put(TIMESTAMP, new FieldMetaData("timestamp", TFieldRequirementType.DEFAULT, + new FieldValueMetaData(TType.I64))); + }}); + + static { + FieldMetaData.addStructMetaDataMap(column_t.class, metaDataMap); + } + public column_t() { } @@ -38,13 +61,150 @@ public class column_t implements TBase, java.io.Serializable { { this(); this.columnName = columnName; - this.__isset.columnName = true; + this.__isset.columnName = (columnName != null); this.value = value; - this.__isset.value = true; + this.__isset.value = (value != null); this.timestamp = timestamp; this.__isset.timestamp = true; } + /** + * Performs a deep copy on other. + */ + public column_t(column_t other) { + __isset.columnName = other.__isset.columnName; + if (other.columnName != null) { + this.columnName = other.columnName; + } + __isset.value = other.__isset.value; + if (other.value != null) { + this.value = other.value; + } + __isset.timestamp = other.__isset.timestamp; + this.timestamp = other.timestamp; + } + + @Override + public column_t clone() { + return new column_t(this); + } + + public String getColumnName() { + return this.columnName; + } + + public void setColumnName(String columnName) { + this.columnName = columnName; + this.__isset.columnName = (columnName != null); + } + + public void unsetColumnName() { + this.__isset.columnName = false; + } + + // Returns true if field columnName is set (has been asigned a value) and false otherwise + public boolean isSetColumnName() { + return this.__isset.columnName; + } + + public void setColumnNameIsSet(boolean value) { + this.__isset.columnName = value; + } + + public String getValue() { + return this.value; + } + + public void setValue(String value) { + this.value = value; + this.__isset.value = (value != null); + } + + public void unsetValue() { + this.__isset.value = false; + } + + // Returns true if field value is set (has been asigned a value) and false otherwise + public boolean isSetValue() { + return this.__isset.value; + } + + public void setValueIsSet(boolean value) { + this.__isset.value = value; + } + + public long getTimestamp() { + return this.timestamp; + } + + public void setTimestamp(long timestamp) { + this.timestamp = timestamp; + this.__isset.timestamp = true; + } + + public void unsetTimestamp() { + this.__isset.timestamp = false; + } + + // Returns true if field timestamp is set (has been asigned a value) and false otherwise + public boolean isSetTimestamp() { + return this.__isset.timestamp; + } + + public void setTimestampIsSet(boolean value) { + this.__isset.timestamp = value; + } + + public void setFieldValue(int fieldID, Object value) { + switch (fieldID) { + case COLUMNNAME: + setColumnName((String)value); + break; + + case VALUE: + setValue((String)value); + break; + + case TIMESTAMP: + setTimestamp((Long)value); + break; + + default: + throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); + } + } + + public Object getFieldValue(int fieldID) { + switch (fieldID) { + case COLUMNNAME: + return getColumnName(); + + case VALUE: + return getValue(); + + case TIMESTAMP: + return new Long(getTimestamp()); + + default: + throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); + } + } + + // Returns true if field corresponding to fieldID is set (has been asigned a value) and false otherwise + public boolean isSet(int fieldID) { + switch (fieldID) { + case COLUMNNAME: + return this.__isset.columnName; + case VALUE: + return this.__isset.value; + case TIMESTAMP: + return this.__isset.timestamp; + default: + throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); + } + } + + @Override public boolean equals(Object that) { if (that == null) return false; @@ -87,6 +247,7 @@ public class column_t implements TBase, java.io.Serializable { return true; } + @Override public int hashCode() { return 0; } @@ -102,7 +263,7 @@ public class column_t implements TBase, java.io.Serializable { } switch (field.id) { - case 1: + case COLUMNNAME: if (field.type == TType.STRING) { this.columnName = iprot.readString(); this.__isset.columnName = true; @@ -110,7 +271,7 @@ public class column_t implements TBase, java.io.Serializable { TProtocolUtil.skip(iprot, field.type); } break; - case 2: + case VALUE: if (field.type == TType.STRING) { this.value = iprot.readString(); this.__isset.value = true; @@ -118,7 +279,7 @@ public class column_t implements TBase, java.io.Serializable { TProtocolUtil.skip(iprot, field.type); } break; - case 3: + case TIMESTAMP: if (field.type == TType.I64) { this.timestamp = iprot.readI64(); this.__isset.timestamp = true; @@ -133,49 +294,58 @@ public class column_t implements TBase, java.io.Serializable { iprot.readFieldEnd(); } iprot.readStructEnd(); + + + // check for required fields of primitive type, which can't be checked in the validate method + validate(); } public void write(TProtocol oprot) throws TException { - TStruct struct = new TStruct("column_t"); - oprot.writeStructBegin(struct); - TField field = new TField(); + validate(); + + oprot.writeStructBegin(STRUCT_DESC); if (this.columnName != null) { - field.name = "columnName"; - field.type = TType.STRING; - field.id = 1; - oprot.writeFieldBegin(field); + oprot.writeFieldBegin(COLUMN_NAME_FIELD_DESC); oprot.writeString(this.columnName); oprot.writeFieldEnd(); } if (this.value != null) { - field.name = "value"; - field.type = TType.STRING; - field.id = 2; - oprot.writeFieldBegin(field); + oprot.writeFieldBegin(VALUE_FIELD_DESC); oprot.writeString(this.value); oprot.writeFieldEnd(); } - field.name = "timestamp"; - field.type = TType.I64; - field.id = 3; - oprot.writeFieldBegin(field); + oprot.writeFieldBegin(TIMESTAMP_FIELD_DESC); oprot.writeI64(this.timestamp); oprot.writeFieldEnd(); oprot.writeFieldStop(); oprot.writeStructEnd(); } + @Override public String toString() { StringBuilder sb = new StringBuilder("column_t("); + boolean first = true; + + if (!first) sb.append(", "); sb.append("columnName:"); sb.append(this.columnName); - sb.append(",value:"); + first = false; + if (!first) sb.append(", "); + sb.append("value:"); sb.append(this.value); - sb.append(",timestamp:"); + first = false; + if (!first) sb.append(", "); + sb.append("timestamp:"); sb.append(this.timestamp); + first = false; sb.append(")"); return sb.toString(); } + public void validate() throws TException { + // check for required fields + // check that fields of type enum have valid values + } + } diff --git a/src/org/apache/cassandra/service/superColumn_t.java b/src/org/apache/cassandra/service/superColumn_t.java index 188dab0e32..d5f4e91b52 100644 --- a/src/org/apache/cassandra/service/superColumn_t.java +++ b/src/org/apache/cassandra/service/superColumn_t.java @@ -11,21 +11,41 @@ import java.util.Map; import java.util.HashMap; import java.util.Set; import java.util.HashSet; -import com.facebook.thrift.*; +import java.util.Collections; +import org.apache.thrift.*; +import org.apache.thrift.meta_data.*; -import com.facebook.thrift.protocol.*; -import com.facebook.thrift.transport.*; +import org.apache.thrift.protocol.*; +import org.apache.thrift.transport.*; + +public class superColumn_t implements TBase, java.io.Serializable, Cloneable { + private static final TStruct STRUCT_DESC = new TStruct("superColumn_t"); + private static final TField NAME_FIELD_DESC = new TField("name", TType.STRING, (short)1); + private static final TField COLUMNS_FIELD_DESC = new TField("columns", TType.LIST, (short)2); -public class superColumn_t implements TBase, java.io.Serializable { public String name; + public static final int NAME = 1; public List columns; + public static final int COLUMNS = 2; - public final Isset __isset = new Isset(); - public static final class Isset implements java.io.Serializable { + private final Isset __isset = new Isset(); + private static final class Isset implements java.io.Serializable { public boolean name = false; public boolean columns = false; } + public static final Map metaDataMap = Collections.unmodifiableMap(new HashMap() {{ + put(NAME, new FieldMetaData("name", TFieldRequirementType.DEFAULT, + new FieldValueMetaData(TType.STRING))); + put(COLUMNS, new FieldMetaData("columns", TFieldRequirementType.DEFAULT, + new ListMetaData(TType.LIST, + new StructMetaData(TType.STRUCT, column_t.class)))); + }}); + + static { + FieldMetaData.addStructMetaDataMap(superColumn_t.class, metaDataMap); + } + public superColumn_t() { } @@ -35,11 +55,136 @@ public class superColumn_t implements TBase, java.io.Serializable { { this(); this.name = name; - this.__isset.name = true; + this.__isset.name = (name != null); this.columns = columns; + this.__isset.columns = (columns != null); + } + + /** + * Performs a deep copy on other. + */ + public superColumn_t(superColumn_t other) { + __isset.name = other.__isset.name; + if (other.name != null) { + this.name = other.name; + } + __isset.columns = other.__isset.columns; + if (other.columns != null) { + List __this__columns = new ArrayList(); + for (column_t other_element : other.columns) { + __this__columns.add(new column_t(other_element)); + } + this.columns = __this__columns; + } + } + + @Override + public superColumn_t clone() { + return new superColumn_t(this); + } + + public String getName() { + return this.name; + } + + public void setName(String name) { + this.name = name; + this.__isset.name = (name != null); + } + + public void unsetName() { + this.__isset.name = false; + } + + // Returns true if field name is set (has been asigned a value) and false otherwise + public boolean isSetName() { + return this.__isset.name; + } + + public void setNameIsSet(boolean value) { + this.__isset.name = value; + } + + public int getColumnsSize() { + return (this.columns == null) ? 0 : this.columns.size(); + } + + public java.util.Iterator getColumnsIterator() { + return (this.columns == null) ? null : this.columns.iterator(); + } + + public void addToColumns(column_t elem) { + if (this.columns == null) { + this.columns = new ArrayList(); + } + this.columns.add(elem); this.__isset.columns = true; } + public List getColumns() { + return this.columns; + } + + public void setColumns(List columns) { + this.columns = columns; + this.__isset.columns = (columns != null); + } + + public void unsetColumns() { + this.columns = null; + this.__isset.columns = false; + } + + // Returns true if field columns is set (has been asigned a value) and false otherwise + public boolean isSetColumns() { + return this.__isset.columns; + } + + public void setColumnsIsSet(boolean value) { + this.__isset.columns = value; + } + + public void setFieldValue(int fieldID, Object value) { + switch (fieldID) { + case NAME: + setName((String)value); + break; + + case COLUMNS: + setColumns((List)value); + break; + + default: + throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); + } + } + + public Object getFieldValue(int fieldID) { + switch (fieldID) { + case NAME: + return getName(); + + case COLUMNS: + return getColumns(); + + default: + throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); + } + } + + // Returns true if field corresponding to fieldID is set (has been asigned a value) and false otherwise + public boolean isSet(int fieldID) { + switch (fieldID) { + case NAME: + return this.__isset.name; + case COLUMNS: + return this.__isset.columns; + default: + throw new IllegalArgumentException("Field " + fieldID + " doesn't exist!"); + } + } + + @Override public boolean equals(Object that) { if (that == null) return false; @@ -73,6 +218,7 @@ public class superColumn_t implements TBase, java.io.Serializable { return true; } + @Override public int hashCode() { return 0; } @@ -88,7 +234,7 @@ public class superColumn_t implements TBase, java.io.Serializable { } switch (field.id) { - case 1: + case NAME: if (field.type == TType.STRING) { this.name = iprot.readString(); this.__isset.name = true; @@ -96,14 +242,14 @@ public class superColumn_t implements TBase, java.io.Serializable { TProtocolUtil.skip(iprot, field.type); } break; - case 2: + case COLUMNS: if (field.type == TType.LIST) { { TList _list18 = iprot.readListBegin(); this.columns = new ArrayList(_list18.size); for (int _i19 = 0; _i19 < _list18.size; ++_i19) { - column_t _elem20 = new column_t(); + column_t _elem20; _elem20 = new column_t(); _elem20.read(iprot); this.columns.add(_elem20); @@ -122,25 +268,23 @@ public class superColumn_t implements TBase, java.io.Serializable { iprot.readFieldEnd(); } iprot.readStructEnd(); + + + // check for required fields of primitive type, which can't be checked in the validate method + validate(); } public void write(TProtocol oprot) throws TException { - TStruct struct = new TStruct("superColumn_t"); - oprot.writeStructBegin(struct); - TField field = new TField(); + validate(); + + oprot.writeStructBegin(STRUCT_DESC); if (this.name != null) { - field.name = "name"; - field.type = TType.STRING; - field.id = 1; - oprot.writeFieldBegin(field); + oprot.writeFieldBegin(NAME_FIELD_DESC); oprot.writeString(this.name); oprot.writeFieldEnd(); } if (this.columns != null) { - field.name = "columns"; - field.type = TType.LIST; - field.id = 2; - oprot.writeFieldBegin(field); + oprot.writeFieldBegin(COLUMNS_FIELD_DESC); { oprot.writeListBegin(new TList(TType.STRUCT, this.columns.size())); for (column_t _iter21 : this.columns) { @@ -154,15 +298,27 @@ public class superColumn_t implements TBase, java.io.Serializable { oprot.writeStructEnd(); } + @Override public String toString() { StringBuilder sb = new StringBuilder("superColumn_t("); + boolean first = true; + + if (!first) sb.append(", "); sb.append("name:"); sb.append(this.name); - sb.append(",columns:"); + first = false; + if (!first) sb.append(", "); + sb.append("columns:"); sb.append(this.columns); + first = false; sb.append(")"); return sb.toString(); } + public void validate() throws TException { + // check for required fields + // check that fields of type enum have valid values + } + } diff --git a/src/org/apache/cassandra/test/DataImporter.java b/src/org/apache/cassandra/test/DataImporter.java index 4e9803425f..bb079bdf64 100644 --- a/src/org/apache/cassandra/test/DataImporter.java +++ b/src/org/apache/cassandra/test/DataImporter.java @@ -18,9 +18,9 @@ package org.apache.cassandra.test; -import com.facebook.thrift.transport.TTransport; -import com.facebook.thrift.transport.TSocket; -import com.facebook.thrift.protocol.TBinaryProtocol; +import org.apache.thrift.transport.TTransport; +import org.apache.thrift.transport.TSocket; +import org.apache.thrift.protocol.TBinaryProtocol; import java.io.BufferedReader; import java.io.File; diff --git a/src/org/apache/cassandra/test/StressTest.java b/src/org/apache/cassandra/test/StressTest.java index e30534ed9b..c22fa166e7 100644 --- a/src/org/apache/cassandra/test/StressTest.java +++ b/src/org/apache/cassandra/test/StressTest.java @@ -55,9 +55,9 @@ import org.apache.cassandra.service.superColumn_t; import org.apache.cassandra.utils.FBUtilities; import org.apache.cassandra.utils.LogUtil; import org.apache.log4j.Logger; -import com.facebook.thrift.protocol.TBinaryProtocol; -import com.facebook.thrift.transport.TSocket; -import com.facebook.thrift.transport.TTransport; +import org.apache.thrift.protocol.TBinaryProtocol; +import org.apache.thrift.transport.TSocket; +import org.apache.thrift.transport.TTransport; import com.martiansoftware.jsap.*; /**