Skip to content

Commit

Permalink
Expose the variable names on the VariableContainer
Browse files Browse the repository at this point in the history
  • Loading branch information
filiphr committed Jan 20, 2025
1 parent 10bee31 commit d96d588
Show file tree
Hide file tree
Showing 7 changed files with 61 additions and 0 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;
import java.util.StringJoiner;

import org.flowable.cmmn.api.delegate.DelegatePlanItemInstance;
Expand Down Expand Up @@ -284,6 +285,11 @@ public String getTenantId() {
return tenantId;
}

@Override
public Set<String> getVariableNames() {
return variables.keySet();
}

@Override
public Map<String, Object> getPlanItemInstanceLocalVariables() {
return localVariables;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,9 @@
*/
package org.flowable.common.engine.api.variable;

import java.util.Collections;
import java.util.Set;

/**
* @author Arthur Hupka-Merle
*/
Expand Down Expand Up @@ -43,4 +46,9 @@ public void setTransientVariable(String variableName, Object variableValue) {
public String getTenantId() {
return null;
}

@Override
public Set<String> getVariableNames() {
return Collections.emptySet();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,8 @@
*/
package org.flowable.common.engine.api.variable;

import java.util.Set;

/**
* @author Joram Barrez
*/
Expand All @@ -34,4 +36,6 @@ public static VariableContainer empty(){

String getTenantId();

Set<String> getVariableNames();

}
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,11 @@
*/
package org.flowable.common.engine.impl.el;

import java.util.Collection;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.StringJoiner;

import org.flowable.common.engine.api.variable.VariableContainer;
Expand Down Expand Up @@ -79,6 +82,11 @@ public void setTenantId(String tenantId) {
this.tenantId = tenantId;
}

@Override
public Set<String> getVariableNames() {
return variables.keySet();
}

@Override
public String toString() {
return new StringJoiner(", ", getClass().getSimpleName() + "[", "]")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,9 @@
package org.flowable.common.engine.impl.variable;

import java.util.HashMap;
import java.util.LinkedHashSet;
import java.util.Map;
import java.util.Set;
import java.util.StringJoiner;

import org.flowable.common.engine.api.variable.VariableContainer;
Expand Down Expand Up @@ -147,6 +149,19 @@ public String getTenantId() {
return this.delegate.getTenantId();
}

@Override
public Set<String> getVariableNames() {
if (delegate == null || delegate == VariableContainer.empty()) {
return this.transientVariables.keySet();
}
if (transientVariables.isEmpty()) {
return delegate.getVariableNames();
}
Set<String> keys = new LinkedHashSet<>(delegate.getVariableNames());
keys.addAll(transientVariables.keySet());
return keys;
}

@Override
public String toString() {
return new StringJoiner(", ", getClass().getSimpleName() + "[", "]")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@
import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;
import java.util.LinkedHashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
Expand Down Expand Up @@ -623,6 +624,19 @@ public String getTenantId() {
return tenantId;
}

@Override
public Set<String> getVariableNames() {
if (additionalDataContainer == null) {
return Set.of(ERROR_CODE_VARIABLE_NAME, ERROR_VARIABLE_NAME, ERROR_MESSAGE_VARIABLE_NAME);
}

Set<String> variableKeys = new LinkedHashSet<>(additionalDataContainer.getVariableNames());
variableKeys.add(ERROR_CODE_VARIABLE_NAME);
variableKeys.add(ERROR_VARIABLE_NAME);
variableKeys.add(ERROR_MESSAGE_VARIABLE_NAME);
return variableKeys;
}

@Override
public String toString() {
return new StringJoiner(", ", getClass().getSimpleName() + "[", "]")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@

import java.util.HashMap;
import java.util.Map;
import java.util.Set;
import java.util.StringJoiner;

import org.flowable.bpmn.model.FlowElement;
Expand Down Expand Up @@ -174,6 +175,11 @@ public boolean hasVariable(String variableName) {
return variables.containsKey(variableName);
}

@Override
public Set<String> getVariableNames() {
return variables.keySet();
}

@Override
public String toString() {
return new StringJoiner(", ", getClass().getSimpleName() + "[", "]")
Expand Down

0 comments on commit d96d588

Please sign in to comment.