refactor extension helpers.

This commit is contained in:
Hugo Mercado
2017-12-05 12:51:46 -05:00
parent d815550e26
commit 076cd467d1
8 changed files with 100 additions and 51 deletions

View File

@@ -1,7 +1,7 @@
package io.swagger.codegen;
import static io.swagger.codegen.VendorExtendable.PREFFIX_HAS;
import static io.swagger.codegen.VendorExtendable.PREFFIX_IS;
import static io.swagger.codegen.VendorExtendable.PREFIX_HAS;
import static io.swagger.codegen.VendorExtendable.PREFIX_IS;
/**
* A class for storing constants that are used throughout the project.
@@ -224,42 +224,42 @@ public class CodegenConstants {
public static final String REMOVE_OPERATION_ID_PREFIX = "removeOperationIdPrefix";
public static final String REMOVE_OPERATION_ID_PREFIX_DESC = "Remove prefix of operationId, e.g. config_getId => getId";
public static final String IS_ENUM_EXT_NAME = PREFFIX_IS + "enum";
public static final String IS_ALIAS_EXT_NAME = PREFFIX_IS + "alias";
public static final String IS_ARRAY_MODEL_EXT_NAME = PREFFIX_IS + "array-model";
public static final String HAS_VARS_EXT_NAME = PREFFIX_HAS + "vars";
public static final String HAS_ENUMS_EXT_NAME = PREFFIX_HAS + "enums";
public static final String HAS_MORE_MODELS_EXT_NAME = PREFFIX_HAS + "more-models";
public static final String HAS_REQUIRED_EXT_NAME = PREFFIX_HAS + "required";
public static final String HAS_OPTIONAL_EXT_NAME = PREFFIX_HAS + "optional";
public static final String HAS_CHILDREN_EXT_NAME = PREFFIX_HAS + "children";
public static final String HAS_ONLY_READ_ONLY_EXT_NAME = PREFFIX_HAS + "only-read-only";
public static final String IS_ENUM_EXT_NAME = PREFIX_IS + "enum";
public static final String IS_ALIAS_EXT_NAME = PREFIX_IS + "alias";
public static final String IS_ARRAY_MODEL_EXT_NAME = PREFIX_IS + "array-model";
public static final String HAS_VARS_EXT_NAME = PREFIX_HAS + "vars";
public static final String HAS_ENUMS_EXT_NAME = PREFIX_HAS + "enums";
public static final String HAS_MORE_MODELS_EXT_NAME = PREFIX_HAS + "more-models";
public static final String HAS_REQUIRED_EXT_NAME = PREFIX_HAS + "required";
public static final String HAS_OPTIONAL_EXT_NAME = PREFIX_HAS + "optional";
public static final String HAS_CHILDREN_EXT_NAME = PREFIX_HAS + "children";
public static final String HAS_ONLY_READ_ONLY_EXT_NAME = PREFIX_HAS + "only-read-only";
public static final String IS_PRIMITIVE_TYPE_EXT_NAME = PREFFIX_IS + "primitive-type";
public static final String IS_CONTAINER_EXT_NAME = PREFFIX_IS + "container";
public static final String IS_NOT_CONTAINER_EXT_NAME = PREFFIX_IS + "not-container";
public static final String IS_STRING_EXT_NAME = PREFFIX_IS + "string";
public static final String IS_NUMERIC_EXT_NAME = PREFFIX_IS + "numeric";
public static final String IS_INTEGER_EXT_NAME = PREFFIX_IS + "integer";
public static final String IS_LONG_EXT_NAME = PREFFIX_IS + "long";
public static final String IS_NUMBER_EXT_NAME = PREFFIX_IS + "number";
public static final String IS_FLOAT_EXT_NAME = PREFFIX_IS + "float";
public static final String IS_DOUBLE_EXT_NAME = PREFFIX_IS + "double";
public static final String IS_BYTE_ARRAY_EXT_NAME = PREFFIX_IS + "byte-array";
public static final String IS_BINARY_EXT_NAME = PREFFIX_IS + "binary";
public static final String IS_FILE_EXT_NAME = PREFFIX_IS + "file";
public static final String IS_BOOLEAN_EXT_NAME = PREFFIX_IS + "boolean";
public static final String IS_DATE_EXT_NAME = PREFFIX_IS + "date";
public static final String IS_DATE_TIME_EXT_NAME = PREFFIX_IS + "date-time";
public static final String IS_UUID_EXT_NAME = PREFFIX_IS + "uuid";
public static final String IS_LIST_CONTAINER_EXT_NAME = PREFFIX_IS + "list-container";
public static final String IS_MAP_CONTAINER_EXT_NAME = PREFFIX_IS + "map-container";
public static final String IS_READ_ONLY_EXT_NAME = PREFFIX_IS + "read-only";
public static final String IS_INHERITED_EXT_NAME = PREFFIX_IS + "inherited";
public static final String IS_XML_ATTRIBUTE_EXT_NAME = PREFFIX_IS + "xml-attribute";
public static final String IS_XML_WRAPPED_EXT_NAME = PREFFIX_IS + "xml-wrapped";
public static final String IS_PRIMITIVE_TYPE_EXT_NAME = PREFIX_IS + "primitive-type";
public static final String IS_CONTAINER_EXT_NAME = PREFIX_IS + "container";
public static final String IS_NOT_CONTAINER_EXT_NAME = PREFIX_IS + "not-container";
public static final String IS_STRING_EXT_NAME = PREFIX_IS + "string";
public static final String IS_NUMERIC_EXT_NAME = PREFIX_IS + "numeric";
public static final String IS_INTEGER_EXT_NAME = PREFIX_IS + "integer";
public static final String IS_LONG_EXT_NAME = PREFIX_IS + "long";
public static final String IS_NUMBER_EXT_NAME = PREFIX_IS + "number";
public static final String IS_FLOAT_EXT_NAME = PREFIX_IS + "float";
public static final String IS_DOUBLE_EXT_NAME = PREFIX_IS + "double";
public static final String IS_BYTE_ARRAY_EXT_NAME = PREFIX_IS + "byte-array";
public static final String IS_BINARY_EXT_NAME = PREFIX_IS + "binary";
public static final String IS_FILE_EXT_NAME = PREFIX_IS + "file";
public static final String IS_BOOLEAN_EXT_NAME = PREFIX_IS + "boolean";
public static final String IS_DATE_EXT_NAME = PREFIX_IS + "date";
public static final String IS_DATE_TIME_EXT_NAME = PREFIX_IS + "date-time";
public static final String IS_UUID_EXT_NAME = PREFIX_IS + "uuid";
public static final String IS_LIST_CONTAINER_EXT_NAME = PREFIX_IS + "list-container";
public static final String IS_MAP_CONTAINER_EXT_NAME = PREFIX_IS + "map-container";
public static final String IS_READ_ONLY_EXT_NAME = PREFIX_IS + "read-only";
public static final String IS_INHERITED_EXT_NAME = PREFIX_IS + "inherited";
public static final String IS_XML_ATTRIBUTE_EXT_NAME = PREFIX_IS + "xml-attribute";
public static final String IS_XML_WRAPPED_EXT_NAME = PREFIX_IS + "xml-wrapped";
public static final String HAS_MORE_EXT_NAME = PREFFIX_HAS + "more";
public static final String HAS_MORE_NON_READ_ONLY_EXT_NAME = PREFFIX_HAS + "more-non-read-only";
public static final String HAS_VALIDATION_EXT_NAME = PREFFIX_HAS + "validation";
public static final String HAS_MORE_EXT_NAME = PREFIX_HAS + "more";
public static final String HAS_MORE_NON_READ_ONLY_EXT_NAME = PREFIX_HAS + "more-non-read-only";
public static final String HAS_VALIDATION_EXT_NAME = PREFIX_HAS + "validation";
}

View File

@@ -4,8 +4,8 @@ import java.util.Map;
public interface VendorExtendable {
String PREFFIX_IS = "x-is-";
String PREFFIX_HAS = "x-has-";
String PREFIX_IS = "x-is-";
String PREFIX_HAS = "x-has-";
Map<String, Object> getVendorExtensions();
}

View File

@@ -3,17 +3,14 @@ package io.swagger.codegen.languages.helpers;
import com.github.jknack.handlebars.Helper;
import com.github.jknack.handlebars.Options;
import com.github.jknack.handlebars.Options.Buffer;
import io.swagger.codegen.CodegenModel;
import io.swagger.codegen.VendorExtendable;
import java.io.IOException;
import java.util.Map;
import static io.swagger.codegen.VendorExtendable.PREFFIX_IS;
public abstract class ExtensionHelper implements Helper<VendorExtendable> {
public class ExtensionHelper implements Helper<VendorExtendable> {
public static final String NAME = "is";
public abstract String getPreffix();
@Override
public Object apply(VendorExtendable vendor, Options options) throws IOException {
@@ -24,7 +21,7 @@ public class ExtensionHelper implements Helper<VendorExtendable> {
return buffer;
}
final String param = options.param(0);
String extension = PREFFIX_IS + param;
String extension = getPreffix() + param;
if (!getBooleanValue(vendor, extension)) {
buffer.append(options.inverse());

View File

@@ -0,0 +1,13 @@
package io.swagger.codegen.languages.helpers;
import static io.swagger.codegen.VendorExtendable.PREFIX_HAS;
public class HasHelper extends ExtensionHelper {
public static final String NAME = "has";
@Override
public String getPreffix() {
return PREFIX_HAS;
}
}

View File

@@ -0,0 +1,13 @@
package io.swagger.codegen.languages.helpers;
import io.swagger.codegen.VendorExtendable;
public class HasNotHelper extends NoneExtensionHelper {
public static final String NAME = "hasNot";
@Override
public String getPreffix() {
return VendorExtendable.PREFIX_HAS;
}
}

View File

@@ -0,0 +1,13 @@
package io.swagger.codegen.languages.helpers;
import static io.swagger.codegen.VendorExtendable.PREFIX_IS;
public class IsHelper extends ExtensionHelper {
public static final String NAME = "is";
@Override
public String getPreffix() {
return PREFIX_IS;
}
}

View File

@@ -0,0 +1,14 @@
package io.swagger.codegen.languages.helpers;
import io.swagger.codegen.VendorExtendable;
public class IsNotHelper extends NoneExtensionHelper {
public static final String NAME = "isNot";
@Override
public String getPreffix() {
return VendorExtendable.PREFIX_IS;
}
}

View File

@@ -5,14 +5,13 @@ import com.github.jknack.handlebars.Options;
import io.swagger.codegen.VendorExtendable;
import java.io.IOException;
import java.util.Map;
import static io.swagger.codegen.VendorExtendable.PREFFIX_IS;
import static io.swagger.codegen.VendorExtendable.PREFIX_IS;
import static io.swagger.codegen.languages.helpers.ExtensionHelper.getBooleanValue;
public class NoneExtensionHelper implements Helper<VendorExtendable> {
public abstract class NoneExtensionHelper implements Helper<VendorExtendable> {
public static final String NAME = "isNot";
public abstract String getPreffix();
@Override
public Object apply(VendorExtendable vendor, Options options) throws IOException {
@@ -22,7 +21,7 @@ public class NoneExtensionHelper implements Helper<VendorExtendable> {
return buffer;
}
final String param = options.param(0);
String extension = PREFFIX_IS + param;
String extension = getPreffix() + param;
if (!getBooleanValue(vendor, extension)) {
buffer.append(options.fn());