Author: bryanduxbury
Date: Thu Apr 22 00:22:34 2010
New Revision: 936581
URL: http://svn.apache.org/viewvc?rev=936581&view=rev
Log:
THRIFT-759. java: Make TBase implement Comparable
Modified:
incubator/thrift/trunk/compiler/cpp/src/generate/t_java_generator.cc
incubator/thrift/trunk/lib/java/src/org/apache/thrift/TBase.java
incubator/thrift/trunk/lib/java/src/org/apache/thrift/TUnion.java
Modified: incubator/thrift/trunk/compiler/cpp/src/generate/t_java_generator.cc
URL:
http://svn.apache.org/viewvc/incubator/thrift/trunk/compiler/cpp/src/generate/t_java_generator.cc?rev=936581&r1=936580&r2=936581&view=diff
==============================================================================
--- incubator/thrift/trunk/compiler/cpp/src/generate/t_java_generator.cc
(original)
+++ incubator/thrift/trunk/compiler/cpp/src/generate/t_java_generator.cc Thu
Apr 22 00:22:34 2010
@@ -701,10 +701,8 @@ void t_java_generator::generate_java_uni
bool is_final = (tstruct->annotations_.find("final") !=
tstruct->annotations_.end());
indent(f_struct) <<
- "public " << (is_final ? "final " : "") << "class " << tstruct->get_name()
- << " extends TUnion<" << tstruct->get_name() << "._Fields> ";
-
- f_struct << "implements Comparable<" << type_name(tstruct) << "> ";
+ "public " << (is_final ? "final " : "") << "class " << tstruct->get_name()
+ << " extends TUnion<" << tstruct->get_name() << ", " <<
tstruct->get_name() << "._Fields> ";
scope_up(f_struct);
@@ -1072,9 +1070,7 @@ void t_java_generator::generate_java_str
if (is_exception) {
out << "extends Exception ";
}
- out << "implements TBase<" << tstruct->get_name() << "._Fields>,
java.io.Serializable, Cloneable";
-
- out << ", Comparable<" << type_name(tstruct) << ">";
+ out << "implements TBase<" << tstruct->get_name() << ", " <<
tstruct->get_name() << "._Fields>, java.io.Serializable, Cloneable";
out << " ";
Modified: incubator/thrift/trunk/lib/java/src/org/apache/thrift/TBase.java
URL:
http://svn.apache.org/viewvc/incubator/thrift/trunk/lib/java/src/org/apache/thrift/TBase.java?rev=936581&r1=936580&r2=936581&view=diff
==============================================================================
--- incubator/thrift/trunk/lib/java/src/org/apache/thrift/TBase.java (original)
+++ incubator/thrift/trunk/lib/java/src/org/apache/thrift/TBase.java Thu Apr 22
00:22:34 2010
@@ -27,7 +27,7 @@ import org.apache.thrift.protocol.TProto
* Generic base interface for generated Thrift objects.
*
*/
-public interface TBase<F extends TFieldIdEnum> extends Serializable {
+public interface TBase<T extends TBase, F extends TFieldIdEnum> extends
Comparable<T>, Serializable {
/**
* Reads the TObject from the given input protocol.
@@ -92,5 +92,5 @@ public interface TBase<F extends TFieldI
*/
public void setFieldValue(F field, Object value);
- public TBase<F> deepCopy();
+ public TBase<T, F> deepCopy();
}
Modified: incubator/thrift/trunk/lib/java/src/org/apache/thrift/TUnion.java
URL:
http://svn.apache.org/viewvc/incubator/thrift/trunk/lib/java/src/org/apache/thrift/TUnion.java?rev=936581&r1=936580&r2=936581&view=diff
==============================================================================
--- incubator/thrift/trunk/lib/java/src/org/apache/thrift/TUnion.java (original)
+++ incubator/thrift/trunk/lib/java/src/org/apache/thrift/TUnion.java Thu Apr
22 00:22:34 2010
@@ -29,7 +29,7 @@ import org.apache.thrift.protocol.TProto
import org.apache.thrift.protocol.TProtocolException;
import org.apache.thrift.protocol.TStruct;
-public abstract class TUnion<F extends TFieldIdEnum> implements TBase<F> {
+public abstract class TUnion<T extends TUnion, F extends TFieldIdEnum>
implements TBase<T, F> {
protected Object value_;
protected F setField_;
@@ -43,7 +43,7 @@ public abstract class TUnion<F extends T
setFieldValue(setField, value);
}
- protected TUnion(TUnion<F> other) {
+ protected TUnion(TUnion<T, F> other) {
if (!other.getClass().equals(this.getClass())) {
throw new ClassCastException();
}