Skip to content

Commit 5768941

Browse files
authored
Merge pull request #344 from jeffgbutler/functions-and-conditions-generic
Relax generic constraints on built-in functions
2 parents cc81895 + 3b3611c commit 5768941

File tree

8 files changed

+48
-48
lines changed

8 files changed

+48
-48
lines changed

src/main/java/org/mybatis/dynamic/sql/SqlBuilder.java

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -354,22 +354,22 @@ static StringConstant stringConstant(String constant) {
354354
}
355355

356356
// functions
357-
static <T extends Number> Add<T> add(BindableColumn<T> firstColumn, BasicColumn secondColumn,
357+
static <T> Add<T> add(BindableColumn<T> firstColumn, BasicColumn secondColumn,
358358
BasicColumn... subsequentColumns) {
359359
return Add.of(firstColumn, secondColumn, subsequentColumns);
360360
}
361361

362-
static <T extends Number> Divide<T> divide(BindableColumn<T> firstColumn, BasicColumn secondColumn,
362+
static <T> Divide<T> divide(BindableColumn<T> firstColumn, BasicColumn secondColumn,
363363
BasicColumn... subsequentColumns) {
364364
return Divide.of(firstColumn, secondColumn, subsequentColumns);
365365
}
366366

367-
static <T extends Number> Multiply<T> multiply(BindableColumn<T> firstColumn, BasicColumn secondColumn,
367+
static <T> Multiply<T> multiply(BindableColumn<T> firstColumn, BasicColumn secondColumn,
368368
BasicColumn... subsequentColumns) {
369369
return Multiply.of(firstColumn, secondColumn, subsequentColumns);
370370
}
371371

372-
static <T extends Number> Subtract<T> subtract(BindableColumn<T> firstColumn, BasicColumn secondColumn,
372+
static <T> Subtract<T> subtract(BindableColumn<T> firstColumn, BasicColumn secondColumn,
373373
BasicColumn... subsequentColumns) {
374374
return Subtract.of(firstColumn, secondColumn, subsequentColumns);
375375
}
@@ -384,15 +384,15 @@ static <T> OperatorFunction<T> applyOperator(String operator, BindableColumn<T>
384384
return OperatorFunction.of(operator, firstColumn, secondColumn, subsequentColumns);
385385
}
386386

387-
static Lower lower(BindableColumn<String> column) {
387+
static <T> Lower<T> lower(BindableColumn<T> column) {
388388
return Lower.of(column);
389389
}
390390

391-
static Substring substring(BindableColumn<String> column, int offset, int length) {
391+
static <T> Substring<T> substring(BindableColumn<T> column, int offset, int length) {
392392
return Substring.of(column, offset, length);
393393
}
394394

395-
static Upper upper(BindableColumn<String> column) {
395+
static <T> Upper<T> upper(BindableColumn<T> column) {
396396
return Upper.of(column);
397397
}
398398

src/main/java/org/mybatis/dynamic/sql/select/function/Add.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright 2016-2020 the original author or authors.
2+
* Copyright 2016-2021 the original author or authors.
33
*
44
* Licensed under the Apache License, Version 2.0 (the "License");
55
* you may not use this file except in compliance with the License.
@@ -21,7 +21,7 @@
2121
import org.mybatis.dynamic.sql.BasicColumn;
2222
import org.mybatis.dynamic.sql.BindableColumn;
2323

24-
public class Add<T extends Number> extends OperatorFunction<T> {
24+
public class Add<T> extends OperatorFunction<T> {
2525

2626
private Add(BindableColumn<T> firstColumn, BasicColumn secondColumn,
2727
List<BasicColumn> subsequentColumns) {
@@ -33,12 +33,12 @@ protected Add<T> copy() {
3333
return new Add<>(column, secondColumn, subsequentColumns);
3434
}
3535

36-
public static <T extends Number> Add<T> of(BindableColumn<T> firstColumn, BasicColumn secondColumn,
37-
BasicColumn... subsequentColumns) {
36+
public static <T> Add<T> of(BindableColumn<T> firstColumn, BasicColumn secondColumn,
37+
BasicColumn... subsequentColumns) {
3838
return of(firstColumn, secondColumn, Arrays.asList(subsequentColumns));
3939
}
4040

41-
public static <T extends Number> Add<T> of(BindableColumn<T> firstColumn, BasicColumn secondColumn,
41+
public static <T> Add<T> of(BindableColumn<T> firstColumn, BasicColumn secondColumn,
4242
List<BasicColumn> subsequentColumns) {
4343
return new Add<>(firstColumn, secondColumn, subsequentColumns);
4444
}

src/main/java/org/mybatis/dynamic/sql/select/function/Divide.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright 2016-2020 the original author or authors.
2+
* Copyright 2016-2021 the original author or authors.
33
*
44
* Licensed under the Apache License, Version 2.0 (the "License");
55
* you may not use this file except in compliance with the License.
@@ -21,7 +21,7 @@
2121
import org.mybatis.dynamic.sql.BasicColumn;
2222
import org.mybatis.dynamic.sql.BindableColumn;
2323

24-
public class Divide<T extends Number> extends OperatorFunction<T> {
24+
public class Divide<T> extends OperatorFunction<T> {
2525

2626
private Divide(BindableColumn<T> firstColumn, BasicColumn secondColumn,
2727
List<BasicColumn> subsequentColumns) {
@@ -33,12 +33,12 @@ protected Divide<T> copy() {
3333
return new Divide<>(column, secondColumn, subsequentColumns);
3434
}
3535

36-
public static <T extends Number> Divide<T> of(BindableColumn<T> firstColumn, BasicColumn secondColumn,
37-
BasicColumn... subsequentColumns) {
36+
public static <T> Divide<T> of(BindableColumn<T> firstColumn, BasicColumn secondColumn,
37+
BasicColumn... subsequentColumns) {
3838
return of(firstColumn, secondColumn, Arrays.asList(subsequentColumns));
3939
}
4040

41-
public static <T extends Number> Divide<T> of(BindableColumn<T> firstColumn, BasicColumn secondColumn,
41+
public static <T> Divide<T> of(BindableColumn<T> firstColumn, BasicColumn secondColumn,
4242
List<BasicColumn> subsequentColumns) {
4343
return new Divide<>(firstColumn, secondColumn, subsequentColumns);
4444
}

src/main/java/org/mybatis/dynamic/sql/select/function/Lower.java

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright 2016-2020 the original author or authors.
2+
* Copyright 2016-2021 the original author or authors.
33
*
44
* Licensed under the Apache License, Version 2.0 (the "License");
55
* you may not use this file except in compliance with the License.
@@ -18,9 +18,9 @@
1818
import org.mybatis.dynamic.sql.BindableColumn;
1919
import org.mybatis.dynamic.sql.render.TableAliasCalculator;
2020

21-
public class Lower extends AbstractUniTypeFunction<String, Lower> {
21+
public class Lower<T> extends AbstractUniTypeFunction<T, Lower<T>> {
2222

23-
private Lower(BindableColumn<String> column) {
23+
private Lower(BindableColumn<T> column) {
2424
super(column);
2525
}
2626

@@ -32,11 +32,11 @@ public String renderWithTableAlias(TableAliasCalculator tableAliasCalculator) {
3232
}
3333

3434
@Override
35-
protected Lower copy() {
36-
return new Lower(column);
35+
protected Lower<T> copy() {
36+
return new Lower<>(column);
3737
}
3838

39-
public static Lower of(BindableColumn<String> column) {
40-
return new Lower(column);
39+
public static <T> Lower<T> of(BindableColumn<T> column) {
40+
return new Lower<>(column);
4141
}
4242
}

src/main/java/org/mybatis/dynamic/sql/select/function/Multiply.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright 2016-2020 the original author or authors.
2+
* Copyright 2016-2021 the original author or authors.
33
*
44
* Licensed under the Apache License, Version 2.0 (the "License");
55
* you may not use this file except in compliance with the License.
@@ -21,7 +21,7 @@
2121
import org.mybatis.dynamic.sql.BasicColumn;
2222
import org.mybatis.dynamic.sql.BindableColumn;
2323

24-
public class Multiply<T extends Number> extends OperatorFunction<T> {
24+
public class Multiply<T> extends OperatorFunction<T> {
2525

2626
private Multiply(BindableColumn<T> firstColumn, BasicColumn secondColumn,
2727
List<BasicColumn> subsequentColumns) {
@@ -33,12 +33,12 @@ protected Multiply<T> copy() {
3333
return new Multiply<>(column, secondColumn, subsequentColumns);
3434
}
3535

36-
public static <T extends Number> Multiply<T> of(BindableColumn<T> firstColumn, BasicColumn secondColumn,
37-
BasicColumn... subsequentColumns) {
36+
public static <T> Multiply<T> of(BindableColumn<T> firstColumn, BasicColumn secondColumn,
37+
BasicColumn... subsequentColumns) {
3838
return of(firstColumn, secondColumn, Arrays.asList(subsequentColumns));
3939
}
4040

41-
public static <T extends Number> Multiply<T> of(BindableColumn<T> firstColumn, BasicColumn secondColumn,
41+
public static <T> Multiply<T> of(BindableColumn<T> firstColumn, BasicColumn secondColumn,
4242
List<BasicColumn> subsequentColumns) {
4343
return new Multiply<>(firstColumn, secondColumn, subsequentColumns);
4444
}

src/main/java/org/mybatis/dynamic/sql/select/function/Substring.java

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright 2016-2020 the original author or authors.
2+
* Copyright 2016-2021 the original author or authors.
33
*
44
* Licensed under the Apache License, Version 2.0 (the "License");
55
* you may not use this file except in compliance with the License.
@@ -18,12 +18,12 @@
1818
import org.mybatis.dynamic.sql.BindableColumn;
1919
import org.mybatis.dynamic.sql.render.TableAliasCalculator;
2020

21-
public class Substring extends AbstractUniTypeFunction<String, Substring> {
21+
public class Substring<T> extends AbstractUniTypeFunction<T, Substring<T>> {
2222

2323
private final int offset;
2424
private final int length;
2525

26-
private Substring(BindableColumn<String> column, int offset, int length) {
26+
private Substring(BindableColumn<T> column, int offset, int length) {
2727
super(column);
2828
this.offset = offset;
2929
this.length = length;
@@ -41,11 +41,11 @@ public String renderWithTableAlias(TableAliasCalculator tableAliasCalculator) {
4141
}
4242

4343
@Override
44-
protected Substring copy() {
45-
return new Substring(column, offset, length);
44+
protected Substring<T> copy() {
45+
return new Substring<>(column, offset, length);
4646
}
4747

48-
public static Substring of(BindableColumn<String> column, int offset, int length) {
49-
return new Substring(column, offset, length);
48+
public static <T> Substring<T> of(BindableColumn<T> column, int offset, int length) {
49+
return new Substring<>(column, offset, length);
5050
}
5151
}

src/main/java/org/mybatis/dynamic/sql/select/function/Subtract.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright 2016-2020 the original author or authors.
2+
* Copyright 2016-2021 the original author or authors.
33
*
44
* Licensed under the Apache License, Version 2.0 (the "License");
55
* you may not use this file except in compliance with the License.
@@ -21,7 +21,7 @@
2121
import org.mybatis.dynamic.sql.BasicColumn;
2222
import org.mybatis.dynamic.sql.BindableColumn;
2323

24-
public class Subtract<T extends Number> extends OperatorFunction<T> {
24+
public class Subtract<T> extends OperatorFunction<T> {
2525

2626
private Subtract(BindableColumn<T> firstColumn, BasicColumn secondColumn,
2727
List<BasicColumn> subsequentColumns) {
@@ -33,13 +33,13 @@ protected Subtract<T> copy() {
3333
return new Subtract<>(column, secondColumn, subsequentColumns);
3434
}
3535

36-
public static <T extends Number> Subtract<T> of(BindableColumn<T> firstColumn, BasicColumn secondColumn,
36+
public static <T> Subtract<T> of(BindableColumn<T> firstColumn, BasicColumn secondColumn,
3737
BasicColumn... subsequentColumns) {
3838
return of(firstColumn, secondColumn, Arrays.asList(subsequentColumns));
3939
}
4040

41-
public static <T extends Number> Subtract<T> of(BindableColumn<T> firstColumn, BasicColumn secondColumn,
42-
List<BasicColumn> subsequentColumns) {
41+
public static <T> Subtract<T> of(BindableColumn<T> firstColumn, BasicColumn secondColumn,
42+
List<BasicColumn> subsequentColumns) {
4343
return new Subtract<>(firstColumn, secondColumn, subsequentColumns);
4444
}
4545
}

src/main/java/org/mybatis/dynamic/sql/select/function/Upper.java

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright 2016-2020 the original author or authors.
2+
* Copyright 2016-2021 the original author or authors.
33
*
44
* Licensed under the Apache License, Version 2.0 (the "License");
55
* you may not use this file except in compliance with the License.
@@ -18,9 +18,9 @@
1818
import org.mybatis.dynamic.sql.BindableColumn;
1919
import org.mybatis.dynamic.sql.render.TableAliasCalculator;
2020

21-
public class Upper extends AbstractUniTypeFunction<String, Upper> {
21+
public class Upper<T> extends AbstractUniTypeFunction<T, Upper<T>> {
2222

23-
private Upper(BindableColumn<String> column) {
23+
private Upper(BindableColumn<T> column) {
2424
super(column);
2525
}
2626

@@ -32,11 +32,11 @@ public String renderWithTableAlias(TableAliasCalculator tableAliasCalculator) {
3232
}
3333

3434
@Override
35-
protected Upper copy() {
36-
return new Upper(column);
35+
protected Upper<T> copy() {
36+
return new Upper<>(column);
3737
}
3838

39-
public static Upper of(BindableColumn<String> column) {
40-
return new Upper(column);
39+
public static <T> Upper<T> of(BindableColumn<T> column) {
40+
return new Upper<>(column);
4141
}
4242
}

0 commit comments

Comments
 (0)