Merge pull request #9 from ackintosh/fix-discriminator

Fix broken discriminator
This commit is contained in:
William Cheng 2018-04-01 19:09:54 +08:00 committed by GitHub
commit 2fb9ce43b5
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 8 additions and 4 deletions

View File

@ -335,6 +335,10 @@ public class CodegenModel {
return discriminator; return discriminator;
} }
public String getDiscriminatorName() {
return discriminator == null ? null : discriminator.getPropertyName();
}
public void setDiscriminator(Discriminator discriminator) { public void setDiscriminator(Discriminator discriminator) {
this.discriminator = discriminator; this.discriminator = discriminator;
} }

View File

@ -1,6 +1,6 @@
class {{classname}} {{#parentSchema}}extends {{{parent}}} {{/parentSchema}}{{^parentSchema}}implements ModelInterface, ArrayAccess{{/parentSchema}} class {{classname}} {{#parentSchema}}extends {{{parent}}} {{/parentSchema}}{{^parentSchema}}implements ModelInterface, ArrayAccess{{/parentSchema}}
{ {
const DISCRIMINATOR = {{#discriminator}}'{{discriminator}}'{{/discriminator}}{{^discriminator}}null{{/discriminator}}; const DISCRIMINATOR = {{#discriminator}}'{{discriminatorName}}'{{/discriminator}}{{^discriminator}}null{{/discriminator}};
/** /**
* The original name of the model. * The original name of the model.
@ -166,7 +166,7 @@ class {{classname}} {{#parentSchema}}extends {{{parent}}} {{/parentSchema}}{{^pa
{{#discriminator}} {{#discriminator}}
// Initialize discriminator property with the model name. // Initialize discriminator property with the model name.
$discriminator = array_search('{{discriminator}}', self::$attributeMap); $discriminator = array_search('{{discriminatorName}}', self::$attributeMap);
$this->container[$discriminator] = static::$swaggerModelName; $this->container[$discriminator] = static::$swaggerModelName;
{{/discriminator}} {{/discriminator}}
} }

View File

@ -42,7 +42,7 @@ use \Swagger\Client\ObjectSerializer;
*/ */
class Animal implements ModelInterface, ArrayAccess class Animal implements ModelInterface, ArrayAccess
{ {
const DISCRIMINATOR = 'Discriminator{propertyName='className', mapping=null}'; const DISCRIMINATOR = 'className';
/** /**
* The original name of the model. * The original name of the model.
@ -186,7 +186,7 @@ class Animal implements ModelInterface, ArrayAccess
$this->container['color'] = isset($data['color']) ? $data['color'] : 'red'; $this->container['color'] = isset($data['color']) ? $data['color'] : 'red';
// Initialize discriminator property with the model name. // Initialize discriminator property with the model name.
$discriminator = array_search('Discriminator{propertyName='className', mapping=null}', self::$attributeMap); $discriminator = array_search('className', self::$attributeMap);
$this->container[$discriminator] = static::$swaggerModelName; $this->container[$discriminator] = static::$swaggerModelName;
} }