[jOOQ/jOOQ#11061] [jOOQ/jOOQ#11070] [jOOQ/jOOQ#11091] TRIM/LTRIM/RTRIM
This commit is contained in:
parent
1a1a9ae728
commit
eb2bd7719d
@ -14935,6 +14935,60 @@ public class DSL {
|
||||
return new Left(string, length);
|
||||
}
|
||||
|
||||
/**
|
||||
* The <code>LTRIM</code> function.
|
||||
*/
|
||||
@NotNull
|
||||
@Support({ DERBY, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE })
|
||||
public static Field<String> ltrim(String string, String characters) {
|
||||
return new LTrim(Tools.field(string), Tools.field(characters));
|
||||
}
|
||||
|
||||
/**
|
||||
* The <code>LTRIM</code> function.
|
||||
*/
|
||||
@NotNull
|
||||
@Support({ DERBY, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE })
|
||||
public static Field<String> ltrim(String string, Field<String> characters) {
|
||||
return new LTrim(Tools.field(string), characters);
|
||||
}
|
||||
|
||||
/**
|
||||
* The <code>LTRIM</code> function.
|
||||
*/
|
||||
@NotNull
|
||||
@Support({ DERBY, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE })
|
||||
public static Field<String> ltrim(Field<String> string, String characters) {
|
||||
return new LTrim(string, Tools.field(characters));
|
||||
}
|
||||
|
||||
/**
|
||||
* The <code>LTRIM</code> function.
|
||||
*/
|
||||
@NotNull
|
||||
@Support({ DERBY, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE })
|
||||
public static Field<String> ltrim(Field<String> string, Field<String> characters) {
|
||||
return new LTrim(string, characters);
|
||||
}
|
||||
|
||||
/**
|
||||
* The <code>LTRIM</code> function.
|
||||
*/
|
||||
@NotNull
|
||||
@Support
|
||||
public static Field<String> ltrim(String string) {
|
||||
return new LTrim(Tools.field(string));
|
||||
}
|
||||
|
||||
/**
|
||||
* The <code>LTRIM</code> function.
|
||||
*/
|
||||
@NotNull
|
||||
@Support
|
||||
public static Field<String> ltrim(Field<String> string) {
|
||||
return new LTrim(string);
|
||||
}
|
||||
|
||||
/**
|
||||
* The <code>REPEAT</code> function.
|
||||
*/
|
||||
@ -15025,6 +15079,60 @@ public class DSL {
|
||||
return new Right(string, length);
|
||||
}
|
||||
|
||||
/**
|
||||
* The <code>RTRIM</code> function.
|
||||
*/
|
||||
@NotNull
|
||||
@Support({ DERBY, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE })
|
||||
public static Field<String> rtrim(String string, String characters) {
|
||||
return new RTrim(Tools.field(string), Tools.field(characters));
|
||||
}
|
||||
|
||||
/**
|
||||
* The <code>RTRIM</code> function.
|
||||
*/
|
||||
@NotNull
|
||||
@Support({ DERBY, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE })
|
||||
public static Field<String> rtrim(String string, Field<String> characters) {
|
||||
return new RTrim(Tools.field(string), characters);
|
||||
}
|
||||
|
||||
/**
|
||||
* The <code>RTRIM</code> function.
|
||||
*/
|
||||
@NotNull
|
||||
@Support({ DERBY, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE })
|
||||
public static Field<String> rtrim(Field<String> string, String characters) {
|
||||
return new RTrim(string, Tools.field(characters));
|
||||
}
|
||||
|
||||
/**
|
||||
* The <code>RTRIM</code> function.
|
||||
*/
|
||||
@NotNull
|
||||
@Support({ DERBY, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE })
|
||||
public static Field<String> rtrim(Field<String> string, Field<String> characters) {
|
||||
return new RTrim(string, characters);
|
||||
}
|
||||
|
||||
/**
|
||||
* The <code>RTRIM</code> function.
|
||||
*/
|
||||
@NotNull
|
||||
@Support
|
||||
public static Field<String> rtrim(String string) {
|
||||
return new RTrim(Tools.field(string));
|
||||
}
|
||||
|
||||
/**
|
||||
* The <code>RTRIM</code> function.
|
||||
*/
|
||||
@NotNull
|
||||
@Support
|
||||
public static Field<String> rtrim(Field<String> string) {
|
||||
return new RTrim(string);
|
||||
}
|
||||
|
||||
/**
|
||||
* The <code>SIGN</code> function.
|
||||
*/
|
||||
@ -15151,6 +15259,60 @@ public class DSL {
|
||||
return new Substring(string, startingPosition);
|
||||
}
|
||||
|
||||
/**
|
||||
* The <code>TRIM</code> function.
|
||||
*/
|
||||
@NotNull
|
||||
@Support({ DERBY, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE })
|
||||
public static Field<String> trim(String string, String characters) {
|
||||
return new Trim(Tools.field(string), Tools.field(characters));
|
||||
}
|
||||
|
||||
/**
|
||||
* The <code>TRIM</code> function.
|
||||
*/
|
||||
@NotNull
|
||||
@Support({ DERBY, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE })
|
||||
public static Field<String> trim(String string, Field<String> characters) {
|
||||
return new Trim(Tools.field(string), characters);
|
||||
}
|
||||
|
||||
/**
|
||||
* The <code>TRIM</code> function.
|
||||
*/
|
||||
@NotNull
|
||||
@Support({ DERBY, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE })
|
||||
public static Field<String> trim(Field<String> string, String characters) {
|
||||
return new Trim(string, Tools.field(characters));
|
||||
}
|
||||
|
||||
/**
|
||||
* The <code>TRIM</code> function.
|
||||
*/
|
||||
@NotNull
|
||||
@Support({ DERBY, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE })
|
||||
public static Field<String> trim(Field<String> string, Field<String> characters) {
|
||||
return new Trim(string, characters);
|
||||
}
|
||||
|
||||
/**
|
||||
* The <code>TRIM</code> function.
|
||||
*/
|
||||
@NotNull
|
||||
@Support
|
||||
public static Field<String> trim(String string) {
|
||||
return new Trim(Tools.field(string));
|
||||
}
|
||||
|
||||
/**
|
||||
* The <code>TRIM</code> function.
|
||||
*/
|
||||
@NotNull
|
||||
@Support
|
||||
public static Field<String> trim(Field<String> string) {
|
||||
return new Trim(string);
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
@ -15199,152 +15361,6 @@ public class DSL {
|
||||
return new Lower(Tools.nullSafe(field));
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the trim(field) function.
|
||||
*
|
||||
* @see #trim(Field)
|
||||
*/
|
||||
@NotNull
|
||||
@Support
|
||||
public static Field<String> trim(String value) {
|
||||
return trim(Tools.field(value));
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the trim(field) function.
|
||||
* <p>
|
||||
* This renders the trim function where available:
|
||||
* <code><pre>trim([field])</pre></code> ... or emulates it elsewhere using
|
||||
* rtrim and ltrim: <code><pre>ltrim(rtrim([field]))</pre></code>
|
||||
*/
|
||||
@NotNull
|
||||
@Support
|
||||
public static Field<String> trim(Field<String> field) {
|
||||
return new Trim(Tools.nullSafe(field));
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the <code>trim(field, characters)</code> or
|
||||
* <code>trim(both characters from field)</code> function.
|
||||
*
|
||||
* @see #trim(Field, Field)
|
||||
*/
|
||||
@NotNull
|
||||
@Support({ DERBY, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE })
|
||||
public static Field<String> trim(String value, String characters) {
|
||||
return trim(Tools.field(value), Tools.field(characters));
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the <code>trim(field, characters)</code> or
|
||||
* <code>trim(both characters from field)</code> function.
|
||||
* <p>
|
||||
* This renders the trim function where available:
|
||||
* <code><pre>trim([field])</pre></code> ... or emulates it elsewhere using
|
||||
* rtrim and ltrim: <code><pre>ltrim(rtrim([field]))</pre></code>
|
||||
*/
|
||||
@NotNull
|
||||
@Support({ DERBY, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE })
|
||||
public static Field<String> trim(Field<String> field, Field<String> characters) {
|
||||
return new Trim(Tools.nullSafe(field), Tools.nullSafe(characters));
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the rtrim(field) function.
|
||||
*
|
||||
* @see #rtrim(Field)
|
||||
*/
|
||||
@NotNull
|
||||
@Support
|
||||
public static Field<String> rtrim(String value) {
|
||||
return rtrim(Tools.field(value));
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the rtrim(field) function.
|
||||
* <p>
|
||||
* This renders the rtrim function in all dialects:
|
||||
* <code><pre>rtrim([field])</pre></code>
|
||||
*/
|
||||
@NotNull
|
||||
@Support
|
||||
public static Field<String> rtrim(Field<String> field) {
|
||||
return new RTrim(Tools.nullSafe(field));
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the <code>rtrim(field, characters)</code> or
|
||||
* <code>trim(trailing characters from field)</code> function.
|
||||
*
|
||||
* @see #rtrim(Field, Field)
|
||||
*/
|
||||
@NotNull
|
||||
@Support({ DERBY, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE })
|
||||
public static Field<String> rtrim(String value, String characters) {
|
||||
return rtrim(Tools.field(value), Tools.field(characters));
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the <code>rtrim(field, characters)</code> or
|
||||
* <code>trim(trailing characters from field)</code> function.
|
||||
* <p>
|
||||
* This renders the rtrim function in all dialects:
|
||||
* <code><pre>rtrim([field])</pre></code>
|
||||
*/
|
||||
@NotNull
|
||||
@Support({ DERBY, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE })
|
||||
public static Field<String> rtrim(Field<String> field, Field<String> characters) {
|
||||
return new RTrim(Tools.nullSafe(field), Tools.nullSafe(characters));
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the ltrim(field) function.
|
||||
*
|
||||
* @see #ltrim(Field)
|
||||
*/
|
||||
@NotNull
|
||||
@Support
|
||||
public static Field<String> ltrim(String value) {
|
||||
return ltrim(Tools.field(value));
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the ltrim(field) function.
|
||||
* <p>
|
||||
* This renders the ltrim function in all dialects:
|
||||
* <code><pre>ltrim([field])</pre></code>
|
||||
*/
|
||||
@NotNull
|
||||
@Support
|
||||
public static Field<String> ltrim(Field<String> field) {
|
||||
return new LTrim(Tools.nullSafe(field));
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the <code>ltrim(field, characters)</code> or
|
||||
* <code>trim(leading characters from field)</code> function.
|
||||
*
|
||||
* @see #ltrim(Field, Field)
|
||||
*/
|
||||
@NotNull
|
||||
@Support({ DERBY, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE })
|
||||
public static Field<String> ltrim(String value, String characters) {
|
||||
return ltrim(Tools.field(value), Tools.field(characters));
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the <code>ltrim(field, characters)</code> or
|
||||
* <code>trim(leading characters from field)</code> function.
|
||||
* <p>
|
||||
* This renders the ltrim function in all dialects:
|
||||
* <code><pre>ltrim([field])</pre></code>
|
||||
*/
|
||||
@NotNull
|
||||
@Support({ DERBY, FIREBIRD, H2, HSQLDB, MARIADB, MYSQL, POSTGRES, SQLITE })
|
||||
public static Field<String> ltrim(Field<String> field, Field<String> characters) {
|
||||
return new LTrim(Tools.nullSafe(field), Tools.nullSafe(characters));
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the rpad(field, length) function.
|
||||
*
|
||||
|
||||
@ -37,49 +37,69 @@
|
||||
*/
|
||||
package org.jooq.impl;
|
||||
|
||||
import static org.jooq.impl.Keywords.K_FROM;
|
||||
import static org.jooq.impl.Keywords.K_LEADING;
|
||||
import static org.jooq.impl.Names.N_LTRIM;
|
||||
import static org.jooq.impl.Names.N_TRIM;
|
||||
import static org.jooq.impl.SQLDataType.VARCHAR;
|
||||
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 <code>LTRIM</code> statement.
|
||||
*/
|
||||
final class LTrim extends AbstractField<String> {
|
||||
@SuppressWarnings({ "rawtypes", "unchecked", "unused" })
|
||||
final class LTrim
|
||||
extends
|
||||
AbstractField<String>
|
||||
{
|
||||
|
||||
/**
|
||||
* Generated UID
|
||||
*/
|
||||
private static final long serialVersionUID = -7273879239726265322L;
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
private final Field<String> argument;
|
||||
private final Field<String> string;
|
||||
private final Field<String> characters;
|
||||
|
||||
LTrim(Field<String> argument) {
|
||||
this(argument, null);
|
||||
LTrim(
|
||||
Field string
|
||||
) {
|
||||
super(N_LTRIM, allNotNull(VARCHAR, string));
|
||||
|
||||
this.string = nullSafeNotNull(string, VARCHAR);
|
||||
this.characters = null;
|
||||
}
|
||||
|
||||
LTrim(Field<String> argument, Field<String> characters) {
|
||||
super(N_LTRIM, VARCHAR);
|
||||
LTrim(
|
||||
Field string,
|
||||
Field characters
|
||||
) {
|
||||
super(N_LTRIM, allNotNull(VARCHAR, string, characters));
|
||||
|
||||
this.argument = argument;
|
||||
this.characters = characters;
|
||||
this.string = nullSafeNotNull(string, VARCHAR);
|
||||
this.characters = nullSafeNotNull(characters, VARCHAR);
|
||||
}
|
||||
|
||||
// -------------------------------------------------------------------------
|
||||
// XXX: QueryPart API
|
||||
// -------------------------------------------------------------------------
|
||||
|
||||
|
||||
|
||||
@Override
|
||||
public final void accept(Context<?> ctx) {
|
||||
if (characters == null) {
|
||||
switch (ctx.family()) {
|
||||
case FIREBIRD:
|
||||
ctx.visit(N_TRIM).sql('(').visit(K_LEADING).sql(' ').visit(K_FROM).sql(' ').visit(argument).sql(')');
|
||||
ctx.visit(N_TRIM).sql('(').visit(K_LEADING).sql(' ').visit(K_FROM).sql(' ').visit(string).sql(')');
|
||||
break;
|
||||
|
||||
default:
|
||||
ctx.visit(N_LTRIM).sql('(').visit(argument).sql(')');
|
||||
ctx.visit(N_LTRIM).sql('(').visit(string).sql(')');
|
||||
break;
|
||||
}
|
||||
}
|
||||
@ -91,13 +111,15 @@ final class LTrim extends AbstractField<String> {
|
||||
|
||||
|
||||
case SQLITE:
|
||||
ctx.visit(N_LTRIM).sql('(').visit(argument).sql(", ").visit(characters).sql(')');
|
||||
ctx.visit(N_LTRIM).sql('(').visit(string).sql(", ").visit(characters).sql(')');
|
||||
break;
|
||||
|
||||
default:
|
||||
ctx.visit(N_TRIM).sql('(').visit(K_LEADING).sql(' ').visit(characters).sql(' ').visit(K_FROM).sql(' ').visit(argument).sql(')');
|
||||
ctx.visit(N_TRIM).sql('(').visit(K_LEADING).sql(' ').visit(characters).sql(' ').visit(K_FROM).sql(' ').visit(string).sql(')');
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@ -37,49 +37,69 @@
|
||||
*/
|
||||
package org.jooq.impl;
|
||||
|
||||
import static org.jooq.impl.Keywords.K_FROM;
|
||||
import static org.jooq.impl.Keywords.K_TRAILING;
|
||||
import static org.jooq.impl.Names.N_RTRIM;
|
||||
import static org.jooq.impl.Names.N_TRIM;
|
||||
import static org.jooq.impl.SQLDataType.VARCHAR;
|
||||
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 <code>RTRIM</code> statement.
|
||||
*/
|
||||
final class RTrim extends AbstractField<String> {
|
||||
@SuppressWarnings({ "rawtypes", "unchecked", "unused" })
|
||||
final class RTrim
|
||||
extends
|
||||
AbstractField<String>
|
||||
{
|
||||
|
||||
/**
|
||||
* Generated UID
|
||||
*/
|
||||
private static final long serialVersionUID = -7273879239726265322L;
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
private final Field<String> argument;
|
||||
private final Field<String> string;
|
||||
private final Field<String> characters;
|
||||
|
||||
RTrim(Field<String> argument) {
|
||||
this(argument, null);
|
||||
RTrim(
|
||||
Field string
|
||||
) {
|
||||
super(N_RTRIM, allNotNull(VARCHAR, string));
|
||||
|
||||
this.string = nullSafeNotNull(string, VARCHAR);
|
||||
this.characters = null;
|
||||
}
|
||||
|
||||
RTrim(Field<String> argument, Field<String> characters) {
|
||||
super(N_RTRIM, VARCHAR);
|
||||
RTrim(
|
||||
Field string,
|
||||
Field characters
|
||||
) {
|
||||
super(N_RTRIM, allNotNull(VARCHAR, string, characters));
|
||||
|
||||
this.argument = argument;
|
||||
this.characters = characters;
|
||||
this.string = nullSafeNotNull(string, VARCHAR);
|
||||
this.characters = nullSafeNotNull(characters, VARCHAR);
|
||||
}
|
||||
|
||||
// -------------------------------------------------------------------------
|
||||
// XXX: QueryPart API
|
||||
// -------------------------------------------------------------------------
|
||||
|
||||
|
||||
|
||||
@Override
|
||||
public final void accept(Context<?> ctx) {
|
||||
if (characters == null) {
|
||||
switch (ctx.family()) {
|
||||
case FIREBIRD:
|
||||
ctx.visit(N_TRIM).sql('(').visit(K_TRAILING).sql(' ').visit(K_FROM).sql(' ').visit(argument).sql(')');
|
||||
ctx.visit(N_TRIM).sql('(').visit(K_TRAILING).sql(' ').visit(K_FROM).sql(' ').visit(string).sql(')');
|
||||
break;
|
||||
|
||||
default:
|
||||
ctx.visit(N_RTRIM).sql('(').visit(argument).sql(')');
|
||||
ctx.visit(N_RTRIM).sql('(').visit(string).sql(')');
|
||||
break;
|
||||
}
|
||||
}
|
||||
@ -91,13 +111,15 @@ final class RTrim extends AbstractField<String> {
|
||||
|
||||
|
||||
case SQLITE:
|
||||
ctx.visit(N_RTRIM).sql('(').visit(argument).sql(", ").visit(characters).sql(')');
|
||||
ctx.visit(N_RTRIM).sql('(').visit(string).sql(", ").visit(characters).sql(')');
|
||||
break;
|
||||
|
||||
default:
|
||||
ctx.visit(N_TRIM).sql('(').visit(K_TRAILING).sql(' ').visit(characters).sql(' ').visit(K_FROM).sql(' ').visit(argument).sql(')');
|
||||
ctx.visit(N_TRIM).sql('(').visit(K_TRAILING).sql(' ').visit(characters).sql(' ').visit(K_FROM).sql(' ').visit(string).sql(')');
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@ -37,53 +37,64 @@
|
||||
*/
|
||||
package org.jooq.impl;
|
||||
|
||||
// ...
|
||||
// ...
|
||||
// ...
|
||||
import static org.jooq.SQLDialect.SQLITE;
|
||||
// ...
|
||||
// ...
|
||||
import static org.jooq.impl.Keywords.K_BOTH;
|
||||
import static org.jooq.impl.Keywords.K_FROM;
|
||||
import static org.jooq.impl.Names.N_TRIM;
|
||||
import static org.jooq.impl.SQLDataType.VARCHAR;
|
||||
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 java.util.Set;
|
||||
import org.jooq.*;
|
||||
import org.jooq.impl.*;
|
||||
|
||||
import org.jooq.Context;
|
||||
import org.jooq.Field;
|
||||
// ...
|
||||
import org.jooq.SQLDialect;
|
||||
import java.util.*;
|
||||
|
||||
/**
|
||||
* @author Lukas Eder
|
||||
* The <code>TRIM</code> statement.
|
||||
*/
|
||||
final class Trim extends AbstractField<String> {
|
||||
@SuppressWarnings({ "rawtypes", "unchecked", "unused" })
|
||||
final class Trim
|
||||
extends
|
||||
AbstractField<String>
|
||||
{
|
||||
|
||||
/**
|
||||
* Generated UID
|
||||
*/
|
||||
private static final long serialVersionUID = -7273879239726265322L;
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
private final Field<String> argument;
|
||||
private final Field<String> string;
|
||||
private final Field<String> characters;
|
||||
|
||||
Trim(Field<String> argument) {
|
||||
this(argument, null);
|
||||
Trim(
|
||||
Field string
|
||||
) {
|
||||
super(N_TRIM, allNotNull(VARCHAR, string));
|
||||
|
||||
this.string = nullSafeNotNull(string, VARCHAR);
|
||||
this.characters = null;
|
||||
}
|
||||
|
||||
Trim(Field<String> argument, Field<String> characters) {
|
||||
super(N_TRIM, VARCHAR);
|
||||
Trim(
|
||||
Field string,
|
||||
Field characters
|
||||
) {
|
||||
super(N_TRIM, allNotNull(VARCHAR, string, characters));
|
||||
|
||||
this.argument = argument;
|
||||
this.characters = characters;
|
||||
this.string = nullSafeNotNull(string, VARCHAR);
|
||||
this.characters = nullSafeNotNull(characters, VARCHAR);
|
||||
}
|
||||
|
||||
// -------------------------------------------------------------------------
|
||||
// XXX: QueryPart API
|
||||
// -------------------------------------------------------------------------
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@Override
|
||||
public final void accept(Context<?> ctx) {
|
||||
if (characters == null) {
|
||||
@ -92,15 +103,17 @@ final class Trim extends AbstractField<String> {
|
||||
|
||||
|
||||
|
||||
ctx.visit(N_TRIM).sql('(').visit(argument).sql(')');
|
||||
ctx.visit(N_TRIM).sql('(').visit(string).sql(')');
|
||||
}
|
||||
else if (ctx.family() == SQLITE)
|
||||
ctx.visit(N_TRIM).sql('(').visit(argument).sql(", ").visit(characters).sql(')');
|
||||
ctx.visit(N_TRIM).sql('(').visit(string).sql(", ").visit(characters).sql(')');
|
||||
|
||||
|
||||
|
||||
|
||||
else
|
||||
ctx.visit(N_TRIM).sql('(').visit(K_BOTH).sql(' ').visit(characters).sql(' ').visit(K_FROM).sql(' ').visit(argument).sql(')');
|
||||
ctx.visit(N_TRIM).sql('(').visit(K_BOTH).sql(' ').visit(characters).sql(' ').visit(K_FROM).sql(' ').visit(string).sql(')');
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user