Skip to content

Commit caf5b4a

Browse files
authored
#87: Added BigDecimal literal (#88)
## Features / Enhancements * #87: Added BigDecimal literal
1 parent be1c948 commit caf5b4a

22 files changed

+108
-17
lines changed

doc/changes/changelog.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,4 @@
11
# Changes
22

3+
* [4.1.0](changes-4.1.0.md)
34
* [4.0.0](changes-4.0.0.md)

doc/changes/changes-4.1.0.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
# SQL Statement Builder 4.1.0, released 2020-08-11
2+
3+
## Features / Enhancements
4+
5+
* #87: Added BigDecimal literal

doc/design.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -48,13 +48,13 @@ Needs: impl, utest
4848
Tags: Select Statement Builder
4949

5050
### Using Literal Values
51-
`dsn~literal-values~1`
51+
`dsn~literal-values~2`
5252

5353
Forwarded from requirements.
5454

5555
Covers:
5656

57-
* `req~literal-values~1`
57+
* `req~literal-values~2`
5858

5959
Needs: impl, utest
6060

doc/system_requirements.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -188,9 +188,9 @@ Covers:
188188
Needs: dsn
189189

190190
#### Literal Values
191-
`req~literal-values~1`
191+
`req~literal-values~2`
192192

193-
ESB supports the following literal values: `default`, `double`, `float`, `integer`, `long`, `null`, `string`.
193+
ESB supports the following literal values: `default`, `double`, `float`, `integer`, `long`, `null`, `string`, `BigDecimal`.
194194

195195
Covers:
196196

pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
<modelVersion>4.0.0</modelVersion>
55
<groupId>com.exasol</groupId>
66
<artifactId>sql-statement-builder</artifactId>
7-
<version>4.0.0</version>
7+
<version>4.1.0</version>
88
<name>Exasol SQL Statement Builder</name>
99
<description>This module provides a Builder for SQL statements that helps creating the correct structure and
1010
validates variable parts of the statements.
Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
package com.exasol.sql.expression;
2+
3+
import java.math.BigDecimal;
4+
5+
/**
6+
* This class represents BigDecimal literals.
7+
*/
8+
// [impl->dsn~literal-values~2]
9+
public class BigDecimalLiteral extends AbstractValueExpression {
10+
private final BigDecimal literal;
11+
12+
private BigDecimalLiteral(BigDecimal literal) {
13+
this.literal = literal;
14+
}
15+
16+
/**
17+
* Create a new {@link BigDecimalLiteral} from a BigDecimal.
18+
*
19+
* @param literal content
20+
* @return new {@link StringLiteral}
21+
*/
22+
public static BigDecimalLiteral of(BigDecimal literal) {
23+
return new BigDecimalLiteral(literal);
24+
}
25+
26+
/**
27+
* Get the value of the {@link BigDecimalLiteral}.
28+
*
29+
* @return BigDecimal value
30+
*/
31+
public BigDecimal getValue() {
32+
return literal;
33+
}
34+
35+
@Override
36+
public void accept(ValueExpressionVisitor visitor) {
37+
visitor.visit(this);
38+
}
39+
40+
@Override
41+
public String toString() {
42+
return literal.toString();
43+
}
44+
}

src/main/java/com/exasol/sql/expression/DefaultValue.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
* This is for example used in updates embedded into {@code MERGE} statements.
88
* </p>
99
*/
10-
// [impl->dsn~literal-values~1]
10+
// [impl->dsn~literal-values~2]
1111
public final class DefaultValue extends AbstractValueExpression {
1212
private static final DefaultValue instance = new DefaultValue();
1313

src/main/java/com/exasol/sql/expression/DoubleLiteral.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
/**
44
* This class represents double literals.
55
*/
6-
// [impl->dsn~literal-values~1]
6+
// [impl->dsn~literal-values~2]
77
public class DoubleLiteral extends AbstractValueExpression {
88
private final double value;
99

src/main/java/com/exasol/sql/expression/FloatLiteral.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
/**
44
* This class represents float literals.
55
*/
6-
// [impl->dsn~literal-values~1]
6+
// [impl->dsn~literal-values~2]
77
public class FloatLiteral extends AbstractValueExpression {
88
private final float value;
99

src/main/java/com/exasol/sql/expression/IntegerLiteral.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
/**
44
* This class represents integer literals.
55
*/
6-
// [impl->dsn~literal-values~1]
6+
// [impl->dsn~literal-values~2]
77
public final class IntegerLiteral extends AbstractValueExpression {
88
private final int value;
99

0 commit comments

Comments
 (0)