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: public class ObjectMethodDS extends DeflectingContext {
32: static void register() {
33: ContextInstantiater cinst = new AbstractContextInstantiater() {
34: public ResourceContext instantiateContext(
35: String[] parameters, ResourceContext parent)
36: throws ResourceContext.ParameterError {
37: return new ObjectMethodDS(parameters, parent);
38: }
39:
40: };
41: registerContextInstantiater("ObjectMethod", cinst);
42: }
43:
44: private static final String METHOD_NAME = "MethodName";
45: private MethodDS methodDefinition;
46:
47: protected DataFormula instantiateFormula(String kind) {
48: return null;
49: }
50:
51: /**
52: * The parameters should contain one string, the name of the method
53: */
54: protected void verifyParameters(String[] parameters)
55: throws ParameterError {
56: if (parameters == null || parameters.length != 1) {
57: throw new ParameterError(
58: "MethodDS: wrong number of parameters");
59: } else {
60: bindSymbolValue(METHOD_NAME, parameters[0]);
61:
62: ResourceContext parent = getParent();
63: ResourceContext class_ctxt = (ResourceContext) parent
64: .getSymbolValue(ObjectDS.IMPLEMENTATION_DEF);
65: methodDefinition = (MethodDS) class_ctxt.resolveSpec(
66: "Method", parameters);
67: setDeflector(methodDefinition);
68: }
69: }
70:
71: private ObjectMethodDS(String[] parameters, ResourceContext parent)
72: throws ParameterError {
73: super(parameters, parent);
74: }
75:
76: }
|