• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

torand / FasterSQL / 13316818541

13 Feb 2025 08:49PM UTC coverage: 56.762%. First build
13316818541

Pull #8

github

web-flow
Merge a7d313d14 into 1f252c094
Pull Request #8: feat: misc additions

143 of 336 branches covered (42.56%)

Branch coverage included in aggregate %.

97 of 171 new or added lines in 34 files covered. (56.73%)

772 of 1276 relevant lines covered (60.5%)

3.21 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

0.0
/src/main/java/io/github/torand/fastersql/expression/arithmetic/Division.java
1
package io.github.torand.fastersql.expression.arithmetic;
2

3
import io.github.torand.fastersql.Context;
4
import io.github.torand.fastersql.Field;
5
import io.github.torand.fastersql.expression.Expression;
6
import io.github.torand.fastersql.projection.Projection;
7

8
import java.util.Random;
9
import java.util.stream.Stream;
10

11
import static io.github.torand.fastersql.util.contract.Requires.requireNonBlank;
12
import static java.util.Objects.nonNull;
13
import static java.util.Objects.requireNonNull;
14

15
public class Division implements Expression {
16
    private final Expression left;
17
    private final Expression right;
18
    private final String alias;
19

NEW
20
    Division(Expression left, Expression right, String alias) {
×
21
        this.left = requireNonNull(left, "No left operand specified");
×
22
        this.right = requireNonNull(right, "No right operand specified");
×
23
        this.alias = nonNull(alias) ? alias : defaultAlias();
×
24
    }
×
25

26
    // Sql
27

28
    @Override
29
    public String sql(Context context) {
NEW
30
        String leftSql = left.sql(context);
×
NEW
31
        if (left instanceof Addition || left instanceof Subtraction) {
×
NEW
32
            leftSql = "(" + leftSql + ")";
×
33
        }
34

NEW
35
        String rightSql = right.sql(context);
×
NEW
36
        if (right instanceof Addition || right instanceof Subtraction) {
×
NEW
37
            rightSql = "(" + rightSql + ")";
×
38
        }
39

NEW
40
        return leftSql + " / " + rightSql;
×
41
    }
42

43
    @Override
44
    public Stream<Object> params(Context context) {
45
        return Stream.concat(left.params(context), right.params(context));
×
46
    }
47

48
    // Projection
49

50
    @Override
51
    public Projection as(String alias) {
52
        requireNonBlank(alias, "No alias specified");
×
NEW
53
        return new Division(left, right, alias);
×
54
    }
55

56
    @Override
57
    public String alias() {
58
        return alias;
×
59
    }
60

61
    // Expression
62

63
    @Override
64
    public Stream<Field> fieldRefs() {
65
        return Stream.concat(left.fieldRefs(), right.fieldRefs());
×
66
    }
67

68
    private String defaultAlias() {
69
        return "DIVIDE_" + (new Random().nextInt(999) + 1);
×
70
    }
71
}
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc