01: /*
02: * <copyright>
03: *
04: * Copyright 2001-2004 Mobile Intelligence Corp
05: * under sponsorship of the Defense Advanced Research Projects
06: * Agency (DARPA).
07: *
08: * You can redistribute this software and/or modify it under the
09: * terms of the Cougaar Open Source License as published on the
10: * Cougaar Open Source Website (www.cougaar.org).
11: *
12: * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
13: * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
14: * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
15: * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
16: * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
17: * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
18: * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
19: * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
20: * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
21: * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
22: * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
23: *
24: * </copyright>
25: */
26: package org.cougaar.community.manager;
27:
28: import javax.naming.directory.ModificationItem;
29:
30: import org.cougaar.core.service.community.Community;
31: import org.cougaar.core.service.community.CommunityResponse;
32: import org.cougaar.core.service.community.Entity;
33: import org.cougaar.core.service.community.FindCommunityCallback;
34: import org.cougaar.core.service.wp.Callback;
35:
36: /**
37: * Interface for a CommunityManager that is responsible for maintaining
38: * state for one or more communities.
39: */
40: public interface CommunityManager {
41:
42: /**
43: * Defines community to manage.
44: * @param community Community
45: */
46: public void manageCommunity(Community community);
47:
48: /**
49: * Defines community to manage.
50: * @param community Community
51: * @param callback callback invoked upon completion
52: */
53: public void manageCommunity(Community community, Callback callback);
54:
55: /**
56: * Client request to be handled by manager.
57: * @param source String Name of agent submitting request
58: * @param communityName String Target Community
59: * @param reqType int Request type (Refer to
60: * org.cougaar.core.service.community.CommunityServiceConstants for list of
61: * recognized values)
62: * @param entity Entity Affected Entity
63: * @param attrMods ModificationItem[] Attribute modifications to be applied
64: * to affected entity
65: * @return CommunityResponse Response callback
66: */
67: public CommunityResponse processRequest(String source,
68: String communityName, int reqType, Entity entity,
69: ModificationItem[] attrMods);
70:
71: /**
72: * Locate the manager for specified community.
73: * @param communityName String Target community
74: * @param fmcb FindCommunityCallback Callback that is invoked after manager
75: * has been located.
76: */
77: public void findManager(String communityName,
78: FindCommunityCallback fmcb);
79:
80: }
|