View Javadoc

1   package org.votech.plastic.incoming.handlers.info;
2   
3   import org.apache.commons.logging.Log;
4   import org.apache.commons.logging.LogFactory;
5   
6   import java.net.URI;
7   import java.net.URISyntaxException;
8   import java.util.List;
9   
10  import org.votech.plastic.CommonMessageConstants;
11  import org.votech.plastic.incoming.messages.ArgProcessor;
12  import org.votech.plastic.incoming.messages.MessageInvoker;
13  import org.votech.plastic.managers.PlasticApplication;
14  
15  public class MessageNameInfoInvoker implements MessageInvoker  {
16      /**
17       * Logger for this class
18       */
19      private static final Log logger = LogFactory.getLog(MessageNameInfoInvoker.class);
20  
21      private MessageActionDescriber namer;
22  
23      //TODO javadoc andrename
24      public MessageNameInfoInvoker(MessageActionDescriber namer) {
25          this.namer=namer;
26      }
27  
28      public Object execute(URI sender, List messageArguments) {
29          if (messageArguments.size()==0) {
30              logger.warn("Zero arguments received from "+sender+" for message "+getURI());
31              return CommonMessageConstants.RPCNULL;
32          }
33          String fullMessage = ArgProcessor.safeStringCast(messageArguments.get(0));
34          URI fullMessageURI;
35          try {
36              fullMessageURI = new URI(fullMessage);
37              String name = namer.getName(fullMessageURI);
38              return name;
39          } catch (URISyntaxException e) {
40              logger.warn("Sender "+sender+" supplied bad URI for message",e);
41              return CommonMessageConstants.RPCNULL;
42          }
43          
44      }
45  
46      public URI getURI() {
47          return PlasticApplication.MESSAGE_GET_NAME;
48      }
49  }