From 6e85c37a54be79b75c2679966ed25ffabd768b71 Mon Sep 17 00:00:00 2001 From: Lukas Eder Date: Mon, 7 Dec 2020 11:45:33 +0100 Subject: [PATCH] [jOOQ/jOOQ#11061] [jOOQ/jOOQ#11070] [jOOQ/jOOQ#11091] LEFT / RIGHT - Fixed formatting --- .../java/org/jooq/impl/AlterDatabaseImpl.java | 4 +- .../java/org/jooq/impl/AlterDomainImpl.java | 30 +-- .../java/org/jooq/impl/AlterSchemaImpl.java | 4 +- .../org/jooq/impl/CreateDatabaseImpl.java | 4 +- .../java/org/jooq/impl/CreateDomainImpl.java | 4 +- .../java/org/jooq/impl/CreateSchemaImpl.java | 4 +- .../org/jooq/impl/CreateSequenceImpl.java | 4 +- jOOQ/src/main/java/org/jooq/impl/DSL.java | 188 +++++++----------- .../java/org/jooq/impl/DropDatabaseImpl.java | 4 +- .../java/org/jooq/impl/DropDomainImpl.java | 4 +- .../java/org/jooq/impl/DropSchemaImpl.java | 4 +- .../java/org/jooq/impl/DropSequenceImpl.java | 4 +- .../main/java/org/jooq/impl/GrantImpl.java | 12 +- jOOQ/src/main/java/org/jooq/impl/Left.java | 62 ++++-- .../main/java/org/jooq/impl/RevokeImpl.java | 4 +- jOOQ/src/main/java/org/jooq/impl/Right.java | 66 +++--- 16 files changed, 215 insertions(+), 187 deletions(-) diff --git a/jOOQ/src/main/java/org/jooq/impl/AlterDatabaseImpl.java b/jOOQ/src/main/java/org/jooq/impl/AlterDatabaseImpl.java index 4c402184f4..46058837cf 100644 --- a/jOOQ/src/main/java/org/jooq/impl/AlterDatabaseImpl.java +++ b/jOOQ/src/main/java/org/jooq/impl/AlterDatabaseImpl.java @@ -38,9 +38,11 @@ package org.jooq.impl; import static org.jooq.impl.DSL.*; +import static org.jooq.impl.Internal.*; import static org.jooq.impl.Keywords.*; import static org.jooq.impl.Names.*; import static org.jooq.impl.SQLDataType.*; +import static org.jooq.impl.Tools.*; import static org.jooq.impl.Tools.BooleanDataKey.*; import static org.jooq.SQLDialect.*; @@ -66,7 +68,7 @@ implements private final Catalog database; private final boolean alterDatabaseIfExists; private Catalog renameTo; - + AlterDatabaseImpl( Configuration configuration, Catalog database, diff --git a/jOOQ/src/main/java/org/jooq/impl/AlterDomainImpl.java b/jOOQ/src/main/java/org/jooq/impl/AlterDomainImpl.java index 08f12b47f0..ad4012c99c 100644 --- a/jOOQ/src/main/java/org/jooq/impl/AlterDomainImpl.java +++ b/jOOQ/src/main/java/org/jooq/impl/AlterDomainImpl.java @@ -38,9 +38,11 @@ package org.jooq.impl; import static org.jooq.impl.DSL.*; +import static org.jooq.impl.Internal.*; import static org.jooq.impl.Keywords.*; import static org.jooq.impl.Names.*; import static org.jooq.impl.SQLDataType.*; +import static org.jooq.impl.Tools.*; import static org.jooq.impl.Tools.BooleanDataKey.*; import static org.jooq.SQLDialect.*; @@ -79,7 +81,7 @@ implements private boolean dropNotNull; private Boolean cascade; private Constraint renameConstraintTo; - + AlterDomainImpl( Configuration configuration, Domain domain, @@ -139,20 +141,20 @@ implements this.renameConstraintTo = renameConstraintTo; } - final Domain $domain() { return domain; } - final boolean $alterDomainIfExists() { return alterDomainIfExists; } - final Constraint $addConstraint() { return addConstraint; } - final Constraint $dropConstraint() { return dropConstraint; } - final boolean $dropConstraintIfExists() { return dropConstraintIfExists; } - final Domain $renameTo() { return renameTo; } - final Constraint $renameConstraint() { return renameConstraint; } + final Domain $domain() { return domain; } + final boolean $alterDomainIfExists() { return alterDomainIfExists; } + final Constraint $addConstraint() { return addConstraint; } + final Constraint $dropConstraint() { return dropConstraint; } + final boolean $dropConstraintIfExists() { return dropConstraintIfExists; } + final Domain $renameTo() { return renameTo; } + final Constraint $renameConstraint() { return renameConstraint; } final boolean $renameConstraintIfExists() { return renameConstraintIfExists; } - final Field $setDefault() { return setDefault; } - final boolean $dropDefault() { return dropDefault; } - final boolean $setNotNull() { return setNotNull; } - final boolean $dropNotNull() { return dropNotNull; } - final Boolean $cascade() { return cascade; } - final Constraint $renameConstraintTo() { return renameConstraintTo; } + final Field $setDefault() { return setDefault; } + final boolean $dropDefault() { return dropDefault; } + final boolean $setNotNull() { return setNotNull; } + final boolean $dropNotNull() { return dropNotNull; } + final Boolean $cascade() { return cascade; } + final Constraint $renameConstraintTo() { return renameConstraintTo; } // ------------------------------------------------------------------------- // XXX: DSL API diff --git a/jOOQ/src/main/java/org/jooq/impl/AlterSchemaImpl.java b/jOOQ/src/main/java/org/jooq/impl/AlterSchemaImpl.java index a830312b2e..e3c1e8b046 100644 --- a/jOOQ/src/main/java/org/jooq/impl/AlterSchemaImpl.java +++ b/jOOQ/src/main/java/org/jooq/impl/AlterSchemaImpl.java @@ -38,9 +38,11 @@ package org.jooq.impl; import static org.jooq.impl.DSL.*; +import static org.jooq.impl.Internal.*; import static org.jooq.impl.Keywords.*; import static org.jooq.impl.Names.*; import static org.jooq.impl.SQLDataType.*; +import static org.jooq.impl.Tools.*; import static org.jooq.impl.Tools.BooleanDataKey.*; import static org.jooq.SQLDialect.*; @@ -66,7 +68,7 @@ implements private final Schema schema; private final boolean alterSchemaIfExists; private Schema renameTo; - + AlterSchemaImpl( Configuration configuration, Schema schema, diff --git a/jOOQ/src/main/java/org/jooq/impl/CreateDatabaseImpl.java b/jOOQ/src/main/java/org/jooq/impl/CreateDatabaseImpl.java index 537339997f..a26f03c626 100644 --- a/jOOQ/src/main/java/org/jooq/impl/CreateDatabaseImpl.java +++ b/jOOQ/src/main/java/org/jooq/impl/CreateDatabaseImpl.java @@ -38,9 +38,11 @@ package org.jooq.impl; import static org.jooq.impl.DSL.*; +import static org.jooq.impl.Internal.*; import static org.jooq.impl.Keywords.*; import static org.jooq.impl.Names.*; import static org.jooq.impl.SQLDataType.*; +import static org.jooq.impl.Tools.*; import static org.jooq.impl.Tools.BooleanDataKey.*; import static org.jooq.SQLDialect.*; @@ -64,7 +66,7 @@ implements private final Catalog database; private final boolean createDatabaseIfNotExists; - + CreateDatabaseImpl( Configuration configuration, diff --git a/jOOQ/src/main/java/org/jooq/impl/CreateDomainImpl.java b/jOOQ/src/main/java/org/jooq/impl/CreateDomainImpl.java index 81939a4aa0..5eb1fd44da 100644 --- a/jOOQ/src/main/java/org/jooq/impl/CreateDomainImpl.java +++ b/jOOQ/src/main/java/org/jooq/impl/CreateDomainImpl.java @@ -38,9 +38,11 @@ package org.jooq.impl; import static org.jooq.impl.DSL.*; +import static org.jooq.impl.Internal.*; import static org.jooq.impl.Keywords.*; import static org.jooq.impl.Names.*; import static org.jooq.impl.SQLDataType.*; +import static org.jooq.impl.Tools.*; import static org.jooq.impl.Tools.BooleanDataKey.*; import static org.jooq.SQLDialect.*; @@ -70,7 +72,7 @@ implements private DataType dataType; private Field default_; private Collection constraints; - + CreateDomainImpl( Configuration configuration, Domain domain, diff --git a/jOOQ/src/main/java/org/jooq/impl/CreateSchemaImpl.java b/jOOQ/src/main/java/org/jooq/impl/CreateSchemaImpl.java index 69fc903a14..53b6a379f0 100644 --- a/jOOQ/src/main/java/org/jooq/impl/CreateSchemaImpl.java +++ b/jOOQ/src/main/java/org/jooq/impl/CreateSchemaImpl.java @@ -38,9 +38,11 @@ package org.jooq.impl; import static org.jooq.impl.DSL.*; +import static org.jooq.impl.Internal.*; import static org.jooq.impl.Keywords.*; import static org.jooq.impl.Names.*; import static org.jooq.impl.SQLDataType.*; +import static org.jooq.impl.Tools.*; import static org.jooq.impl.Tools.BooleanDataKey.*; import static org.jooq.SQLDialect.*; @@ -64,7 +66,7 @@ implements private final Schema schema; private final boolean createSchemaIfNotExists; - + CreateSchemaImpl( Configuration configuration, diff --git a/jOOQ/src/main/java/org/jooq/impl/CreateSequenceImpl.java b/jOOQ/src/main/java/org/jooq/impl/CreateSequenceImpl.java index 09a2353f1b..4228c796ce 100644 --- a/jOOQ/src/main/java/org/jooq/impl/CreateSequenceImpl.java +++ b/jOOQ/src/main/java/org/jooq/impl/CreateSequenceImpl.java @@ -38,9 +38,11 @@ package org.jooq.impl; import static org.jooq.impl.DSL.*; +import static org.jooq.impl.Internal.*; import static org.jooq.impl.Keywords.*; import static org.jooq.impl.Names.*; import static org.jooq.impl.SQLDataType.*; +import static org.jooq.impl.Tools.*; import static org.jooq.impl.Tools.BooleanDataKey.*; import static org.jooq.SQLDialect.*; @@ -75,7 +77,7 @@ implements private boolean noCycle; private Field cache; private boolean noCache; - + CreateSequenceImpl( Configuration configuration, Sequence sequence, diff --git a/jOOQ/src/main/java/org/jooq/impl/DSL.java b/jOOQ/src/main/java/org/jooq/impl/DSL.java index fe03244a86..32d0f6fbba 100644 --- a/jOOQ/src/main/java/org/jooq/impl/DSL.java +++ b/jOOQ/src/main/java/org/jooq/impl/DSL.java @@ -14879,6 +14879,82 @@ public class DSL { // XXX String function factory // ------------------------------------------------------------------------- + + + /** + * The LEFT function. + */ + @NotNull + @Support + public static Field left(String string, int length) { + return new Left(Tools.field(string), Tools.field(length)); + } + + /** + * The LEFT function. + */ + @NotNull + @Support + public static Field left(String string, Field length) { + return new Left(Tools.field(string), length); + } + + /** + * The LEFT function. + */ + @NotNull + @Support + public static Field left(Field string, int length) { + return new Left(string, Tools.field(length)); + } + + /** + * The LEFT function. + */ + @NotNull + @Support + public static Field left(Field string, Field length) { + return new Left(string, length); + } + + /** + * The RIGHT function. + */ + @NotNull + @Support + public static Field right(String string, int length) { + return new Right(Tools.field(string), Tools.field(length)); + } + + /** + * The RIGHT function. + */ + @NotNull + @Support + public static Field right(String string, Field length) { + return new Right(Tools.field(string), length); + } + + /** + * The RIGHT function. + */ + @NotNull + @Support + public static Field right(Field string, int length) { + return new Right(string, Tools.field(length)); + } + + /** + * The RIGHT function. + */ + @NotNull + @Support + public static Field right(Field string, Field length) { + return new Right(string, length); + } + + + /** * Get the upper(field) function. * @@ -15814,118 +15890,6 @@ public class DSL { return substring(field, startingPosition, length); } - /** - * Get the left outermost characters from a string. - *

- * Example: - *

-     * 'abc' = LEFT('abcde', 3)
-     * 
- */ - @NotNull - @Support - public static Field left(String field, int length) { - return left(Tools.field(field), Tools.field(length)); - } - - /** - * Get the left outermost characters from a string. - *

- * Example: - *

-     * 'abc' = LEFT('abcde', 3)
-     * 
- */ - @NotNull - @Support - public static Field left(String field, Field length) { - return left(Tools.field(field), length); - } - - /** - * Get the left outermost characters from a string. - *

- * Example: - *

-     * 'abc' = LEFT('abcde', 3)
-     * 
- */ - @NotNull - @Support - public static Field left(Field field, int length) { - return left(field, Tools.field(length)); - } - - /** - * Get the left outermost characters from a string. - *

- * Example: - *

-     * 'abc' = LEFT('abcde', 3)
-     * 
- */ - @NotNull - @Support - public static Field left(Field field, Field length) { - return new Left(field, length); - } - - /** - * Get the right outermost characters from a string. - *

- * Example: - *

-     * 'cde' = RIGHT('abcde', 3)
-     * 
- */ - @NotNull - @Support - public static Field right(String field, int length) { - return right(Tools.field(field), Tools.field(length)); - } - - /** - * Get the right outermost characters from a string. - *

- * Example: - *

-     * 'cde' = RIGHT('abcde', 3)
-     * 
- */ - @NotNull - @Support - public static Field right(String field, Field length) { - return right(Tools.field(field), length); - } - - /** - * Get the right outermost characters from a string. - *

- * Example: - *

-     * 'cde' = RIGHT('abcde', 3)
-     * 
- */ - @NotNull - @Support - public static Field right(Field field, int length) { - return right(field, Tools.field(length)); - } - - /** - * Get the right outermost characters from a string. - *

- * Example: - *

-     * 'cde' = RIGHT('abcde', 3)
-     * 
- */ - @NotNull - @Support - public static Field right(Field field, Field length) { - return new Right(field, length); - } - /** * Get the length of a VARCHAR type. This is a synonym for * {@link #charLength(String)}. diff --git a/jOOQ/src/main/java/org/jooq/impl/DropDatabaseImpl.java b/jOOQ/src/main/java/org/jooq/impl/DropDatabaseImpl.java index 66bd9cfd7b..e3bc4401aa 100644 --- a/jOOQ/src/main/java/org/jooq/impl/DropDatabaseImpl.java +++ b/jOOQ/src/main/java/org/jooq/impl/DropDatabaseImpl.java @@ -38,9 +38,11 @@ package org.jooq.impl; import static org.jooq.impl.DSL.*; +import static org.jooq.impl.Internal.*; import static org.jooq.impl.Keywords.*; import static org.jooq.impl.Names.*; import static org.jooq.impl.SQLDataType.*; +import static org.jooq.impl.Tools.*; import static org.jooq.impl.Tools.BooleanDataKey.*; import static org.jooq.SQLDialect.*; @@ -64,7 +66,7 @@ implements private final Catalog database; private final boolean dropDatabaseIfExists; - + DropDatabaseImpl( Configuration configuration, diff --git a/jOOQ/src/main/java/org/jooq/impl/DropDomainImpl.java b/jOOQ/src/main/java/org/jooq/impl/DropDomainImpl.java index 06b0f67153..d250d14527 100644 --- a/jOOQ/src/main/java/org/jooq/impl/DropDomainImpl.java +++ b/jOOQ/src/main/java/org/jooq/impl/DropDomainImpl.java @@ -38,9 +38,11 @@ package org.jooq.impl; import static org.jooq.impl.DSL.*; +import static org.jooq.impl.Internal.*; import static org.jooq.impl.Keywords.*; import static org.jooq.impl.Names.*; import static org.jooq.impl.SQLDataType.*; +import static org.jooq.impl.Tools.*; import static org.jooq.impl.Tools.BooleanDataKey.*; import static org.jooq.SQLDialect.*; @@ -66,7 +68,7 @@ implements private final Domain domain; private final boolean dropDomainIfExists; private Boolean cascade; - + DropDomainImpl( Configuration configuration, Domain domain, diff --git a/jOOQ/src/main/java/org/jooq/impl/DropSchemaImpl.java b/jOOQ/src/main/java/org/jooq/impl/DropSchemaImpl.java index e11690ff15..14e8d14792 100644 --- a/jOOQ/src/main/java/org/jooq/impl/DropSchemaImpl.java +++ b/jOOQ/src/main/java/org/jooq/impl/DropSchemaImpl.java @@ -38,9 +38,11 @@ package org.jooq.impl; import static org.jooq.impl.DSL.*; +import static org.jooq.impl.Internal.*; import static org.jooq.impl.Keywords.*; import static org.jooq.impl.Names.*; import static org.jooq.impl.SQLDataType.*; +import static org.jooq.impl.Tools.*; import static org.jooq.impl.Tools.BooleanDataKey.*; import static org.jooq.SQLDialect.*; @@ -66,7 +68,7 @@ implements private final Schema schema; private final boolean dropSchemaIfExists; private Boolean cascade; - + DropSchemaImpl( Configuration configuration, Schema schema, diff --git a/jOOQ/src/main/java/org/jooq/impl/DropSequenceImpl.java b/jOOQ/src/main/java/org/jooq/impl/DropSequenceImpl.java index 348e91dc86..61d6155903 100644 --- a/jOOQ/src/main/java/org/jooq/impl/DropSequenceImpl.java +++ b/jOOQ/src/main/java/org/jooq/impl/DropSequenceImpl.java @@ -38,9 +38,11 @@ package org.jooq.impl; import static org.jooq.impl.DSL.*; +import static org.jooq.impl.Internal.*; import static org.jooq.impl.Keywords.*; import static org.jooq.impl.Names.*; import static org.jooq.impl.SQLDataType.*; +import static org.jooq.impl.Tools.*; import static org.jooq.impl.Tools.BooleanDataKey.*; import static org.jooq.SQLDialect.*; @@ -64,7 +66,7 @@ implements private final Sequence sequence; private final boolean dropSequenceIfExists; - + DropSequenceImpl( Configuration configuration, diff --git a/jOOQ/src/main/java/org/jooq/impl/GrantImpl.java b/jOOQ/src/main/java/org/jooq/impl/GrantImpl.java index 2a793c460f..42621b9161 100644 --- a/jOOQ/src/main/java/org/jooq/impl/GrantImpl.java +++ b/jOOQ/src/main/java/org/jooq/impl/GrantImpl.java @@ -38,9 +38,11 @@ package org.jooq.impl; import static org.jooq.impl.DSL.*; +import static org.jooq.impl.Internal.*; import static org.jooq.impl.Keywords.*; import static org.jooq.impl.Names.*; import static org.jooq.impl.SQLDataType.*; +import static org.jooq.impl.Tools.*; import static org.jooq.impl.Tools.BooleanDataKey.*; import static org.jooq.SQLDialect.*; @@ -70,7 +72,7 @@ implements private Role to; private Boolean toPublic; private Boolean withGrantOption; - + GrantImpl( Configuration configuration, Collection privileges @@ -102,10 +104,10 @@ implements this.withGrantOption = withGrantOption; } - final Collection $privileges() { return privileges; } - final Table $on() { return on; } - final Role $to() { return to; } - final Boolean $toPublic() { return toPublic; } + final Collection $privileges() { return privileges; } + final Table $on() { return on; } + final Role $to() { return to; } + final Boolean $toPublic() { return toPublic; } final Boolean $withGrantOption() { return withGrantOption; } // ------------------------------------------------------------------------- diff --git a/jOOQ/src/main/java/org/jooq/impl/Left.java b/jOOQ/src/main/java/org/jooq/impl/Left.java index 65c99bdee3..ec03646cd5 100644 --- a/jOOQ/src/main/java/org/jooq/impl/Left.java +++ b/jOOQ/src/main/java/org/jooq/impl/Left.java @@ -37,36 +37,54 @@ */ package org.jooq.impl; -import static org.jooq.impl.DSL.inline; -import static org.jooq.impl.Names.N_LEFT; -import static org.jooq.impl.SQLDataType.INTEGER; -import static org.jooq.impl.SQLDataType.VARCHAR; -import static org.jooq.impl.Tools.allNotNull; -import static org.jooq.impl.Tools.nullSafeNotNull; +import static org.jooq.impl.DSL.*; +import static org.jooq.impl.Internal.*; +import static org.jooq.impl.Keywords.*; +import static org.jooq.impl.Names.*; +import static org.jooq.impl.SQLDataType.*; +import static org.jooq.impl.Tools.*; +import static org.jooq.impl.Tools.BooleanDataKey.*; +import static org.jooq.SQLDialect.*; -import org.jooq.Context; -import org.jooq.Field; +import org.jooq.*; +import org.jooq.impl.*; + +import java.util.*; /** - * @author Lukas Eder + * The LEFT statement. */ -final class Left extends AbstractField { +@SuppressWarnings({ "rawtypes", "unchecked", "unused" }) +final class Left +extends + AbstractField +{ - /** - * Generated UID - */ - private static final long serialVersionUID = 2200760781944082146L; + private static final long serialVersionUID = 1L; - private Field field; - private Field length; + private final Field string; + private final Field length; - Left(Field field, Field length) { - super(N_LEFT, allNotNull(VARCHAR, field, length)); - this.field = nullSafeNotNull(field, VARCHAR); + Left( + Field string, + Field length + ) { + super(N_LEFT, allNotNull(VARCHAR, string, length)); + + this.string = nullSafeNotNull(string, VARCHAR); this.length = nullSafeNotNull(length, INTEGER); } + final Field $string() { return string; } + final Field $length() { return length; } + + // ------------------------------------------------------------------------- + // XXX: QueryPart API + // ------------------------------------------------------------------------- + + + @Override public final void accept(Context ctx) { switch (ctx.family()) { @@ -75,7 +93,7 @@ final class Left extends AbstractField { case DERBY: case SQLITE: - ctx.visit(DSL.substring(field, inline(1), length)); + ctx.visit(DSL.substring(string, inline(1), length)); break; @@ -97,8 +115,10 @@ final class Left extends AbstractField { case MYSQL: case POSTGRES: default: - ctx.visit(N_LEFT).sql('(').visit(field).sql(", ").visit(length).sql(')'); + ctx.visit(N_LEFT).sql('(').visit(string).sql(", ").visit(length).sql(')'); break; } } + + } diff --git a/jOOQ/src/main/java/org/jooq/impl/RevokeImpl.java b/jOOQ/src/main/java/org/jooq/impl/RevokeImpl.java index 652310b85a..e82e291bd0 100644 --- a/jOOQ/src/main/java/org/jooq/impl/RevokeImpl.java +++ b/jOOQ/src/main/java/org/jooq/impl/RevokeImpl.java @@ -38,9 +38,11 @@ package org.jooq.impl; import static org.jooq.impl.DSL.*; +import static org.jooq.impl.Internal.*; import static org.jooq.impl.Keywords.*; import static org.jooq.impl.Names.*; import static org.jooq.impl.SQLDataType.*; +import static org.jooq.impl.Tools.*; import static org.jooq.impl.Tools.BooleanDataKey.*; import static org.jooq.SQLDialect.*; @@ -69,7 +71,7 @@ implements private Table on; private Role from; private Boolean fromPublic; - + RevokeImpl( Configuration configuration, Collection privileges, diff --git a/jOOQ/src/main/java/org/jooq/impl/Right.java b/jOOQ/src/main/java/org/jooq/impl/Right.java index 046cb09ae1..d4004d1519 100644 --- a/jOOQ/src/main/java/org/jooq/impl/Right.java +++ b/jOOQ/src/main/java/org/jooq/impl/Right.java @@ -37,50 +37,66 @@ */ package org.jooq.impl; -import static org.jooq.impl.DSL.one; -import static org.jooq.impl.Internal.iadd; -import static org.jooq.impl.Internal.isub; -import static org.jooq.impl.Names.N_RIGHT; -import static org.jooq.impl.SQLDataType.INTEGER; -import static org.jooq.impl.SQLDataType.VARCHAR; -import static org.jooq.impl.Tools.allNotNull; -import static org.jooq.impl.Tools.nullSafeNotNull; +import static org.jooq.impl.DSL.*; +import static org.jooq.impl.Internal.*; +import static org.jooq.impl.Keywords.*; +import static org.jooq.impl.Names.*; +import static org.jooq.impl.SQLDataType.*; +import static org.jooq.impl.Tools.*; +import static org.jooq.impl.Tools.BooleanDataKey.*; +import static org.jooq.SQLDialect.*; -import org.jooq.Context; -import org.jooq.Field; +import org.jooq.*; +import org.jooq.impl.*; + +import java.util.*; /** - * @author Lukas Eder + * The RIGHT statement. */ -final class Right extends AbstractField { +@SuppressWarnings({ "rawtypes", "unchecked", "unused" }) +final class Right +extends + AbstractField +{ - /** - * Generated UID - */ - private static final long serialVersionUID = 2200760781944082146L; + private static final long serialVersionUID = 1L; - private Field field; - private Field length; + private final Field string; + private final Field length; - Right(Field field, Field length) { - super(N_RIGHT, allNotNull(VARCHAR, field, length)); - this.field = nullSafeNotNull(field, VARCHAR); + Right( + Field string, + Field length + ) { + super(N_RIGHT, allNotNull(VARCHAR, string, length)); + + this.string = nullSafeNotNull(string, VARCHAR); this.length = nullSafeNotNull(length, INTEGER); } + final Field $string() { return string; } + final Field $length() { return length; } + + // ------------------------------------------------------------------------- + // XXX: QueryPart API + // ------------------------------------------------------------------------- + + + @Override public final void accept(Context ctx) { switch (ctx.family()) { case DERBY: - ctx.visit(DSL.substring(field, iadd(DSL.length(field), isub(one(), length)))); + ctx.visit(DSL.substring(string, iadd(DSL.length(string), isub(one(), length)))); break; case SQLITE: - ctx.visit(DSL.substring(field, length.neg())); + ctx.visit(DSL.substring(string, length.neg())); break; @@ -102,8 +118,10 @@ final class Right extends AbstractField { case MYSQL: case POSTGRES: default: - ctx.visit(N_RIGHT).sql('(').visit(field).sql(", ").visit(length).sql(')'); + ctx.visit(N_RIGHT).sql('(').visit(string).sql(", ").visit(length).sql(')'); break; } } + + }