[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[certi-cvs] certi/scripts GenMsgJava.py
From: |
certi-cvs |
Subject: |
[certi-cvs] certi/scripts GenMsgJava.py |
Date: |
Thu, 11 Mar 2010 12:13:28 +0000 |
CVSROOT: /sources/certi
Module name: certi
Changes by: Eric NOULARD <erk> 10/03/11 12:13:28
Modified files:
scripts : GenMsgJava.py
Log message:
Small update of Java generator for showing how to detect "combined"
field
The current generator is not working yet...
There is some missing representation and/or combine for some types in
Java
CVSWeb URLs:
http://cvs.savannah.gnu.org/viewcvs/certi/scripts/GenMsgJava.py?cvsroot=certi&r1=1.2&r2=1.3
Patches:
Index: GenMsgJava.py
===================================================================
RCS file: /sources/certi/certi/scripts/GenMsgJava.py,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -b -r1.2 -r1.3
--- GenMsgJava.py 6 Mar 2010 12:55:10 -0000 1.2
+++ GenMsgJava.py 11 Mar 2010 12:13:27 -0000 1.3
@@ -17,7 +17,7 @@
## Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
## USA
##
-## $Id: GenMsgJava.py,v 1.2 2010/03/06 12:55:10 erk Exp $
+## $Id: GenMsgJava.py,v 1.3 2010/03/11 12:13:27 erk Exp $
## ----------------------------------------------------------------------------
"""
@@ -26,6 +26,7 @@
"""
import logging
import GenMsgBase
+import GenMsgAST
import sys
class JavaGenerator(GenMsgBase.CodeGenerator):
@@ -133,9 +134,11 @@
def generateHeader(self, stream, factoryOnly=False):
for native in self.AST.natives:
- line = native.getLanguage("Java").statement
- # we are only interested in native "include" statement
- stream.write("Hohohoo maaary christmass" + line + "\n")
+ if native.hasLanguage("Java"):
+ # This an example may be it would be worth to check whether if
the
+ # refered native types are valids?
+ for line in native.getLanguageLines("Java"):
+ stream.write("Found native **" + line.statement + "**\n")
def prepareName(self, name):
upperAfterScore = lambda x:__import__('re').sub(r'_(.)', lambda
y:y.group(0).upper(), x)
@@ -148,6 +151,7 @@
representation = self.getRepresentationFor(name)
if representation:
return self.getSerializeMethodName(representation)
+ print "No serialize method name for <%s> " % name
return None
def getDeSerializeMethodName(self, name):
@@ -205,7 +209,16 @@
if len(msg.fields) > 0:
for field in msg.fields:
file.write(self.getIndent() + "private ");
+ # Combined field and "plain" field must not be treated the
same way
+ if not
isinstance(field,GenMsgAST.MessageType.CombinedField):
self.writeFieldStatement(file, field)
+ else:
+ # combined field may be written in a specific way
+ # or the field contained in the combined field may
+ # be written as usual and Getter/Setter for the
combined may be
+ # generated
+ for cfield in field.fields:
+ self.writeFieldStatement(file, cfield)
file.write("\n")
#constructor
@@ -238,7 +251,13 @@
file.write(self.getIndent() +
"super.writeMessage(messageBuffer); //Header\n\n");
for field in msg.fields:
+ # Combined field and "plain" field must not be treated the
same way
+ if not
isinstance(field,GenMsgAST.MessageType.CombinedField):
file.write(self.getIndent() +
self.getSerializeMethodName(field.typeid.name) % field.name + "\n")
+ else:
+ # FIXME TODO
+ for cfield in field.fields:
+ pass
self.unIndent()
file.write(self.getIndent() + "}\n\n");
@@ -249,7 +268,13 @@
file.write(self.getIndent() +
"super.readMessage(messageBuffer); //Header \n\n");
for field in msg.fields:
+ # Combined field and "plain" field must not be treated the
same way
+ if not
isinstance(field,GenMsgAST.MessageType.CombinedField):
file.write(self.getIndent() +
self.getDeSerializeMethodName(field.typeid.name) % field.name + "\n")
+ else:
+ # FIXME TODO
+ for cfield in field.fields:
+ pass
self.unIndent()
file.write(self.getIndent() + "}\n\n");
@@ -266,6 +291,8 @@
#GETTERS
for field in msg.fields:
+ # Combined field and "plain" field must not be treated the
same way
+ if not
isinstance(field,GenMsgAST.MessageType.CombinedField):
file.write(self.getIndent() + "public " +
self.getTargetTypeName(field.typeid.name) + " get" + field.name[0].capitalize()
+ field.name[1:] + "() {\n");
self.indent()
file.write(self.getIndent() + "return " + field.name +
";\n")
@@ -274,6 +301,8 @@
#SETTERS
for field in msg.fields:
+ # Combined field and "plain" field must not be treated the
same way
+ if not
isinstance(field,GenMsgAST.MessageType.CombinedField):
file.write(self.getIndent() + "public void set" +
field.name[0].capitalize() + field.name[1:] + "(" +
self.getTargetTypeName(field.typeid.name) + " new" + field.name[0].capitalize()
+ field.name[1:] + ") {\n");
self.indent()
file.write(self.getIndent() + "this." + field.name + " =
new" + field.name[0].capitalize() + field.name[1:] + ";\n")
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [certi-cvs] certi/scripts GenMsgJava.py,
certi-cvs <=