public void emit(RamlParameter parameter) throws IOException {
writer.appendLine(String.format("%s:", parameter.getName()));
writer.indent();
RamlType ramlType = RamlTypes.fromType(parameter.getType());
writer.appendLine("type", ramlType.getRamlSyntax());
if (parameter.getDefaultValue().isPresent()) {
writer.appendEscapedLine("default", parameter.getDefaultValue().get());
writer.appendLine("required", "false");
} else if (parameter.getAnnotation(NotNull.class).isPresent()) {
writer.appendLine("required", "true");
}
if (ramlType == ScalarType.INTEGER || ramlType == ScalarType.NUMBER) {
if (parameter.getAnnotation(Min.class).isPresent()) {
writer.appendLine("minimum", String.valueOf(parameter.getAnnotation(Min.class).get().value()));
}
if (parameter.getAnnotation(Max.class).isPresent()) {
writer.appendLine("maximum", String.valueOf(parameter.getAnnotation(Max.class).get().value()));
}
}
if (parameter.getAnnotation(Size.class).isPresent()) {
if (ramlType == ScalarType.STRING) {
writer.appendLine("minLength", String.valueOf(parameter.getAnnotation(Size.class).get().min()));
writer.appendLine("maxLength", String.valueOf(parameter.getAnnotation(Size.class).get().max()));
}
}
writer.outdent();
}