code: @Override
      public Set<URI> listInputs(URI operationUri) {
  
          if (operationUri == null || !operationUri.isAbsolute()) {
              log.warn("The Operation URI is either absent or relative. Provide an absolute URI");
              return ImmutableSet.of();
          }
  
          URI graphUri;
          try {
              graphUri = getGraphUriForElement(operationUri);
          } catch (URISyntaxException e) {
              log.warn("The namespace of the URI of the operation is incorrect.", e);
              return ImmutableSet.of();
          }
  
          if (graphUri == null) {
              log.warn("Could not obtain a graph URI for the element. The URI may not be managed by the server - " + operationUri);
              return ImmutableSet.of();
          }
  
          String queryStr = new StringBuilder()
                  .append("SELECT DISTINCT ?input WHERE { \n")
                  .append(" GRAPH <").append(graphUri.toASCIIString()).append("> { \n")
                  .append("<").append(operationUri.toASCIIString()).append("> ").append("<").append(MSM.hasInput.getURI()).append(">").append(" ?input .")
                  .append("?input ").append("<").append(RDF.type.getURI()).append(">").append(" ").append("<").append(MSM.MessageContent.getURI()).append("> .")
                  .append(" } \n ")
                  .append("} \n ")
                  .toString();
  
  
          return this.graphStoreManager.listResourcesByQuery(queryStr, "input");
      }
docs: Obtains the list of input URIs for a given Operation
  
  @param operationUri the operation URI
  @return a List of URIs with the inputs of the operation. If no input is necessary the List should be empty NOT null.