Merge pull request #2261 from wing328/php_model_name_improve

[PHP][Python][Perl] add prefix/suffix support to model name
This commit is contained in:
wing328
2016-02-28 11:28:26 +08:00
13 changed files with 46 additions and 78 deletions

View File

@@ -187,7 +187,7 @@ public class PerlClientCodegen extends DefaultCodegen implements CodegenConfig {
if (type == null) {
return null;
}
return type;
return toModelName(type);
}
@Override
@@ -220,9 +220,13 @@ public class PerlClientCodegen extends DefaultCodegen implements CodegenConfig {
public String toModelName(String name) {
// model name cannot use reserved keyword
if (isReservedWord(name)) {
escapeReservedWord(name); // e.g. return => _return
LOGGER.warn(name + " (reserved word) cannot be used as model name. Renamed to " + camelize("object_" + name));
name = "object_" + name;
}
// add prefix/suffic to model name
name = modelNamePrefix + name + modelNameSuffix;
// camelize the model name
// phone_number => PhoneNumber
return camelize(name);

View File

@@ -370,6 +370,11 @@ public class PhpClientCodegen extends DefaultCodegen implements CodegenConfig {
name = "object_" + name; // e.g. return => ObjectReturn (after camelize)
}
// add prefix and/or suffic only if name does not start wth \ (e.g. \DateTime)
if (!name.matches("^\\\\.*")) {
name = modelNamePrefix + name + modelNameSuffix;
}
// camelize the model name
// phone_number => PhoneNumber
return camelize(name);

View File

@@ -212,7 +212,7 @@ public class PythonClientCodegen extends DefaultCodegen implements CodegenConfig
@Override
public String toModelName(String name) {
name = sanitizeName(name); // FIXME: a parameter should not be assigned. Also declare the methods parameters as 'final'.
name = sanitizeName(modelNamePrefix + name + modelNameSuffix); // FIXME: a parameter should not be assigned. Also declare the methods parameters as 'final'.
// remove dollar sign
name = name.replaceAll("$", "");
@@ -236,6 +236,14 @@ public class PythonClientCodegen extends DefaultCodegen implements CodegenConfig
name = "object_" + name; // e.g. return => ObjectReturn (after camelize)
}
if (!StringUtils.isEmpty(modelNamePrefix)) {
name = modelNamePrefix + "_" + name;
}
if (!StringUtils.isEmpty(modelNameSuffix)) {
name = name + "_" + modelNameSuffix;
}
// underscore the model file name
// PhoneNumber => phone_number
return underscore(dropDots(name));