View Javadoc

1   package cz.cuni.amis.pogamut.base.agent.jmx.proxy;
2   
3   import java.io.IOException;
4   import java.net.MalformedURLException;
5   
6   import javax.management.MalformedObjectNameException;
7   
8   import cz.cuni.amis.pogamut.base.agent.IAgentId;
9   import cz.cuni.amis.pogamut.base.agent.jmx.adapter.AgentMBeanAdapter;
10  import cz.cuni.amis.pogamut.base.utils.jmx.flag.FlagJMXProxy;
11  import cz.cuni.amis.utils.flag.Flag;
12  import cz.cuni.amis.utils.token.Token;
13  import cz.cuni.amis.utils.token.Tokens;
14  
15  /**
16   * Makes it possible to control agent running in remote JVM through JMX protocol.
17   * @author ik
18   */
19  public class AgentIdJMXProxy implements IAgentId {
20  
21  	FlagJMXProxy<String> agentNameFlag = null;    
22  	private AgentJMXProxy agentProxy;
23  	
24  	private Token token;
25  
26      public AgentIdJMXProxy(AgentJMXProxy agentProxy) throws MalformedURLException, IOException, MalformedObjectNameException {
27      	this.agentProxy = agentProxy;
28          agentNameFlag = new FlagJMXProxy<String>(agentProxy.getObjectName(), agentProxy.getMBeanServerConnection(), AgentMBeanAdapter.AGENT_NAME_FLAG_NAME);
29          token = Tokens.get((String)agentProxy.getAttributeNoException("ComponentId"));
30      }
31  
32  	@Override
33  	public Flag<String> getName() {
34  		return agentNameFlag;
35  	}
36  
37  	@Override
38  	public String getToken() {
39  		return token.getToken();
40  	}
41  
42  	@Override
43  	public long[] getIds() {
44  		return token.getIds();
45  	}
46     
47  }