def _generate_init_method_for_required_members(self, domain, declaration, required_members):
        pairs = []
        for member in required_members:
            objc_type = ObjCGenerator.objc_type_for_member(declaration, member)
            var_name = ObjCGenerator.identifier_to_objc_identifier(member.member_name)
            pairs.append('%s:(%s)%s' % (var_name, objc_type, var_name))
        pairs[0] = ucfirst(pairs[0])
        lines = []
        lines.append('- (instancetype)initWith%s;' % ' '.join(pairs))
        lines.append('{')
        lines.append('    self = [super init];')
        lines.append('    if (!self)')
        lines.append('        return nil;')
        lines.append('')

        required_pointer_members = filter(lambda member: ObjCGenerator.is_type_objc_pointer_type(member.type), required_members)
        if required_pointer_members:
            for member in required_pointer_members:
                var_name = ObjCGenerator.identifier_to_objc_identifier(member.member_name)
                lines.append('    THROW_EXCEPTION_FOR_REQUIRED_PROPERTY(%s, @"%s");' % (var_name, var_name))
                objc_array_class = ObjCGenerator.objc_class_for_array_type(member.type)
                if objc_array_class and objc_array_class.startswith(ObjCGenerator.OBJC_PREFIX):
                    lines.append('    THROW_EXCEPTION_FOR_BAD_TYPE_IN_ARRAY(%s, [%s class]);' % (var_name, objc_array_class))
            lines.append('')

        for member in required_members:
            var_name = ObjCGenerator.identifier_to_objc_identifier(member.member_name)
            lines.append('    self.%s = %s;' % (var_name, var_name))

        lines.append('')
        lines.append('    return self;')
        lines.append('}')
        return '\n'.join(lines)
Example #2
0
 def _generate_init_method_for_required_members(self, domain, declaration, required_members):
     pairs = []
     for member in required_members:
         objc_type = ObjCGenerator.objc_type_for_member(declaration, member)
         var_name = ObjCGenerator.identifier_to_objc_identifier(member.member_name)
         pairs.append('%s:(%s)%s' % (var_name, objc_type, var_name))
     pairs[0] = ucfirst(pairs[0])
     return '- (instancetype)initWith%s;' % ' '.join(pairs)
Example #3
0
 def _generate_init_method_for_required_members(self, domain, declaration, required_members):
     pairs = []
     for member in required_members:
         objc_type = ObjCGenerator.objc_type_for_member(declaration, member)
         var_name = ObjCGenerator.identifier_to_objc_identifier(member.member_name)
         pairs.append('%s:(%s)%s' % (var_name, objc_type, var_name))
     pairs[0] = ucfirst(pairs[0])
     return '- (instancetype)initWith%s;' % ' '.join(pairs)
