[rules-users] SlidingTimeWindow$BehaviorExpireWMAction
Andre
morpheusandre at web.de
Wed Jul 13 07:15:38 EDT 2011
the functions should do it ,..
which spec are you speaking of ?
public void accumulate(Serializable context , Object request) {
List<ResourceMatch> counts = (List<ResourceMatch>) context;
RequestCtx xacml = (RequestCtx) request;
for (Iterator<Attribute> iterator = xacml.getResourceAsList().iterator();
iterator.hasNext();) {
Attribute resource = (Attribute) iterator.next();
if (counts.size() == 0 &&
resource.getId().toString().equalsIgnoreCase("urn:oasis:names:tc:xacml:1.0:resource:resource-id"))
{
try {
counts.add(new ResourceMatch(new
URI(DroolsUtils.getAttributeIDValue(resource)),0));
} catch (URISyntaxException e) {
// shouldnt appear cause the method from DroolsUtils has casted the
returning String from an URI!
e.printStackTrace();
}
}
for (int i = 0; i < counts.size(); i++) {
ResourceMatch resourcematch = counts.get(i);
try {
if (resourcematch.matches(new
URI(DroolsUtils.getAttributeIDValue(resource)))
&&
resource.getId().toString().equalsIgnoreCase("urn:oasis:names:tc:xacml:1.0:resource:resource-id")
) {
resourcematch.increment();
}else if (counts.size() == i-1 &&
resource.getId().toString().equalsIgnoreCase("urn:oasis:names:tc:xacml:1.0:resource:resource-id"))
{
counts.add(new ResourceMatch(new
URI(DroolsUtils.getAttributeIDValue(resource)),1));
}
} catch (URISyntaxException e) {
// shouldnt appear cause the method from DroolsUtils has casted the
returning String from an URI!
e.printStackTrace();
}
}
}
}
/* (non-Javadoc)
* @see
org.drools.runtime.rule.AccumulateFunction#reverse(java.io.Serializable,
java.lang.Object)
*/
public void reverse(Serializable context, Object request) throws Exception
{
List<ResourceMatch> counts = (List<ResourceMatch>) context;
RequestCtx xacml = (RequestCtx) request;
for (Iterator<List<Attribute>> iterator =
xacml.getResourceAsList().iterator(); iterator.hasNext();) {
List<Attribute> resource = (List<Attribute>) iterator.next();
for (int i = 0; i < counts.size(); i++) {
ResourceMatch resourcematch = counts.get(i);
try {
if (resourcematch.matches(new
URI(DroolsUtils.getResourceID(resource)))) {
resourcematch.decrement();
}
} catch (URISyntaxException e) {
// shouldnt appear cause the method from DroolsUtils has casted the
returning String from an URI!
e.printStackTrace();
}
}
}
}
--
View this message in context: http://drools.46999.n3.nabble.com/SlidingTimeWindow-BehaviorExpireWMAction-tp3163096p3165597.html
Sent from the Drools: User forum mailing list archive at Nabble.com.
More information about the rules-users
mailing list