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

leeonky / test-charm-java / 218

15 Apr 2025 02:45PM UTC coverage: 74.045% (-0.04%) from 74.088%
218

push

circleci

leeonky
Introduce adaptiveList

20 of 21 new or added lines in 3 files covered. (95.24%)

34 existing lines in 11 files now uncovered.

7968 of 10761 relevant lines covered (74.05%)

0.74 hits per line

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

98.08
/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
import com.github.leeonky.dal.runtime.RuntimeContextBuilder.DALRuntimeContext;
7

8
import java.util.Optional;
9

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

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

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

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

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

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

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

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

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

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