Skip to content

Commit

Permalink
[#5783] KeepNamesGeneratorStrategy generates wrong Keys.java
Browse files Browse the repository at this point in the history
  • Loading branch information
lukaseder committed Jan 16, 2017
1 parent 388410f commit 5e4565f
Show file tree
Hide file tree
Showing 3 changed files with 58 additions and 27 deletions.
Expand Up @@ -252,4 +252,42 @@ private static final <T> List<T> nonNull(Collection<? extends T> collection) {

return result;
}

/**
* [#4168] [#5783] Some identifiers must not be modified by custom strategies.
*/
final String getFixedJavaIdentifier(Definition definition) {

// [#1473] Identity identifiers should not be renamed by custom strategies
if (definition instanceof IdentityDefinition)
return "IDENTITY_" + getJavaIdentifier(((IdentityDefinition) definition).getColumn().getContainer());

// [#2032] Intercept default Catalog
else if (definition instanceof CatalogDefinition && ((CatalogDefinition) definition).isDefaultCatalog())
return "DEFAULT_CATALOG";

// [#2089] Intercept default schema
else if (definition instanceof SchemaDefinition && ((SchemaDefinition) definition).isDefaultSchema())
return "DEFAULT_SCHEMA";

else
return null;
}

/**
* [#4168] [#5783] Some class names must not be modified by custom strategies.
*/
final String getFixedJavaClassName(Definition definition) {

// [#2032] Intercept default catalog
if (definition instanceof CatalogDefinition && ((CatalogDefinition) definition).isDefaultCatalog())
return "DefaultCatalog";

// [#2089] Intercept default schema
else if (definition instanceof SchemaDefinition && ((SchemaDefinition) definition).isDefaultSchema())
return "DefaultSchema";

else
return null;
}
}
Expand Up @@ -96,20 +96,12 @@ public String getFileHeader(Definition definition, Mode mode) {

@Override
public String getJavaIdentifier(Definition definition) {
String identifier = getFixedJavaIdentifier(definition);

// [#1473] Identity identifiers should not be renamed by custom strategies
if (definition instanceof IdentityDefinition)
return "IDENTITY_" + getJavaIdentifier(((IdentityDefinition) definition).getColumn().getContainer());

// [#2032] Intercept default Catalog
else if (definition instanceof CatalogDefinition && ((CatalogDefinition) definition).isDefaultCatalog())
return "DEFAULT_CATALOG";

// [#2089] Intercept default schema
else if (definition instanceof SchemaDefinition && ((SchemaDefinition) definition).isDefaultSchema())
return "DEFAULT_SCHEMA";

return definition.getOutputName().toUpperCase();
if (identifier != null)
return identifier;
else
return definition.getOutputName().toUpperCase();
}

@Override
Expand Down Expand Up @@ -139,18 +131,12 @@ public List<String> getJavaClassImplements(Definition definition, Mode mode) {

@Override
public String getJavaClassName(Definition definition, Mode mode) {
String name = getFixedJavaClassName(definition);

// [#2032] Intercept default catalog
if (definition instanceof CatalogDefinition && ((CatalogDefinition) definition).isDefaultCatalog()) {
return "DefaultCatalog";
}

// [#2089] Intercept default schema
else if (definition instanceof SchemaDefinition && ((SchemaDefinition) definition).isDefaultSchema()) {
return "DefaultSchema";
}

return getJavaClassName0(definition, mode);
if (name != null)
return name;
else
return getJavaClassName0(definition, mode);
}

@Override
Expand Down
Expand Up @@ -114,7 +114,12 @@ public String getFileHeader(Definition definition, Mode mode) {

@Override
public String getJavaIdentifier(Definition definition) {
String identifier = convertToIdentifier(delegate.getJavaIdentifier(definition), language);
String identifier = getFixedJavaIdentifier(definition);

if (identifier != null)
return identifier;

identifier = convertToIdentifier(delegate.getJavaIdentifier(definition), language);

// [#1212] Don't trust custom strategies and disambiguate identifiers here
if (definition instanceof ColumnDefinition ||
Expand Down Expand Up @@ -288,11 +293,13 @@ else if (mode == Mode.POJO && !generator.generateInterfaces()) {

@Override
public String getJavaClassName(Definition definition, Mode mode) {
String name = getFixedJavaClassName(definition);
if (name != null)
return name;

// [#1150] Intercept Mode.RECORD calls for tables
if (definition instanceof TableDefinition && !generator.generateRecords() && mode == Mode.RECORD) {
if (definition instanceof TableDefinition && !generator.generateRecords() && mode == Mode.RECORD)
return Record.class.getSimpleName();
}

String className;

Expand Down

0 comments on commit 5e4565f

Please sign in to comment.