01: /* */
02: /*
03: * <copyright>
04: *
05: * Copyright 1997-2004 BBNT Solutions, LLC
06: * under sponsorship of the Defense Advanced Research Projects
07: * Agency (DARPA).
08: *
09: * You can redistribute this software and/or modify it under the
10: * terms of the Cougaar Open Source License as published on the
11: * Cougaar Open Source Website (www.cougaar.org).
12: *
13: * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
14: * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
15: * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
16: * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
17: * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
18: * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
19: * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
20: * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
21: * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
22: * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
23: * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
24: *
25: * </copyright>
26: */
27:
28: package org.cougaar.glm.callback;
29:
30: import java.util.Enumeration;
31:
32: import org.cougaar.glm.ldm.asset.Organization;
33: import org.cougaar.lib.callback.UTILFilterCallbackAdapter;
34: import org.cougaar.util.UnaryPredicate;
35: import org.cougaar.util.log.Logger;
36:
37: /**
38: * Filters for organizations, telling listeners of new and changed ones.
39: */
40:
41: public class GLMOrganizationCallback extends UTILFilterCallbackAdapter {
42: public GLMOrganizationCallback(GLMOrganizationListener listener,
43: Logger logger) {
44: super (listener, logger);
45: }
46:
47: /**
48: * Filter for organizations
49: */
50: protected UnaryPredicate getPredicate() {
51: return new UnaryPredicate() {
52: public boolean execute(Object o) {
53: return (o instanceof Organization);
54: }
55: };
56: }
57:
58: /**
59: * Tell listener when an organization changes, or is added
60: * to the set of organizations known to this cluster.
61: */
62: public void reactToChangedFilter() {
63: Enumeration changedList = mySub.getChangedList();
64: Enumeration addedList = mySub.getAddedList();
65:
66: if (changedList.hasMoreElements())
67: ((GLMOrganizationListener) myListener)
68: .handleChangedOrganization(changedList);
69:
70: if (addedList.hasMoreElements())
71: ((GLMOrganizationListener) myListener)
72: .handleNewOrganization(addedList);
73: }
74: }
|