package org.korsakow.domain; import java.util.Collection; import java.util.Hashtable; import org.korsakow.domain.interf.IEvent; import org.korsakow.domain.interf.IPredicate; import org.korsakow.domain.interf.IRule; import org.korsakow.domain.interf.ITrigger; public class Event extends KDomainObject implements IEvent { private final Hashtable<String, Object> dynamicProperties = new Hashtable<String, Object>(); private ITrigger trigger; private IPredicate predicate; private IRule rule; public Event(long id, long version, ITrigger trigger, IPredicate predicate, IRule rule) { super(id, version); this.trigger = trigger; this.predicate = predicate; this.rule = rule; } public Collection<String> getDynamicPropertyIds() { return dynamicProperties.keySet(); } public Object getDynamicProperty(String id) { return dynamicProperties.get(id); } public void setDynamicProperty(String id, Object value) { if (id == null) throw new NullPointerException(); if (value == null) dynamicProperties.remove(id); else dynamicProperties.put(id, value); } public ITrigger getTrigger() { return trigger; } public void setTrigger(ITrigger trigger) { this.trigger = trigger; } public IPredicate getPredicate() { return predicate; } public void setPredicate(IPredicate predicate) { this.predicate = predicate; } public IRule getRule() { return rule; } public void setRule(IRule rule) { this.rule = rule; } }