/** * Copyright 2010 JBoss Inc * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package org.drools.event; /* * Copyright 2007 JBoss Inc * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ import org.drools.RuleBase; import org.drools.rule.Package; import org.drools.rule.Rule; import java.util.Iterator; /** * @author etirelli * @author <a href="mailto:stampy88@yahoo.com">dave sinclair</a> */ public class RuleBaseEventSupport extends AbstractEventSupport<RuleBaseEventListener> { private transient RuleBase ruleBase; public RuleBaseEventSupport() { } public RuleBaseEventSupport(final RuleBase ruleBase) { this.ruleBase = ruleBase; } public void setRuleBase(RuleBase ruleBase) { this.ruleBase = ruleBase; } public void fireBeforePackageAdded(final Package newPkg) { final Iterator<RuleBaseEventListener> iter = getEventListenersIterator(); if (iter.hasNext()) { final BeforePackageAddedEvent event = new BeforePackageAddedEvent(this.ruleBase, newPkg); do { iter.next().beforePackageAdded(event); } while (iter.hasNext()); } } public void fireAfterPackageAdded(final Package newPkg) { final Iterator<RuleBaseEventListener> iter = getEventListenersIterator(); if (iter.hasNext()) { final AfterPackageAddedEvent event = new AfterPackageAddedEvent(this.ruleBase, newPkg); do { iter.next().afterPackageAdded(event); } while (iter.hasNext()); } } public void fireBeforePackageRemoved(final Package pkg) { final Iterator<RuleBaseEventListener> iter = getEventListenersIterator(); if (iter.hasNext()) { final BeforePackageRemovedEvent event = new BeforePackageRemovedEvent(this.ruleBase, pkg); do { iter.next().beforePackageRemoved(event); } while (iter.hasNext()); } } public void fireAfterPackageRemoved(final Package pkg) { final Iterator<RuleBaseEventListener> iter = getEventListenersIterator(); if (iter.hasNext()) { final AfterPackageRemovedEvent event = new AfterPackageRemovedEvent(this.ruleBase, pkg); do { iter.next().afterPackageRemoved(event); } while (iter.hasNext()); } } public void fireBeforeRuleBaseLocked() { final Iterator<RuleBaseEventListener> iter = getEventListenersIterator(); if (iter.hasNext()) { final BeforeRuleBaseLockedEvent event = new BeforeRuleBaseLockedEvent(this.ruleBase); do { iter.next().beforeRuleBaseLocked(event); } while (iter.hasNext()); } } public void fireAfterRuleBaseLocked() { final Iterator<RuleBaseEventListener> iter = getEventListenersIterator(); if (iter.hasNext()) { final AfterRuleBaseLockedEvent event = new AfterRuleBaseLockedEvent(this.ruleBase); do { iter.next().afterRuleBaseLocked(event); } while (iter.hasNext()); } } public void fireBeforeRuleBaseUnlocked() { final Iterator<RuleBaseEventListener> iter = getEventListenersIterator(); if (iter.hasNext()) { final BeforeRuleBaseUnlockedEvent event = new BeforeRuleBaseUnlockedEvent(this.ruleBase); do { iter.next().beforeRuleBaseUnlocked(event); } while (iter.hasNext()); } } public void fireAfterRuleBaseUnlocked() { final Iterator<RuleBaseEventListener> iter = getEventListenersIterator(); if (iter.hasNext()) { final AfterRuleBaseUnlockedEvent event = new AfterRuleBaseUnlockedEvent(this.ruleBase); do { iter.next().afterRuleBaseUnlocked(event); } while (iter.hasNext()); } } public void fireBeforeRuleAdded(final Package newPkg, final Rule rule) { final Iterator<RuleBaseEventListener> iter = getEventListenersIterator(); if (iter.hasNext()) { final BeforeRuleAddedEvent event = new BeforeRuleAddedEvent(this.ruleBase, newPkg, rule); do { iter.next().beforeRuleAdded(event); } while (iter.hasNext()); } } public void fireAfterRuleAdded(final Package newPkg, final Rule rule) { final Iterator<RuleBaseEventListener> iter = getEventListenersIterator(); if (iter.hasNext()) { final AfterRuleAddedEvent event = new AfterRuleAddedEvent(this.ruleBase, newPkg, rule); do { iter.next().afterRuleAdded(event); } while (iter.hasNext()); } } public void fireBeforeRuleRemoved(final Package pkg, final Rule rule) { final Iterator<RuleBaseEventListener> iter = getEventListenersIterator(); if (iter.hasNext()) { final BeforeRuleRemovedEvent event = new BeforeRuleRemovedEvent(this.ruleBase, pkg, rule); do { iter.next().beforeRuleRemoved(event); } while (iter.hasNext()); } } public void fireAfterRuleRemoved(final Package pkg, final Rule rule) { final Iterator<RuleBaseEventListener> iter = getEventListenersIterator(); if (iter.hasNext()) { final AfterRuleRemovedEvent event = new AfterRuleRemovedEvent(this.ruleBase, pkg, rule); do { iter.next().afterRuleRemoved(event); } while (iter.hasNext()); } } public void fireBeforeFunctionRemoved(final Package pkg, final String function) { final Iterator<RuleBaseEventListener> iter = getEventListenersIterator(); if (iter.hasNext()) { final BeforeFunctionRemovedEvent event = new BeforeFunctionRemovedEvent(this.ruleBase, pkg, function); do { iter.next().beforeFunctionRemoved(event); } while (iter.hasNext()); } } public void fireAfterFunctionRemoved(final Package pkg, final String function) { final Iterator<RuleBaseEventListener> iter = getEventListenersIterator(); if (iter.hasNext()) { final AfterFunctionRemovedEvent event = new AfterFunctionRemovedEvent(this.ruleBase, pkg, function); do { iter.next().afterFunctionRemoved(event); } while (iter.hasNext()); } } }