Example #4
0
 def _generate_member_property(self, declaration, member):
     accessor_type = ObjCGenerator.objc_accessor_type_for_member(member)
     objc_type = ObjCGenerator.objc_type_for_member(declaration, member)
     return '@property (nonatomic, %s) %s;' % (
         accessor_type,
         join_type_and_name(
             objc_type,
             ObjCGenerator.identifier_to_objc_identifier(
                 member.member_name)))
 def _generate_setter_for_member(self, domain, declaration, member):
     objc_type = ObjCGenerator.objc_type_for_member(declaration, member)
     var_name = ObjCGenerator.identifier_to_objc_identifier(member.member_name)
     setter_method = ObjCGenerator.objc_setter_method_for_member(declaration, member)
     conversion_expression = ObjCGenerator.objc_to_protocol_expression_for_member(declaration, member, var_name)
     lines = []
     lines.append('- (void)set%s:(%s)%s' % (ucfirst(var_name), objc_type, var_name))
     lines.append('{')
     lines.append('    [super %s:%s forKey:@"%s"];' % (setter_method, conversion_expression, member.member_name))
     lines.append('}')
     return '\n'.join(lines)
 def _generate_getter_for_member(self, domain, declaration, member):
     objc_type = ObjCGenerator.objc_type_for_member(declaration, member)
     var_name = ObjCGenerator.identifier_to_objc_identifier(member.member_name)
     getter_method = ObjCGenerator.objc_getter_method_for_member(declaration, member)
     basic_expression = '[super %s:@"%s"]' % (getter_method, member.member_name)
     conversion_expression = ObjCGenerator.protocol_to_objc_expression_for_member(declaration, member, basic_expression)
     lines = []
     lines.append('- (%s)%s' % (objc_type, var_name))
     lines.append('{')
     lines.append('    return %s;' % conversion_expression)
     lines.append('}')
     return '\n'.join(lines)
 def _generate_setter_for_member(self, domain, declaration, member):
     objc_type = ObjCGenerator.objc_type_for_member(declaration, member)
     var_name = ObjCGenerator.identifier_to_objc_identifier(member.member_name)
     setter_method = ObjCGenerator.objc_setter_method_for_member(declaration, member)
     conversion_expression = ObjCGenerator.objc_to_protocol_expression_for_member(declaration, member, var_name)
     lines = []
     lines.append('- (void)set%s:(%s)%s' % (ucfirst(var_name), objc_type, var_name))
     lines.append('{')
     objc_array_class = ObjCGenerator.objc_class_for_array_type(member.type)
     if objc_array_class and objc_array_class.startswith(ObjCGenerator.OBJC_PREFIX):
         lines.append('    THROW_EXCEPTION_FOR_BAD_TYPE_IN_ARRAY(%s, [%s class]);' % (var_name, objc_array_class))
     lines.append('    [super %s:%s forKey:@"%s"];' % (setter_method, conversion_expression, member.member_name))
     lines.append('}')
     return '\n'.join(lines)
 def _generate_getter_for_member(self, domain, declaration, member):
     objc_type = ObjCGenerator.objc_type_for_member(declaration, member)
     var_name = ObjCGenerator.identifier_to_objc_identifier(
         member.member_name)
     getter_method = ObjCGenerator.objc_getter_method_for_member(
         declaration, member)
     basic_expression = '[super %s:@"%s"]' % (getter_method,
                                              member.member_name)
     conversion_expression = ObjCGenerator.protocol_to_objc_expression_for_member(
         declaration, member, basic_expression)
     lines = []
     lines.append('- (%s)%s' % (objc_type, var_name))
     lines.append('{')
     lines.append('    return %s;' % conversion_expression)
     lines.append('}')
     return '\n'.join(lines)
    def _generate_init_method_for_required_members(self, domain, declaration,
                                                   required_members):
        pairs = []
        for member in required_members:
            objc_type = ObjCGenerator.objc_type_for_member(declaration, member)
            var_name = ObjCGenerator.identifier_to_objc_identifier(
                member.member_name)
            pairs.append('%s:(%s)%s' % (var_name, objc_type, var_name))
        pairs[0] = ucfirst(pairs[0])
        lines = []
        lines.append('- (instancetype)initWith%s;' % ' '.join(pairs))
        lines.append('{')
        lines.append('    self = [super init];')
        lines.append('    if (!self)')
        lines.append('        return nil;')
        lines.append('')

        required_pointer_members = filter(
            lambda member: ObjCGenerator.is_type_objc_pointer_type(
                member.type), required_members)
        if required_pointer_members:
            for member in required_pointer_members:
                var_name = ObjCGenerator.identifier_to_objc_identifier(
                    member.member_name)
                lines.append(
                    '    THROW_EXCEPTION_FOR_REQUIRED_PROPERTY(%s, @"%s");' %
                    (var_name, var_name))
                objc_array_class = ObjCGenerator.objc_class_for_array_type(
                    member.type)
                if objc_array_class and objc_array_class.startswith(
                        ObjCGenerator.OBJC_PREFIX):
                    lines.append(
                        '    THROW_EXCEPTION_FOR_BAD_TYPE_IN_ARRAY(%s, [%s class]);'
                        % (var_name, objc_array_class))
            lines.append('')

        for member in required_members:
            var_name = ObjCGenerator.identifier_to_objc_identifier(
                member.member_name)
            lines.append('    self.%s = %s;' % (var_name, var_name))

        lines.append('')
        lines.append('    return self;')
        lines.append('}')
        return '\n'.join(lines)
 def _generate_setter_for_member(self, domain, declaration, member):
     objc_type = ObjCGenerator.objc_type_for_member(declaration, member)
     var_name = ObjCGenerator.identifier_to_objc_identifier(
         member.member_name)
     setter_method = ObjCGenerator.objc_setter_method_for_member(
         declaration, member)
     conversion_expression = ObjCGenerator.objc_to_protocol_expression_for_member(
         declaration, member, var_name)
     lines = []
     lines.append('- (void)set%s:(%s)%s' %
                  (ucfirst(var_name), objc_type, var_name))
     lines.append('{')
     objc_array_class = ObjCGenerator.objc_class_for_array_type(member.type)
     if objc_array_class and objc_array_class.startswith(
             ObjCGenerator.OBJC_PREFIX):
         lines.append(
             '    THROW_EXCEPTION_FOR_BAD_TYPE_IN_ARRAY(%s, [%s class]);' %
             (var_name, objc_array_class))
     lines.append(
         '    [super %s:%s forKey:@"%s"];' %
         (setter_method, conversion_expression, member.member_name))
     lines.append('}')
     return '\n'.join(lines)
Example #11
0
 def _generate_member_property(self, declaration, member):
     accessor_type = ObjCGenerator.objc_accessor_type_for_member(member)
     objc_type = ObjCGenerator.objc_type_for_member(declaration, member)
     return '@property (nonatomic, %s) %s;' % (accessor_type, join_type_and_name(objc_type, ObjCGenerator.identifier_to_objc_identifier(member.member_name)))