Hello forum, we currently encounter the following problem on Drools 5.1.1:
Evaluator 'matches' does not support type 'ValueType = 'Object' for the following rule: rule "Create_License" when StringCapability(name=="service", value=="service_v1") StringCapability(name=="data.modelCode", value matches "^5G1.*") then License license = new License(); license.setDuration("30 years"); license.setName("30Years"); license.setState(State.NOTACTIVATED); license.setType(Type.IMPLICIT); license.setWarn(false); insert(license); end StringCapability derives from a generic class and is defined as follows: public class StringCapability extends Capability <String> { public StringCapability(String name, String value) { super(name, value); } } whereas the superclass looks like this public abstract class Capability<T> { private final String name; private final T value; protected Capability(String name, T value) { this.name = name; this.value = value; } @Override public boolean equals(Object object) { if (this == object) { return true; } if (object == null) { return false; } if (getClass() != object.getClass()) { return false; } Capability <?> other = (Capability <?>) object; if (name == null) { if (other.name != null) { return false; } } else if (!name.equals(other.name)) { return false; } if (value == null) { if (other.value != null) { return false; } } else if (!value.equals(other.value)) { return false; } return true; } public String getName() { return name; } public T getValue() { return value; } @Override public int hashCode() { final int prime = 31; int result = 1; result = prime * result + getClass().hashCode(); result = prime * result + ((name == null) ? 0 : name.hashCode()); result = prime * result + ((value == null) ? 0 : value.hashCode()); return result; } @Override public String toString() { return new StringBuilder(getClass().getSimpleName()).append(" - name:").append(name).append(", value:") .append(String.valueOf(value)).toString(); } The problem occurs when the rule is supposed to be compiled on initialization of the knowledge base. So from my point of view, the value returned by class StringCapability is of type String. Why do I get this error? How can I workaround this problem without any code change (I just can provide another rule file) Any help appreciated! Thank you, CAK -- View this message in context: http://drools.46999.n3.nabble.com/Evaluator-matches-does-not-support-type-ValueType-Object-tp4021987.html Sent from the Drools: User forum mailing list archive at Nabble.com. _______________________________________________ rules-users mailing list rules-users@lists.jboss.org https://lists.jboss.org/mailman/listinfo/rules-users