Skip to content

[BUG][OBJC] Missing discriminator mapping in generated OBJC Models #6587

@onlymate

Description

@onlymate
Description

The "discriminator mapping" in OpenApi (see my OpenApi declaration in the gist below) seems to be ignored in generated Objective-C Client.
Having a look at the generated source code of the model class "A":

/**
 * Maps "discriminator" value to the sub-class name, so that inheritance is supported.
 */
- (id)initWithDictionary:(NSDictionary *)dict error:(NSError *__autoreleasing *)err {
    NSString * discriminatedClassName = [dict valueForKey:@"aTypeString"];
    if(discriminatedClassName == nil ){
         return [super initWithDictionary:dict error:err];
    }
    Class class = NSClassFromString([@"OAI" stringByAppendingString:discriminatedClassName]);
    if(!class) {
        class = NSClassFromString([@"OAI" stringByAppendingString:[discriminatedClassName capitalizedString]]);
    }
    if([self class ] == class) {
        return [super initWithDictionary:dict error:err];
    }
    return [[class alloc] initWithDictionary:dict error: err];
}

Seems like the class name is just appended and no mapping value is considered.

openapi-generator version

4.3.1

OpenAPI declaration file content or url

https://gist.github.com/onlymate/fbdf06ba849ebdbf64361aaeb8072f22

Command line used for generation

openapi-generator generate -i spec.json -o . -g objc

Related issues/PRs

Is this similar too:
#417
?

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions