Ejemplo n.º 1
0
 def gen_java_inner_class_assign(self, struct, prefix):
     content = ''
     inner_class_type = struct["options"][predef.PredefInnerTypeClass]
     inner_var_name = struct["options"][predef.PredefInnerTypeName]
     inner_fields = structutil.get_inner_class_struct_fields(struct)
     start, end, step = structutil.get_inner_class_range(struct)
     assert start > 0 and end > 0 and step > 1
     content += '        for (int i = %s; i < %s; i += %s) \n' % (start,
                                                                  end, step)
     content += '        {\n'
     content += '            %s item = new %s();\n' % (inner_class_type,
                                                       inner_class_type)
     for n in range(step):
         field = inner_fields[n]
         origin_type = field['original_type_name']
         typename = lang.map_java_type(origin_type)
         valuetext = 'record.get(i + %d)' % n
         content += '            if (!record.get(i + %d).isEmpty()) \n' % n
         content += '            {\n'
         content += self.gen_field_assign_stmt("item." + field['name'],
                                               typename, valuetext, 4)
         content += '            }\n'
     content += '            %s%s.add(item);\n' % (prefix, inner_var_name)
     content += '        }\n'
     return content
Ejemplo n.º 2
0
 def parse_row_inner_obj(self, struct, row, inner_struct_fields):
     inner_obj_list = []
     start, end, step = structutil.get_inner_class_range(struct)
     for n in range(start, end, step):
         inner_item = {}
         idx = n
         for field in inner_struct_fields:
             valuetext = row[idx]
             name = field['name']
             value = self.parse_value(field['original_type_name'], valuetext)
             if self.use_snake_case:
                 name = strutil.camel_to_snake(name)
             inner_item[name] = value
             idx += 1
         inner_obj_list.append(inner_item)
     return inner_obj_list
Ejemplo n.º 3
0
 def gen_inner_class_field_assgin_stmt(struct, prefix):
     content = ''
     inner_class_type = struct["options"][predef.PredefInnerTypeClass]
     inner_var_name = struct["options"][predef.PredefInnerTypeName]
     inner_fields = structutil.get_inner_class_struct_fields(struct)
     start, end, step = structutil.get_inner_class_range(struct)
     assert start > 0 and end > 0 and step > 1
     content += '    for (int i = %s; i < %s; i += %s) \n' % (start, end,
                                                              step)
     content += '    {\n'
     content += '        %s item;\n' % inner_class_type
     for n in range(step):
         field = inner_fields[n]
         origin_type = field['original_type_name']
         typename = lang.map_cpp_type(origin_type)
         content += '        item.%s = to<%s>(row[i + %d]);\n' % (
             field['name'], typename, n)
     content += '        %s%s.push_back(item);\n' % (prefix, inner_var_name)
     content += '    }\n'
     return content
Ejemplo n.º 4
0
 def gen_cs_inner_class_assign(self, struct, prefix):
     content = ''
     inner_class_type = struct["options"][predef.PredefInnerTypeClass]
     inner_var_name = struct["options"][predef.PredefInnerTypeName]
     inner_fields = structutil.get_inner_class_struct_fields(struct)
     start, end, step = structutil.get_inner_class_range(struct)
     assert start > 0 and end > 0 and step > 1
     content += '        %s%s = new %s[%d];\n' % (prefix, inner_var_name, inner_class_type, (end-start)/step)
     content += '        for (int i = %s, j = 0; i < %s; i += %s, j++) \n' % (start, end, step)
     content += '        {\n'
     content += '            %s item = new %s();\n' % (inner_class_type, inner_class_type)
     for n in range(step):
         field = inner_fields[n]
         origin_type = field['original_type_name']
         typename = lang.map_cs_type(origin_type)
         valuetext = 'row[i + %d]' % n
         content += '            if (row[i + %d].Length > 0) \n' % n
         content += '            {\n'
         content += self.gen_field_assign_stmt("item." + field['name'], typename, valuetext, 4)
         content += '            }\n'
     content += '            %s%s[j] = item;\n' % (prefix, inner_var_name)
     content += '        }\n'
     return content
Ejemplo n.º 5
0
 def gen_inner_class_parse(self, struct, prefix):
     content = ''
     inner_class_type = struct["options"][predef.PredefInnerTypeClass]
     inner_var_name = struct["options"][predef.PredefInnerTypeName]
     inner_fields = structutil.get_inner_class_struct_fields(struct)
     start, end, step = structutil.get_inner_class_range(struct)
     assert start > 0 and end > 0 and step > 1
     content += '    for i := %s; i < %s; i += %s {\n' % (start, end, step)
     content += '        var item %s;\n' % inner_class_type
     for n in range(step):
         field = inner_fields[n]
         origin_type = field['original_type_name']
         typename = lang.map_go_type(origin_type)
         field_name = field['camel_case_name']
         valuetext = 'row[i + %d]' % n
         content += '        if row[i + %d] != "" {\n' % n
         content += self.gen_field_assign_stmt('item.' + field_name,
                                               typename, valuetext, 2,
                                               'row')
         content += '        }\n'
     content += '        %s%s = append(%s%s, item);\n' % (
         prefix, inner_var_name, prefix, inner_var_name)
     content += '    }\n'
     return content