diff --git a/orm/src/main/java/org/hibernate/tool/internal/export/java/ImportContext.java b/orm/src/main/java/org/hibernate/tool/internal/export/java/ImportContext.java index 5b95bd7645..e20cfbf392 100644 --- a/orm/src/main/java/org/hibernate/tool/internal/export/java/ImportContext.java +++ b/orm/src/main/java/org/hibernate/tool/internal/export/java/ImportContext.java @@ -22,13 +22,12 @@ public interface ImportContext { /** * Add fqcn to the import list. Returns fqcn as needed in source code. * Attempts to handle fqcn with array and generics references. - * + *

* e.g. * java.util.Collection imports java.util.Collection and returns Collection * org.marvel.Hulk[] imports org.marvel.Hulk and returns Hulk * * - * @param fqcn * @return import string */ public abstract String importType(String fqcn); diff --git a/orm/src/main/java/org/hibernate/tool/internal/export/java/ImportContextImpl.java b/orm/src/main/java/org/hibernate/tool/internal/export/java/ImportContextImpl.java index efb04de5bd..821d7b3d31 100644 --- a/orm/src/main/java/org/hibernate/tool/internal/export/java/ImportContextImpl.java +++ b/orm/src/main/java/org/hibernate/tool/internal/export/java/ImportContextImpl.java @@ -18,7 +18,6 @@ package org.hibernate.tool.internal.export.java; import java.util.HashMap; -import java.util.Iterator; import java.util.Map; import java.util.Set; import java.util.TreeSet; @@ -57,13 +56,12 @@ public ImportContextImpl(String basePackage) { /** * Add fqcn to the import list. Returns fqcn as needed in source code. * Attempts to handle fqcn with array and generics references. - * + *

* e.g. * java.util.Collection imports java.util.Collection and returns Collection * org.marvel.Hulk[] imports org.marvel.Hulk and returns Hulk * * - * @param fqcn * @return import string */ public String importType(String fqcn) { @@ -88,14 +86,9 @@ public String importType(String fqcn) { String simpleName = StringHelper.unqualify(fqcn); if(simpleNames.containsKey(simpleName)) { String existingFqcn = (String) simpleNames.get(simpleName); - if(existingFqcn.equals(pureFqcn)) { - canBeSimple = true; - } else { - canBeSimple = false; - } + canBeSimple = existingFqcn.equals(pureFqcn); } else { - canBeSimple = true; - simpleNames.put(simpleName, pureFqcn); + simpleNames.put(simpleName, pureFqcn); imports.add( pureFqcn ); } @@ -127,7 +120,7 @@ public String staticImport(String fqcn, String member) { } private boolean inDefaultPackage(String className) { - return className.indexOf( "." ) < 0; + return !className.contains("."); } private boolean isPrimitive(String className) { @@ -135,9 +128,7 @@ private boolean isPrimitive(String className) { } private boolean inSamePackage(String className) { - String other = StringHelper.qualifier( className ); - return other == basePackage - || (other != null && other.equals( basePackage ) ); + return StringHelper.qualifier( className ).equals(basePackage); } private boolean inJavaLang(String className) { @@ -145,20 +136,16 @@ private boolean inJavaLang(String className) { } public String generateImports() { - StringBuffer buf = new StringBuffer(); - - for ( Iterator imps = imports.iterator(); imps.hasNext(); ) { - String next = imps.next(); - if(isPrimitive(next) || inDefaultPackage(next) || inJavaLang(next) || inSamePackage(next)) { - // dont add automatically "imported" stuff - } else { - if(staticImports.contains(next)) { - buf.append("import static " + next + ";\r\n"); - } else { - buf.append("import " + next + ";\r\n"); - } - } - } + StringBuilder buf = new StringBuilder(); + for (String next : imports) { + if (!(isPrimitive(next) || inDefaultPackage(next) || inJavaLang(next) || inSamePackage(next))) { + if (staticImports.contains(next)) { + buf.append("import static ").append(next).append(";\r\n"); + } else { + buf.append("import ").append(next).append(";\r\n"); + } + } + } if(buf.indexOf( "$" )>=0) { return buf.toString(); diff --git a/orm/src/main/java/org/hibernate/tool/internal/export/lint/BadCachingDetector.java b/orm/src/main/java/org/hibernate/tool/internal/export/lint/BadCachingDetector.java index ff187be8dd..c37a59d83c 100644 --- a/orm/src/main/java/org/hibernate/tool/internal/export/lint/BadCachingDetector.java +++ b/orm/src/main/java/org/hibernate/tool/internal/export/lint/BadCachingDetector.java @@ -30,12 +30,11 @@ public String getName() { } @Override - protected void visitProperty(PersistentClass clazz, Property property, IssueCollector collector) { + protected void visitProperty(Property property, IssueCollector collector) { Value value = property.getValue(); - if(value instanceof Collection) { - Collection col = (Collection) value; - if(col.getCacheConcurrencyStrategy()!=null) { // caching is enabled + if(value instanceof Collection col) { + if(col.getCacheConcurrencyStrategy()!=null) { // caching is enabled if (!col.getElement().isSimpleValue()) { String entityName = (String) col.getElement().accept( new EntityNameFromValueVisitor() ); diff --git a/orm/src/main/java/org/hibernate/tool/internal/export/lint/EntityModelDetector.java b/orm/src/main/java/org/hibernate/tool/internal/export/lint/EntityModelDetector.java index 2616411381..e1ebcea7ba 100644 --- a/orm/src/main/java/org/hibernate/tool/internal/export/lint/EntityModelDetector.java +++ b/orm/src/main/java/org/hibernate/tool/internal/export/lint/EntityModelDetector.java @@ -17,18 +17,15 @@ */ package org.hibernate.tool.internal.export.lint; -import java.util.Iterator; - import org.hibernate.mapping.PersistentClass; import org.hibernate.mapping.Property; public abstract class EntityModelDetector extends Detector { public void visit(IssueCollector collector) { - for (Iterator iter = getMetadata().getEntityBindings().iterator(); iter.hasNext();) { - PersistentClass clazz = iter.next(); - this.visit(clazz, collector); - } + for (PersistentClass clazz : getMetadata().getEntityBindings()) { + this.visit(clazz, collector); + } } protected void visit(PersistentClass clazz, IssueCollector collector) { @@ -37,13 +34,13 @@ protected void visit(PersistentClass clazz, IssueCollector collector) { private void visitProperties(PersistentClass clazz, IssueCollector collector) { if(clazz.hasIdentifierProperty()) { - this.visitProperty(clazz, clazz.getIdentifierProperty(), collector); + this.visitProperty(clazz.getIdentifierProperty(), collector); } for (Property property : clazz.getProperties()) { - this.visitProperty(clazz, property, collector); + this.visitProperty(property, collector); } } - protected abstract void visitProperty(PersistentClass clazz, Property property, IssueCollector collector); + protected abstract void visitProperty(Property property, IssueCollector collector); } diff --git a/orm/src/main/java/org/hibernate/tool/internal/export/lint/InstrumentationDetector.java b/orm/src/main/java/org/hibernate/tool/internal/export/lint/InstrumentationDetector.java index c9f437b664..cb4c361306 100644 --- a/orm/src/main/java/org/hibernate/tool/internal/export/lint/InstrumentationDetector.java +++ b/orm/src/main/java/org/hibernate/tool/internal/export/lint/InstrumentationDetector.java @@ -70,18 +70,16 @@ protected void visit(PersistentClass clazz, IssueCollector collector) { } else if(enhanceEnabled){ Class[] interfaces = mappedClass.getInterfaces(); boolean enhanced = false; - for (int i = 0; i < interfaces.length; i++) { - Class intface = interfaces[i]; - if(intface.getName().equals(Managed.class.getName())) { - enhanced = true; - } - } + for (Class intface : interfaces) { + if (intface.getName().equals(Managed.class.getName())) { + enhanced = true; + break; + } + } - if (enhanceEnabled && !enhanced) { + if (!enhanced) { collector.reportIssue( new Issue("LAZY_NOT_INSTRUMENTED", Issue.HIGH_PRIORITY, "'" + clazz.getEntityName() + "' has lazy='false', but its class '" + mappedClass.getName() + "' has not been instrumented with javaassist") ); return; - } else { - // unknown bytecodeprovider...can't really check for that. } } @@ -89,7 +87,6 @@ protected void visit(PersistentClass clazz, IssueCollector collector) { @Override protected void visitProperty( - PersistentClass clazz, Property property, IssueCollector collector) { } diff --git a/orm/src/main/java/org/hibernate/tool/internal/export/lint/ShadowedIdentifierDetector.java b/orm/src/main/java/org/hibernate/tool/internal/export/lint/ShadowedIdentifierDetector.java index ec119537ad..7790b0c1cb 100644 --- a/orm/src/main/java/org/hibernate/tool/internal/export/lint/ShadowedIdentifierDetector.java +++ b/orm/src/main/java/org/hibernate/tool/internal/export/lint/ShadowedIdentifierDetector.java @@ -17,7 +17,6 @@ */ package org.hibernate.tool.internal.export.lint; -import org.hibernate.mapping.PersistentClass; import org.hibernate.mapping.Property; public class ShadowedIdentifierDetector extends EntityModelDetector { @@ -27,7 +26,7 @@ public String getName() { } @Override - protected void visitProperty(PersistentClass clazz, Property property, IssueCollector collector) { + protected void visitProperty(Property property, IssueCollector collector) { if(property.getName().equals("id")) { if (property != property.getPersistentClass().getIdentifierProperty()) { collector.reportIssue(new Issue("ID_SHADOWED", Issue.LOW_PRIORITY, property.getPersistentClass().getEntityName() + " has a normal property named 'id'. This can cause issues since HQL queries will always interpret 'id' as the identifier and not the concrete property")); diff --git a/orm/src/main/java/org/hibernate/tool/internal/util/NameConverter.java b/orm/src/main/java/org/hibernate/tool/internal/util/NameConverter.java index 54f0a08604..7a861fbcea 100644 --- a/orm/src/main/java/org/hibernate/tool/internal/util/NameConverter.java +++ b/orm/src/main/java/org/hibernate/tool/internal/util/NameConverter.java @@ -22,9 +22,9 @@ final public class NameConverter { - private static Set RESERVED_KEYWORDS; + private static final Set RESERVED_KEYWORDS; static { - RESERVED_KEYWORDS = new HashSet(); + RESERVED_KEYWORDS = new HashSet<>(); RESERVED_KEYWORDS.add( "abstract" ); RESERVED_KEYWORDS.add( "continue" ); @@ -78,29 +78,26 @@ final public class NameConverter { RESERVED_KEYWORDS.add( "while" ); } - private NameConverter() { - - } + private NameConverter() {} /** * Converts a database name (table or column) to a java name (first letter capitalised). * employee_name -> EmployeeName. - * + *

* Derived from middlegen's dbnameconverter. * @param s The database name to convert. * * @return The converted database name. */ public static String toUpperCamelCase(String s) { - if ( "".equals(s) ) { + if (s.isEmpty()) { return s; } - StringBuffer result = new StringBuffer(); + StringBuilder result = new StringBuilder(); boolean capitalize = true; boolean lastCapital = false; boolean lastDecapitalized = false; - String p = null; for (int i = 0; i < s.length(); i++) { String c = s.substring(i, i + 1); if ( "_".equals(c) || " ".equals(c) || "-".equals(c) ) { @@ -121,26 +118,16 @@ public static String toUpperCamelCase(String s) { //if(forceFirstLetter && result.length()==0) capitalize = false; if (capitalize) { - if (p == null || !p.equals("_") ) { - result.append(c.toUpperCase() ); - capitalize = false; - p = c; - } - else { - result.append(c.toLowerCase() ); - capitalize = false; - p = c; - } - } + result.append(c.toUpperCase()); + capitalize = false; + } else { result.append(c.toLowerCase() ); lastDecapitalized = true; - p = c; - } - - } - String r = result.toString(); - return r; + } + + } + return result.toString(); } static public String simplePluralize(String singular) { diff --git a/orm/src/main/java/org/hibernate/tool/internal/util/StringUtil.java b/orm/src/main/java/org/hibernate/tool/internal/util/StringUtil.java index 409d899688..9737a0afeb 100644 --- a/orm/src/main/java/org/hibernate/tool/internal/util/StringUtil.java +++ b/orm/src/main/java/org/hibernate/tool/internal/util/StringUtil.java @@ -17,6 +17,7 @@ */ package org.hibernate.tool.internal.util; +import java.util.Objects; import java.util.StringTokenizer; /** @@ -44,7 +45,7 @@ public static String[] split(String str, String separator) { StringTokenizer tok = null; if (separator == null) { tok = new StringTokenizer(str); - } + } else { tok = new StringTokenizer(str, separator); } @@ -59,26 +60,24 @@ public static String[] split(String str, String separator) { lastTokenBegin = str.indexOf(list[i], lastTokenEnd); lastTokenEnd = lastTokenBegin + list[i].length(); i++; - } + } return list; } public static String leftPad(String str, int size) { size = (size - str.length() ); if (size > 0) { - StringBuffer buffer = new StringBuffer(size); - for (int i = 0; i < size; i++) { - buffer.append(" "); - } - str = buffer.toString() + str; + str = " ".repeat(size) + str; } return str; } - public static boolean isEqual(String str1, String str2) { - if(str1==str2) return true; - if(str1!=null && str1.equals(str2) ) return true; - return false; - } - + public static boolean isEqual(String str1, String str2) { + return Objects.equals( str1, str2 ); + } + + public static boolean isEmptyOrNull(String string) { + return string == null || string.isEmpty(); + } + }