in tools/code-generation/generator/src/main/java/com/amazonaws/util/awsclientgenerator/generators/cpp/RestXmlCppClientGenerator.java [144:187]
protected SdkFileEntry generateModelSourceFile(ServiceModel serviceModel, Map.Entry<String, Shape> shapeEntry) {
Shape shape = shapeEntry.getValue();
if (shape.isException() && !shape.isXmlModeledException())
return null;
if (shape.isEnum()) {
return super.generateModelSourceFile(serviceModel, shapeEntry);
}
if (shape.isStructure() && shape.isReferenced() &&
!(shape.isEventStream() ||
(shape.hasBlobMembers() && shape.hasEventPayloadMembers()) ||
(shape.isEvent() && shape.getMembers().isEmpty() && !shape.getName().endsWith("InitialResponse")) ||
(shape.isResult() && shape.hasEventStreamMembers()))) {
Template template = null;
VelocityContext context = createContext(serviceModel);
context.put("operation", serviceModel.getOperationForRequestShapeName(shape.getName()));
if (shape.isRequest() && shape.hasStreamMembers()) {
template = velocityEngine.getTemplate("/com/amazonaws/util/awsclientgenerator/velocity/cpp/StreamRequestSource.vm", StandardCharsets.UTF_8.name());
}
else if (shape.isRequest()) {
template = velocityEngine.getTemplate("/com/amazonaws/util/awsclientgenerator/velocity/cpp/xml/XmlRequestSource.vm", StandardCharsets.UTF_8.name());
}
else if (shape.isResult() && shape.hasStreamMembers()) {
template = velocityEngine.getTemplate("/com/amazonaws/util/awsclientgenerator/velocity/cpp/StreamResultSource.vm", StandardCharsets.UTF_8.name());
}
else if (shape.isResult()) {
template = velocityEngine.getTemplate("/com/amazonaws/util/awsclientgenerator/velocity/cpp/xml/rest/RestXmlResultSource.vm", StandardCharsets.UTF_8.name());
} else {
template = velocityEngine.getTemplate("/com/amazonaws/util/awsclientgenerator/velocity/cpp/xml/rest/RestXmlSubObjectSource.vm", StandardCharsets.UTF_8.name());
}
if(template == null) return null; //temporary;
context.put("shape", shape);
context.put("typeInfo", new CppShapeInformation(shape, serviceModel));
context.put("CppViewHelper", CppViewHelper.class);
String fileName = String.format("source/model/%s.cpp", shapeEntry.getKey());
return makeFile(template, context, fileName, true);
}
return null;
}