Skip to content

Commit ddab487

Browse files
chore: prepare rule engine to work fine with new tracker importer (#48)
1 parent e7b0475 commit ddab487

16 files changed

Lines changed: 11 additions & 120 deletions

.github/workflows/main.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,4 +45,4 @@ jobs:
4545
nexus_username: ${{ secrets.nexus_username }}
4646
nexus_password: ${{ secrets.nexus_password }}
4747
env:
48-
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
48+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

pom.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66

77
<groupId>org.hisp.dhis.rules</groupId>
88
<artifactId>rule-engine</artifactId>
9-
<version>2.0.4-SNAPSHOT</version>
9+
<version>2.0.5-SNAPSHOT</version>
1010
<packaging>jar</packaging>
1111
<name>rule-engine</name>
1212

@@ -246,7 +246,7 @@
246246
<dependency>
247247
<groupId>org.hisp.dhis.parser</groupId>
248248
<artifactId>dhis-antlr-expression-parser</artifactId>
249-
<version>1.0.7-SNAPSHOT</version>
249+
<version>1.0.7</version>
250250
</dependency>
251251
</dependencies>
252252

src/main/java/org/hisp/dhis/rules/RuleEngine.java

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,6 @@ public Callable<List<RuleEffect>> evaluate( @Nonnull RuleEvent ruleEvent, @Nonnu
8383
.ruleEnrollment( ruleEnrollment )
8484
.triggerEnvironment( triggerEnvironment )
8585
.ruleEvents( ruleEvents )
86-
.calculatedValueMap( ruleEngineContext.calculatedValueMap() )
8786
.constantValueMap( ruleEngineContext.constantsValues() )
8887
.build();
8988

@@ -103,7 +102,6 @@ public Callable<List<RuleEffect>> evaluate( @Nonnull RuleEnrollment ruleEnrollme
103102
.ruleVariables( ruleEngineContext.ruleVariables() )
104103
.triggerEnvironment( triggerEnvironment )
105104
.ruleEvents( ruleEvents )
106-
.calculatedValueMap( ruleEngineContext.calculatedValueMap() )
107105
.constantValueMap( ruleEngineContext.constantsValues() )
108106
.build();
109107

src/main/java/org/hisp/dhis/rules/RuleEngineContext.java

Lines changed: 3 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -22,20 +22,15 @@ public final class RuleEngineContext
2222
@Nonnull
2323
private final Map<String, List<String>> supplementaryData;
2424

25-
@Nonnull
26-
private final Map<String, Map<String, String>> calculatedValueMap;
27-
2825
@Nonnull
2926
private final Map<String, String> constantsValues;
3027

3128
RuleEngineContext( @Nonnull List<Rule> rules, @Nonnull List<RuleVariable> ruleVariables,
32-
Map<String, List<String>> supplementaryData,
33-
Map<String, Map<String, String>> calculatedValueMap, Map<String, String> constantsValues )
29+
Map<String, List<String>> supplementaryData, Map<String, String> constantsValues )
3430
{
3531
this.rules = rules;
3632
this.ruleVariables = ruleVariables;
3733
this.supplementaryData = supplementaryData;
38-
this.calculatedValueMap = calculatedValueMap;
3934
this.constantsValues = constantsValues;
4035
}
4136

@@ -70,12 +65,6 @@ public Map<String, List<String>> supplementaryData()
7065
return supplementaryData;
7166
}
7267

73-
@Nonnull
74-
public Map<String, Map<String, String>> calculatedValueMap()
75-
{
76-
return calculatedValueMap;
77-
}
78-
7968
@Nonnull
8069
public Map<String, String> constantsValues()
8170
{
@@ -100,9 +89,6 @@ public static class Builder
10089
@Nullable
10190
private Map<String, List<String>> supplementaryData;
10291

103-
@Nullable
104-
private Map<String, Map<String, String>> calculatedValueMap;
105-
10692
@Nullable
10793
private Map<String, String> constantsValues;
10894

@@ -149,14 +135,9 @@ public Builder supplementaryData( Map<String, List<String>> supplementaryData )
149135
return this;
150136
}
151137

152-
@Nonnull
138+
@Deprecated
153139
public Builder calculatedValueMap( Map<String, Map<String, String>> calculatedValueMap )
154140
{
155-
if ( calculatedValueMap == null )
156-
{
157-
throw new IllegalArgumentException( "calculatedValueMap == null" );
158-
}
159-
this.calculatedValueMap = calculatedValueMap;
160141
return this;
161142
}
162143

@@ -184,8 +165,7 @@ public RuleEngineContext build()
184165
ruleVariables = unmodifiableList( new ArrayList<RuleVariable>() );
185166
}
186167

187-
return new RuleEngineContext( rules, ruleVariables, supplementaryData, calculatedValueMap,
188-
constantsValues );
168+
return new RuleEngineContext( rules, ruleVariables, supplementaryData, constantsValues );
189169
}
190170
}
191171
}

src/main/java/org/hisp/dhis/rules/RuleEngineExecution.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -160,6 +160,7 @@ private String process( String condition )
160160
{
161161
return "";
162162
}
163+
163164
CommonExpressionVisitor commonExpressionVisitor = CommonExpressionVisitor.newBuilder()
164165
.withFunctionMap( FUNCTIONS )
165166
.withVariablesMap( valueMap )

