def _java_constructor(self): name = self.java_name() name_lower_camelized = lower_camelize(name) return """\ @com.google.inject.Inject public %(name)s(@com.google.inject.name.Named("%(name_lower_camelized)sUrl") final java.net.URL jsonRpcUrl) { this.jsonRpcUrl = com.google.common.base.Preconditions.checkNotNull(jsonRpcUrl); } """ % locals()
def java_name(self): return lower_camelize(self.name)
def ts_name(self): return lower_camelize(self.name)
def __visit_compound_type_node(self, construct_class_name, compound_type_node): compound_type = \ self.__construct( construct_class_name, annotations=compound_type_node.annotations, doc=self.__visit_doc_node(compound_type_node.doc), name=compound_type_node.name ) self.__scope_stack.append(compound_type) # Insert the compound type into the type_map here to allow recursive # definitions self.__put_type(compound_type.thrift_qname(), compound_type) if construct_class_name == 'EnumType': enum_type_node = compound_type_node have_enumerator_with_value = False enumerator_node_names = [] for enumerator_i, enumerator_node in enumerate(enum_type_node.enumerators): if enumerator_node.name in enumerator_node_names: raise CompileException("%s has a duplicate enumerator name, %s" % (enum_type_node.name, enumerator_node.name), ast_node=enumerator_node) enumerator_node_names.append(enumerator_node.name) if enumerator_node.value is not None: have_enumerator_with_value = True assert isinstance(enumerator_node.value, Ast.IntLiteralNode), type(enumerator_node.value) value = enumerator_node.value.value else: if have_enumerator_with_value: raise CompileException("%s has mix of enumerators with and without values, must be one or the other" % enum_type_node.name, ast_node=enum_type_node) value = enumerator_i compound_type.enumerators.append( self.__construct( 'Field', annotation_nodes=enumerator_node.annotations, doc=self.__visit_doc_node(enumerator_node.doc), id=enumerator_i, name=enumerator_node.name, type=Ast.BaseTypeNode('i32').accept(self), value=value ) ) else: field_name_variations = [] id_count = 0 for field_node in compound_type_node.fields: field_name = field_node.name if field_name in field_name_variations: raise CompileException("compound type %s has a duplicate field %s" % (compound_type_node.name, field_name), ast_node=field_node) field_name_lower = field_name.lower() if field_name_lower in field_name_variations: raise CompileException("compound type %s has a duplicate field %s" % (compound_type_node.name, field_name), ast_node=field_node) field_name_lower_camelized = lower_camelize(field_name) if field_name_lower_camelized in field_name_variations: raise CompileException("compound type %s has a duplicate field %s" % (compound_type_node.name, field_name), ast_node=field_node) field_name_variations.append(field_name) field_name_variations.append(field_name_lower) field_name_variations.append(field_name_lower_camelized) field = field_node.accept(self) if field.required: if len(compound_type.fields) > 0: if not compound_type.fields[-1].required: raise CompileException("compound type %s has a required field %s after an optional field %s" % (compound_type_node.name, field.name, compound_type.fields[-1].name), ast_node=compound_type_node) if field.id is not None: id_count += 1 for existing_field in compound_type.fields: if existing_field.id == field.id: raise CompileException("compound type %s has duplicate field id %d (%s and %s fields)" % (compound_type_node.name, field.id, field.name, existing_field.name), ast_node=compound_type_node) compound_type.fields.append(field) if len(compound_type.fields) > 0: if id_count != 0 and id_count != len(compound_type_node.fields): raise CompileException("compound type %s has some fields with ids and some fields without" % compound_type_node.name, ast_node=compound_type_node) self.__scope_stack.pop(-1) return compound_type
def java_name(self, boxed=False): return lower_camelize(self.name)
def dart_name(self): return lower_camelize(self.name)