org.drools.base.accumulators
Class CollectSetAccumulateFunction

java.lang.Object
  extended by org.drools.base.accumulators.CollectSetAccumulateFunction
All Implemented Interfaces:
Externalizable, Serializable, org.drools.runtime.rule.AccumulateFunction, org.drools.runtime.rule.TypedAccumulateFunction

public class CollectSetAccumulateFunction
extends Object
implements AccumulateFunction

An implementation of an accumulator capable of collecting sets of values. This is similar to the "collect" CE, but allows us to collect any value, not only facts.

Example:

 rule "Set of unique employee names"
 when
     $names : Set() from accumulate(
             Employee( $n : firstName, $l : lastName ),
             collectSet( $n + " " + $l ) )
 then
     // do something
 end
 

The set obviously does not computes duplications and the order of the elements in the set is not guaranteed.

See Also:
Serialized Form

Nested Class Summary
static class CollectSetAccumulateFunction.CollectListData
           
 
Constructor Summary
CollectSetAccumulateFunction()
           
 
Method Summary
 void accumulate(Serializable context, Object value)
           
 Serializable createContext()
           
 Object getResult(Serializable context)
           
 Class<?> getResultType()
          
 void init(Serializable context)
           
 void readExternal(ObjectInput in)
           
 void reverse(Serializable context, Object value)
           
 boolean supportsReverse()
           
 void writeExternal(ObjectOutput out)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

CollectSetAccumulateFunction

public CollectSetAccumulateFunction()
Method Detail

readExternal

public void readExternal(ObjectInput in)
                  throws IOException,
                         ClassNotFoundException
Specified by:
readExternal in interface Externalizable
Throws:
IOException
ClassNotFoundException

writeExternal

public void writeExternal(ObjectOutput out)
                   throws IOException
Specified by:
writeExternal in interface Externalizable
Throws:
IOException

createContext

public Serializable createContext()
Specified by:
createContext in interface org.drools.runtime.rule.AccumulateFunction

init

public void init(Serializable context)
          throws Exception
Specified by:
init in interface org.drools.runtime.rule.AccumulateFunction
Throws:
Exception

accumulate

public void accumulate(Serializable context,
                       Object value)
Specified by:
accumulate in interface org.drools.runtime.rule.AccumulateFunction

reverse

public void reverse(Serializable context,
                    Object value)
             throws Exception
Specified by:
reverse in interface org.drools.runtime.rule.AccumulateFunction
Throws:
Exception

getResult

public Object getResult(Serializable context)
                 throws Exception
Specified by:
getResult in interface org.drools.runtime.rule.AccumulateFunction
Throws:
Exception

supportsReverse

public boolean supportsReverse()
Specified by:
supportsReverse in interface org.drools.runtime.rule.AccumulateFunction

getResultType

public Class<?> getResultType()

Specified by:
getResultType in interface org.drools.runtime.rule.TypedAccumulateFunction


Copyright © 2001-2013 JBoss Inc.. All Rights Reserved.