/**
 * This file is generated by the SwaggerTSGenerator.
 * Do not edit.
*/
/* tslint:disable */

{{#subTypes}}
import { {{typeName}} } from '{{importFile}}';
{{/subTypes}}

export class SubTypeFactory {
    /**
     * create subType based on the value if the typeSelector property
     */
    static createSubTypeInstance(value: any): object {
        switch (value.{{subTypePropertyName}}) {
{{#subTypes}}
            case '{{fullTypeName}}':
                return new {{typeName}}(value);
{{/subTypes}}
            default:
                throw new Error(`${value.typeSelector} not supported here`);
        }
    }
}
