Package org.hpi.dialogue.protocol.response

Source Code of org.hpi.dialogue.protocol.response.DescribeInvokerResponse

/**
*
*/
package org.hpi.dialogue.protocol.response;

import org.hpi.dialogue.protocol.common.HPIDialogueConstants;
import org.hpi.dialogue.protocol.entities.Executable;
import org.hpi.dialogue.protocol.entities.Invoker;
import org.hpi.dialogue.protocol.entities.Parameter;
import org.simplestructruedata.entities.SSDObjectArray;
import org.simplestructruedata.entities.SSDObjectLeaf;
import org.simplestructruedata.entities.SSDObjectNode;

/**
* @author Jean Villete
*
*/
public class DescribeInvokerResponse extends Response {

  private static final long serialVersionUID = 4164109673082824380L;
 
  private Invoker            invoker;
 
  public DescribeInvokerResponse(Invoker invoker, String message, Status status) {
    super(message, status);
    this.invoker = invoker;
  }

  @Override
  public String getServiceName() {
    return HPIDialogueConstants.DESCRIBE_INVOKER_SERVICE;
  }
 
  @Override
  public SSDObjectNode getSSDParameters() {
    SSDObjectNode parameters = new SSDObjectNode(HPIDialogueConstants.PARAMETERS);

    SSDObjectNode ssdInvoker = new SSDObjectNode(HPIDialogueConstants.INVOKER);
    ssdInvoker.addAttribute(new SSDObjectLeaf(HPIDialogueConstants.ID, invoker.getId()));
    ssdInvoker.addAttribute(new SSDObjectLeaf(HPIDialogueConstants.DESCRIPTION, invoker.getDescription()));
   
    SSDObjectArray ssdExecutables = new SSDObjectArray(HPIDialogueConstants.EXECUTABLES);
    if (invoker.getExecutables() != null && invoker.getExecutables().size() > 0) {
      for (Executable executable : invoker.getExecutables()) {
        SSDObjectNode ssdExecutable = new SSDObjectNode(HPIDialogueConstants.EXECUTABLE);
        ssdExecutable.addAttribute(new SSDObjectLeaf(HPIDialogueConstants.CANONICAL_PATH, executable.getCanonicalPath()));
       
        SSDObjectArray ssdParemeters = new SSDObjectArray(HPIDialogueConstants.PARAMETERS);
        if (executable.getParameters() != null && executable.getParameters().size() > 0) {
          for (Parameter parameter : executable.getParameters()) {
            SSDObjectNode ssdParemeter = new SSDObjectNode(HPIDialogueConstants.PARAMETER);
            ssdParemeter.addAttribute(new SSDObjectLeaf(HPIDialogueConstants.KEY, parameter.getKey()));
            ssdParemeter.addAttribute(new SSDObjectLeaf(HPIDialogueConstants.VALUE, parameter.getValue()));

            ssdParemeters.addElement(ssdParemeter);
          }
        }
       
        ssdExecutable.addAttribute(ssdParemeters);
        ssdExecutables.addElement(ssdExecutable);
      }
    }
   
    ssdInvoker.addAttribute(ssdExecutables);
    parameters.addAttribute(ssdInvoker);
    return parameters;
  }
 
  // GETTERS AND SETTERS //
  public Invoker getInvoker() {
    return invoker;
  }

}
TOP

Related Classes of org.hpi.dialogue.protocol.response.DescribeInvokerResponse

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.