01: /*
02:
03: * <copyright>
04: *
05: * Copyright 2002-2007 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:
29: package org.cougaar.qos.qrs;
30:
31: import java.util.List;
32:
33: abstract public class Aggregator extends DataFormula {
34: abstract protected String getKey(String element);
35:
36: abstract protected List<String> getElements();
37:
38: protected void initialize(ResourceContext context) {
39: super .initialize(context);
40: init();
41: }
42:
43: public void reinitialize() {
44: super .reinitialize();
45: init();
46: }
47:
48: private void init() {
49: List<String> elements = getElements();
50: synchronized (elements) {
51: for (String element : elements) {
52: String[] parameters = { getKey(element) };
53: ResourceContext dependency = RSS.instance()
54: .resolveSpec("Integrater", parameters);
55: registerDependency(dependency, "Formula", element);
56: }
57: }
58: }
59: }
|