def _generate_forward_declarations(self, domain):
     lines = []
     for declaration in domain.type_declarations:
         if (isinstance(declaration.type, ObjectType)):
             objc_name = ObjCGenerator.objc_name_for_type(declaration.type)
             lines.append('@class %s;' % objc_name)
     return '\n'.join(lines)
Exemple #2
0
 def _generate_forward_declarations(self, domain):
     lines = []
     for declaration in domain.type_declarations:
         if (isinstance(declaration.type, ObjectType)):
             objc_name = ObjCGenerator.objc_name_for_type(declaration.type)
             lines.append('@class %s;' % objc_name)
     return '\n'.join(lines)
 def _generate_type_interface(self, domain, declaration):
     lines = []
     objc_name = ObjCGenerator.objc_name_for_type(declaration.type)
     lines.append('@interface %s : %s' % (objc_name, ObjCGenerator.OBJC_JSON_OBJECT_BASE))
     required_members = filter(lambda member: not member.is_optional, declaration.type_members)
     optional_members = filter(lambda member: member.is_optional, declaration.type_members)
     if required_members:
         lines.append(self._generate_init_method_for_required_members(domain, declaration, required_members))
     for member in required_members:
         lines.append('/* required */ ' + self._generate_member_property(declaration, member))
     for member in optional_members:
         lines.append('/* optional */ ' + self._generate_member_property(declaration, member))
     lines.append('@end')
     return '\n'.join(lines)
 def generate_type_implementation(self, domain, declaration):
     lines = []
     lines.append('@implementation %s' % ObjCGenerator.objc_name_for_type(declaration.type))
     required_members = filter(lambda member: not member.is_optional, declaration.type_members)
     if required_members:
         lines.append('')
         lines.append(self._generate_init_method_for_required_members(domain, declaration, required_members))
     for member in declaration.type_members:
         lines.append('')
         lines.append(self._generate_setter_for_member(domain, declaration, member))
         lines.append('')
         lines.append(self._generate_getter_for_member(domain, declaration, member))
     lines.append('')
     lines.append('@end')
     return '\n'.join(lines)
Exemple #5
0
 def _generate_type_interface(self, domain, declaration):
     lines = []
     objc_name = ObjCGenerator.objc_name_for_type(declaration.type)
     lines.append('__attribute__((visibility ("default")))')
     lines.append('@interface %s : %s' % (objc_name, ObjCGenerator.OBJC_JSON_OBJECT_BASE))
     required_members = [member for member in declaration.type_members if not member.is_optional]
     optional_members = [member for member in declaration.type_members if member.is_optional]
     if required_members:
         lines.append(self._generate_init_method_for_required_members(domain, declaration, required_members))
     for member in required_members:
         lines.append('/* required */ ' + self._generate_member_property(declaration, member))
     for member in optional_members:
         lines.append('/* optional */ ' + self._generate_member_property(declaration, member))
     lines.append('@end')
     return '\n'.join(lines)
 def generate_type_implementation(self, domain, declaration):
     lines = []
     lines.append('@implementation %s' %
                  ObjCGenerator.objc_name_for_type(declaration.type))
     required_members = filter(lambda member: not member.is_optional,
                               declaration.type_members)
     if required_members:
         lines.append('')
         lines.append(
             self._generate_init_method_for_required_members(
                 domain, declaration, required_members))
     for member in declaration.type_members:
         lines.append('')
         lines.append(
             self._generate_setter_for_member(domain, declaration, member))
         lines.append('')
         lines.append(
             self._generate_getter_for_member(domain, declaration, member))
     lines.append('')
     lines.append('@end')
     return '\n'.join(lines)