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

leeonky / test-charm-java / 212

14 Apr 2025 05:15AM UTC coverage: 74.088% (-0.1%) from 74.209%
212

push

circleci

leeonky
Update version

7957 of 10740 relevant lines covered (74.09%)

0.74 hits per line

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

98.11
/jfactory-property-value/src/main/java/com/github/leeonky/jfactory/helper/DALHelper.java
1
package com.github.leeonky.jfactory.helper;
2

3
import com.github.leeonky.dal.DAL;
4
import com.github.leeonky.dal.ast.opt.DALOperator;
5
import com.github.leeonky.dal.runtime.*;
6

7
import java.util.Optional;
8

9
import static com.github.leeonky.jfactory.helper.ObjectReference.RawType.*;
10
import static java.util.Optional.of;
11

12
public class DALHelper {
1✔
13
    public DAL dal() {
14
        DAL dal = new DAL("JFactory").extend();
1✔
15
        overrideOptEqual(dal);
1✔
16
        overrideOptMatch(dal);
1✔
17
        implementListElementAssignment(dal);
1✔
18
        implementTraitSpec(dal);
1✔
19
        implementForceCreation(dal);
1✔
20

21
        dal.getRuntimeContextBuilder().registerDumper(ObjectReference.class, _ignore -> (data, dumpingBuffer) ->
1✔
22
                dumpingBuffer.dump(data.getValue("value")));
×
23
        return dal;
1✔
24
    }
25

26
    private void implementForceCreation(DAL dal) {
27
        dal.getRuntimeContextBuilder().registerExclamation(ObjectReference.class, runtimeData -> {
1✔
28
            ((ObjectReference) runtimeData.data().instance()).intently();
1✔
29
            return runtimeData.data();
1✔
30
        });
31
    }
1✔
32

33
    private void implementTraitSpec(DAL dal) {
34
        dal.getRuntimeContextBuilder().registerDataRemark(ObjectReference.class, remarkData -> {
1✔
35
            ((ObjectReference) remarkData.data().instance()).addTraitSpec(remarkData.remark());
1✔
36
            return remarkData.data();
1✔
37
        });
38
    }
1✔
39

40
    private void implementListElementAssignment(DAL dal) {
41
        dal.getRuntimeContextBuilder().registerDALCollectionFactory(ObjectReference.class, reference ->
1✔
42
                new InfiniteDALCollection<ObjectReference>(ObjectReference::new) {
1✔
43
                    @Override
44
                    protected ObjectReference getByPosition(int position) {
45
                        return reference.getElement(position);
1✔
46
                    }
47
                });
48
    }
1✔
49

50
    private void overrideOptMatch(DAL dal) {
51
        dal.getRuntimeContextBuilder().registerOperator(Operators.MATCH, new Operation() {
1✔
52
            @Override
53
            public boolean match(Data v1, DALOperator operator, Data v2, RuntimeContextBuilder.DALRuntimeContext context) {
54
                return v1.instanceOf(ObjectReference.class) && v2.instanceOf(ExpectationFactory.class);
1✔
55
            }
56

57
            @Override
58
            public Data operateData(Data v1, DALOperator operator, Data v2, RuntimeContextBuilder.DALRuntimeContext context) {
59
                ExpectationFactory.Expectation expectation = ((ExpectationFactory) v2.instance()).create(operator, v1);
1✔
60
                ExpectationFactory.Type type = expectation.type();
1✔
61
                if (type == ExpectationFactory.Type.OBJECT)
1✔
62
                    ((ObjectReference) v1.instance()).rawType(OBJECT);
1✔
63
                else if (type == ExpectationFactory.Type.LIST)
1✔
64
                    ((ObjectReference) v1.instance()).rawType(LIST);
1✔
65
                return expectation.matches();
1✔
66
            }
67
        });
68
        dal.getRuntimeContextBuilder().checkerSetForMatching()
1✔
69
                .register((expected, actual) -> {
1✔
70
                    if (actual.instanceOf(LegacyTraitSetter.class))
1✔
71
                        return of(new OverrideVerificationOptChecker<>(LegacyTraitSetter::addTraitSpec));
1✔
72
                    return actual.instanceOf(ObjectReference.class)
1✔
73
                            ? of(new OverrideVerificationOptChecker<>(ObjectReference::setValue)) : Optional.empty();
1✔
74
                });
75
    }
1✔
76

77
    private void overrideOptEqual(DAL dal) {
78
        dal.getRuntimeContextBuilder().registerOperator(Operators.EQUAL, new Operation() {
1✔
79
            @Override
80
            public boolean match(Data v1, DALOperator operator, Data v2, RuntimeContextBuilder.DALRuntimeContext context) {
81
                return v1.instanceOf(ObjectReference.class) && v2.instanceOf(ExpectationFactory.class);
1✔
82
            }
83

84
            @Override
85
            public Data operateData(Data v1, DALOperator operator, Data v2, RuntimeContextBuilder.DALRuntimeContext context) {
86
                ExpectationFactory.Expectation expectation = ((ExpectationFactory) v2.instance()).create(operator, v1);
1✔
87
                ExpectationFactory.Type type = expectation.type();
1✔
88
                ObjectReference objectReference = (ObjectReference) v1.instance();
1✔
89
                if (type == ExpectationFactory.Type.OBJECT)
1✔
90
                    objectReference.rawType(RAW_OBJECT);
1✔
91
                else if (type == ExpectationFactory.Type.LIST)
1✔
92
                    objectReference.rawType(RAW_LIST);
1✔
93
                objectReference.clear();
1✔
94
                return expectation.equalTo();
1✔
95
            }
96
        });
97
        dal.getRuntimeContextBuilder().checkerSetForEqualing()
1✔
98
                .register((expected, actual) -> actual.instanceOf(ObjectReference.class)
1✔
99
                        ? of(new OverrideVerificationOptChecker<>(ObjectReference::setValue)) : Optional.empty());
1✔
100
    }
1✔
101
}
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