From f9c58f9423949c12432e744bdbf53fa223b6c0a9 Mon Sep 17 00:00:00 2001 From: Lukas Eder Date: Thu, 17 Feb 2022 14:40:02 +0100 Subject: [PATCH] [jOOQ/jOOQ#13093] Remove a few redundant null checks in jOOQ's internals --- .../main/java/org/jooq/impl/AbstractDataType.java | 8 ++------ jOOQ/src/main/java/org/jooq/impl/AbstractNamed.java | 2 +- .../java/org/jooq/impl/DefaultConfiguration.java | 3 +++ jOOQ/src/main/java/org/jooq/impl/ParserImpl.java | 9 +++++++-- jOOQ/src/main/java/org/jooq/impl/RecordDelegate.java | 3 ++- jOOQ/src/main/java/org/jooq/impl/Tools.java | 12 ++++-------- jOOQ/src/main/java/org/jooq/impl/VersionImpl.java | 8 ++------ 7 files changed, 21 insertions(+), 24 deletions(-) diff --git a/jOOQ/src/main/java/org/jooq/impl/AbstractDataType.java b/jOOQ/src/main/java/org/jooq/impl/AbstractDataType.java index 096b5ae446..a9fb7745df 100644 --- a/jOOQ/src/main/java/org/jooq/impl/AbstractDataType.java +++ b/jOOQ/src/main/java/org/jooq/impl/AbstractDataType.java @@ -827,7 +827,7 @@ implements result = prime * result + length(); result = prime * result + precision(); result = prime * result + scale(); - result = prime * result + ((getType() == null) ? 0 : getType().hashCode()); + result = prime * result + getType().hashCode(); result = prime * result + ((tType0() == null) ? 0 : tType0().hashCode()); result = prime * result + ((typeName0() == null) ? 0 : typeName0().hashCode()); return result; @@ -850,11 +850,7 @@ implements return false; if (!eq(scale0(), other.scale0())) return false; - if (getType() == null) { - if (other.getType() != null) - return false; - } - else if (!getType().equals(other.getType())) + if (!getType().equals(other.getType())) return false; if (tType0() == null) { if (other.tType0() != null) diff --git a/jOOQ/src/main/java/org/jooq/impl/AbstractNamed.java b/jOOQ/src/main/java/org/jooq/impl/AbstractNamed.java index 2c9c0638b1..7202f5096c 100644 --- a/jOOQ/src/main/java/org/jooq/impl/AbstractNamed.java +++ b/jOOQ/src/main/java/org/jooq/impl/AbstractNamed.java @@ -100,7 +100,7 @@ abstract class AbstractNamed extends AbstractQueryPart implements Named { // [#1938] This is a much more efficient hashCode() implementation // compared to that of standard QueryParts - return getQualifiedName() == null ? 0 : getQualifiedName().hashCode(); + return getQualifiedName().hashCode(); } @Override diff --git a/jOOQ/src/main/java/org/jooq/impl/DefaultConfiguration.java b/jOOQ/src/main/java/org/jooq/impl/DefaultConfiguration.java index d3ec265573..6e41b94f57 100644 --- a/jOOQ/src/main/java/org/jooq/impl/DefaultConfiguration.java +++ b/jOOQ/src/main/java/org/jooq/impl/DefaultConfiguration.java @@ -1833,6 +1833,9 @@ public class DefaultConfiguration extends AbstractConfiguration { @Override @Deprecated public final org.jooq.SchemaMapping schemaMapping() { + if (mapping == null) + mapping = new org.jooq.SchemaMapping(this); + return mapping; } diff --git a/jOOQ/src/main/java/org/jooq/impl/ParserImpl.java b/jOOQ/src/main/java/org/jooq/impl/ParserImpl.java index 3696e0d541..f9b8d0f22d 100644 --- a/jOOQ/src/main/java/org/jooq/impl/ParserImpl.java +++ b/jOOQ/src/main/java/org/jooq/impl/ParserImpl.java @@ -2055,7 +2055,7 @@ final class DefaultParseContext extends AbstractScope implements ParseContext { throw expected("FOLLOWING", "PRECEDING"); else if (parseKeywordIf("CURRENT ROW")) s4 = s3.andCurrentRow(); - else if ((n = parseUnsignedIntegerLiteral()) != null) + else if (asTrue(n = parseUnsignedIntegerLiteral())) if (parseKeywordIf("PRECEDING")) s4 = s3.andPreceding(n.intValue()); else if (parseKeywordIf("FOLLOWING")) @@ -2104,7 +2104,7 @@ final class DefaultParseContext extends AbstractScope implements ParseContext { : range ? s2.rangeCurrentRow() : s2.groupsCurrentRow(); - else if ((n = parseUnsignedIntegerLiteral()) != null) + else if (asTrue(n = parseUnsignedIntegerLiteral())) if (parseKeywordIf("PRECEDING")) s4 = s2 == null ? rows @@ -14287,6 +14287,11 @@ final class DefaultParseContext extends AbstractScope implements ParseContext { return result; } + @SuppressWarnings("unused") + private final boolean asTrue(Object o) { + return true; + } + private final String mark() { int[] line = line(); return "[" + line[0] + ":" + line[1] + "] " diff --git a/jOOQ/src/main/java/org/jooq/impl/RecordDelegate.java b/jOOQ/src/main/java/org/jooq/impl/RecordDelegate.java index 8fcfa23d83..516145ea99 100644 --- a/jOOQ/src/main/java/org/jooq/impl/RecordDelegate.java +++ b/jOOQ/src/main/java/org/jooq/impl/RecordDelegate.java @@ -43,6 +43,7 @@ import static org.jooq.conf.InvocationOrder.REVERSE; import static org.jooq.impl.RecordDelegate.RecordLifecycleType.LOAD; import static org.jooq.impl.RecordDelegate.RecordLifecycleType.REFRESH; import static org.jooq.impl.Tools.attachRecords; +import static org.jooq.impl.Tools.isEmpty; import static org.jooq.impl.Tools.map; import java.util.Arrays; @@ -108,7 +109,7 @@ final class RecordDelegate { if (configuration != null) { providers = configuration.recordListenerProviders(); - if (providers != null && providers.length > 0) { + if (!isEmpty(providers)) { listeners = map(providers, p -> p.provide(), RecordListener[]::new); ctx = new DefaultRecordContext(configuration, executeType(), record); } diff --git a/jOOQ/src/main/java/org/jooq/impl/Tools.java b/jOOQ/src/main/java/org/jooq/impl/Tools.java index 4fe84d1548..af36be264e 100644 --- a/jOOQ/src/main/java/org/jooq/impl/Tools.java +++ b/jOOQ/src/main/java/org/jooq/impl/Tools.java @@ -3207,8 +3207,7 @@ final class Tools { if (mapping == null) mapping = scope.configuration().schemaMapping(); - if (mapping != null) - return mapping.map(catalog); + return mapping.map(catalog); } return catalog; @@ -3224,8 +3223,7 @@ final class Tools { if (mapping == null) mapping = scope.configuration().schemaMapping(); - if (mapping != null) - return mapping.map(schema); + return mapping.map(schema); } return schema; @@ -3241,8 +3239,7 @@ final class Tools { if (mapping == null) mapping = scope.configuration().schemaMapping(); - if (mapping != null) - return mapping.map(table); + return mapping.map(table); } return table; @@ -5548,8 +5545,7 @@ final class Tools { private static final DataType emulateEnumType(DataType type, EnumType[] enums) { int length = 0; for (EnumType e : enums) - if (e.getLiteral() != null) - length = Math.max(length, e.getLiteral().length()); + length = Math.max(length, e.getLiteral().length()); return VARCHAR(length).nullability(type.nullability()).defaultValue((Field) type.defaultValue()); } diff --git a/jOOQ/src/main/java/org/jooq/impl/VersionImpl.java b/jOOQ/src/main/java/org/jooq/impl/VersionImpl.java index 66793ced16..fcdbae2881 100644 --- a/jOOQ/src/main/java/org/jooq/impl/VersionImpl.java +++ b/jOOQ/src/main/java/org/jooq/impl/VersionImpl.java @@ -235,7 +235,7 @@ final class VersionImpl extends AbstractNode implements Version { public int hashCode() { final int prime = 31; int result = 1; - result = prime * result + ((id() == null) ? 0 : id().hashCode()); + result = prime * result + id().hashCode(); return result; } @@ -248,11 +248,7 @@ final class VersionImpl extends AbstractNode implements Version { if (getClass() != obj.getClass()) return false; VersionImpl other = (VersionImpl) obj; - if (id() == null) { - if (other.id() != null) - return false; - } - else if (!id().equals(other.id())) + if (!id().equals(other.id())) return false; return true; }