@@ -77,6 +77,7 @@ def __init__(self):
7777 self .name = None
7878 self .serialVersionUID = None
7979 self .flags = None
80+ self .handle = None
8081 self .fields_names = []
8182 self .fields_types = []
8283 self .superclass = None
@@ -87,6 +88,16 @@ def __str__(self):
8788 def __repr__ (self ):
8889 return "[%s:0x%X]" % (self .name , self .serialVersionUID )
8990
91+ def __eq__ (self , other ):
92+ if not isinstance (other , type (self )):
93+ return False
94+ return (self .name == other .name and
95+ self .serialVersionUID == other .serialVersionUID and
96+ self .flags == other .flags and
97+ self .fields_names == other .fields_names and
98+ self .fields_types == other .fields_types and
99+ self .superclass == other .superclass )
100+
90101
91102class JavaObject (object ):
92103
@@ -106,12 +117,43 @@ def __repr__(self):
106117 name = self .classdesc .name
107118 return "<javaobj:%s>" % name
108119
120+ def __eq__ (self , other ):
121+ if not isinstance (other , type (self )):
122+ return False
123+ res = (self .classdesc == other .classdesc and
124+ self .annotations == other .annotations )
125+ for name in self .classdesc .fields_names :
126+ res = (res and
127+ getattr (self , name ) == getattr (other , name ))
128+ return res
129+
109130 def copy (self , new_object ):
110131 new_object .classdesc = self .classdesc
132+ new_object .annotations = self .annotations
111133
112134 for name in self .classdesc .fields_names :
113135 new_object .__setattr__ (name , getattr (self , name ))
114136
137+ class JavaString (str ):
138+ def __init__ (self , * args , ** kwargs ):
139+ str .__init__ (self , * args , ** kwargs )
140+
141+ def __eq__ (self , other ):
142+ if not isinstance (other , str ):
143+ return False
144+ return str .__eq__ (self , other )
145+
146+ class JavaEnum (JavaObject ):
147+ def __init__ (self , constant = None ):
148+ super (JavaEnum , self ).__init__ ()
149+ self .constant = constant
150+
151+ class JavaArray (list , JavaObject ):
152+ def __init__ (self , classdesc = None ):
153+ list .__init__ (self )
154+ JavaObject .__init__ (self )
155+ self .classdesc = classdesc
156+
115157class JavaObjectConstants :
116158
117159 STREAM_MAGIC = 0xaced
0 commit comments