src/main/java/org/hisp/dhis/rules/RuleVariableValueMapBuilder.java

Lines changed: 0 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -54,9 +54,6 @@ public final class RuleVariableValueMapBuilder
5454
@Nonnull
5555
public final SimpleDateFormat dateFormat;
5656

57-
@Nonnull
58-
public final Map<String, Map<String, String>> calculatedValueMap;
59-
6057
@Nonnull
6158
private final Map<String, String> allConstantValues;
6259

@@ -82,7 +79,6 @@ private RuleVariableValueMapBuilder()
8279
// collections used for construction of resulting variable value map
8380
this.ruleVariables = new ArrayList<>();
8481
this.ruleEvents = new ArrayList<>();
85-
this.calculatedValueMap = new HashMap<>();
8682
this.allConstantValues = new HashMap<>();
8783
}
8884

@@ -159,13 +155,6 @@ RuleVariableValueMapBuilder ruleEvents( @Nonnull List<RuleEvent> ruleEvents )
159155
return this;
160156
}
161157

162-
@Nonnull
163-
RuleVariableValueMapBuilder calculatedValueMap( @Nonnull Map<String, Map<String, String>> calculatedValueMap )
164-
{
165-
this.calculatedValueMap.putAll( calculatedValueMap );
166-
return this;
167-
}
168-
169158
@Nonnull
170159
RuleVariableValueMapBuilder constantValueMap( @Nonnull Map<String, String> constantValues )
171160
{

src/main/java/org/hisp/dhis/rules/models/RuleActionHideOptionGroup.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ public abstract class RuleActionHideOptionGroup
1212

1313
@Nonnull
1414
public static RuleActionHideOptionGroup create(
15-
@Nullable String content, @Nonnull String optionGroup, @Nonnull String field )
15+
@Nullable String content, @Nonnull String optionGroup, @Nonnull String field )
1616
{
1717
return new AutoValue_RuleActionHideOptionGroup( "", content == null ? "" : content, optionGroup, field );
1818
}

src/main/java/org/hisp/dhis/rules/models/RuleActionMessage.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
import javax.annotation.Nonnull;
44

5-
abstract class RuleActionMessage
5+
public abstract class RuleActionMessage
66
extends RuleAction
77
{
88

src/main/java/org/hisp/dhis/rules/models/RuleVariableCalculatedValue.java

Lines changed: 1 addition & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -69,32 +69,8 @@ public Map<String, RuleVariableValue> createValues( RuleVariableValueMapBuilder
6969
Map<String, RuleDataValue> currentEventValues )
7070
{
7171
Map<String, RuleVariableValue> valueMap = Maps.newHashMap();
72-
if ( builder.ruleEnrollment == null )
73-
{
74-
return valueMap;
75-
}
7672

77-
RuleVariableValue variableValue;
78-
if ( builder.calculatedValueMap.containsKey( builder.ruleEnrollment.enrollment() ) )
79-
{
80-
if ( builder.calculatedValueMap.get( builder.ruleEnrollment.enrollment() ).containsKey( this.name() ) )
81-
{
82-
String value = builder.calculatedValueMap.get( builder.ruleEnrollment.enrollment() ).get( this.name() );
83-
84-
variableValue = RuleVariableValue.create( value, this.calculatedValueType(),
85-
Arrays.asList( value ), dateFormat.format( new Date() ) );
86-
}
87-
else
88-
{
89-
variableValue = RuleVariableValue.create( this.calculatedValueType() );
90-
}
91-
}
92-
else
93-
{
94-
variableValue = RuleVariableValue.create( this.calculatedValueType() );
95-
}
96-
97-
valueMap.put( this.name(), variableValue );
73+
valueMap.put( this.name(), RuleVariableValue.create( this.calculatedValueType() ) );
9874
return valueMap;
9975
}
10076
}

src/test/java/org/hisp/dhis/rules/ConstantsValueTests.java

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,6 @@ public void shouldThrowExceptionIfConstantsValueMapIsNull()
5454
.rules( Arrays.asList( mock( org.hisp.dhis.rules.models.Rule.class ) ) )
5555
.ruleVariables( Arrays.asList( mock( RuleVariable.class ) ) )
5656
.supplementaryData( new HashMap<String, List<String>>() )
57-
.calculatedValueMap( new HashMap<String, Map<String, String>>() )
5857
.constantsValue( null )
5958
.build();
6059

@@ -202,7 +201,6 @@ private RuleEngine.Builder getRuleEngine( List<Rule> rules,
202201
.builder()
203202
.rules( rules )
204203
.ruleVariables( Arrays.<RuleVariable>asList() )
205-
.calculatedValueMap( new HashMap<String, Map<String, String>>() )
206204
.supplementaryData( new HashMap<String, List<String>>() )
207205
.constantsValue( constantsValueMap )
208206
.build().toEngineBuilder().triggerEnvironment( TriggerEnvironment.SERVER );

0 commit comments

Comments
 (0)