From bf32777b679266c6f9c8be8b904fc96dd4c8f5a5 Mon Sep 17 00:00:00 2001 From: xhh Date: Fri, 3 Jul 2015 18:07:34 +0800 Subject: [PATCH] Fix NullPointerException in tests, improve usage to addVars --- .../io/swagger/codegen/DefaultCodegen.java | 46 ++++++++++++++----- 1 file changed, 34 insertions(+), 12 deletions(-) diff --git a/modules/swagger-codegen/src/main/java/io/swagger/codegen/DefaultCodegen.java b/modules/swagger-codegen/src/main/java/io/swagger/codegen/DefaultCodegen.java index d94a87405627..ecb6bd5852f9 100644 --- a/modules/swagger-codegen/src/main/java/io/swagger/codegen/DefaultCodegen.java +++ b/modules/swagger-codegen/src/main/java/io/swagger/codegen/DefaultCodegen.java @@ -529,37 +529,59 @@ public class DefaultCodegen { // TODO } else if (model instanceof ComposedModel) { final ComposedModel composed = (ComposedModel) model; + Map properties = new HashMap(); + List required = new ArrayList(); // parent model final RefModel parent = (RefModel) composed.getParent(); if (parent != null) { final String parentRef = toModelName(parent.getSimpleRef()); m.parent = parentRef; addImport(m, parentRef); - final Model parentModel = allDefinitions.get(parentRef); - if (parentModel instanceof ModelImpl) { - final ModelImpl _parent = (ModelImpl) parentModel; - addVars(m, _parent.getProperties(), _parent.getRequired()); + if (allDefinitions != null) { + final Model parentModel = allDefinitions.get(parentRef); + if (parentModel instanceof ModelImpl) { + final ModelImpl _parent = (ModelImpl) parentModel; + if (_parent.getProperties() != null) { + properties.putAll(_parent.getProperties()); + } + if (_parent.getRequired() != null) { + required.addAll(_parent.getRequired()); + } + } } } // interfaces (intermediate models) - for (RefModel _interface : composed.getInterfaces()) { - final String interfaceRef = toModelName(_interface.getSimpleRef()); - final Model interfaceModel = allDefinitions.get(interfaceRef); - if (interfaceModel instanceof ModelImpl) { - final ModelImpl _interfaceModel = (ModelImpl) interfaceModel; - addVars(m, _interfaceModel.getProperties(), _interfaceModel.getRequired()); + if (allDefinitions != null) { + for (RefModel _interface : composed.getInterfaces()) { + final String interfaceRef = toModelName(_interface.getSimpleRef()); + final Model interfaceModel = allDefinitions.get(interfaceRef); + if (interfaceModel instanceof ModelImpl) { + final ModelImpl _interfaceModel = (ModelImpl) interfaceModel; + if (_interfaceModel.getProperties() != null) { + properties.putAll(_interfaceModel.getProperties()); + } + if (_interfaceModel.getRequired() != null) { + required.addAll(_interfaceModel.getRequired()); + } + } } } // child model (properties owned by the model itself) Model child = composed.getChild(); - if (child != null && child instanceof RefModel) { + if (child != null && child instanceof RefModel && allDefinitions != null) { final String childRef = ((RefModel) child).getSimpleRef(); child = allDefinitions.get(childRef); } if (child != null && child instanceof ModelImpl) { final ModelImpl _child = (ModelImpl) child; - addVars(m, _child.getProperties(), _child.getRequired()); + if (_child.getProperties() != null) { + properties.putAll(_child.getProperties()); + } + if (_child.getRequired() != null) { + required.addAll(_child.getRequired()); + } } + addVars(m, properties, required); } else { ModelImpl impl = (ModelImpl) model; if (impl.getAdditionalProperties() != null) {