Package org.cybergarage.upnp

Source Code of org.cybergarage.upnp.Argument

/******************************************************************
*
*  CyberUPnP for Java
*
*  Copyright (C) Satoshi Konno 2002
*
*  File: Argument.java
*
*  Revision;
*
*  12/05/02
*    - first revision.
*  03/28/04
*    - Added getRelatedStateVariable().
*    - Changed setRelatedStateVariable() to setRelatedStateVariableName().
*    - Changed getRelatedStateVariable() to getRelatedStateVariableName().
*    - Added getActionNode() and getAction().
*    - Added getServiceNode() and getService().
*    - Added the parent service node to the constructor.
*  04/12/06
*    - Added setUserData() and getUserData() to set a user original data object.
*
******************************************************************/

package org.cybergarage.upnp;

import org.cybergarage.upnp.xml.ArgumentData;
import org.cybergarage.xml.Node;

public class Argument
{
  ////////////////////////////////////////////////
  //  Constants
  ////////////////////////////////////////////////
 
  public final static String ELEM_NAME = "argument";

  public final static String IN = "in";
  public final static String OUT = "out";

  ////////////////////////////////////////////////
  //  Member
  ////////////////////////////////////////////////

  private Node argumentNode;
  private Node serviceNode;

  public Node getArgumentNode()
  {
    return argumentNode;
  }

  private Node getServiceNode()
  {
    return serviceNode;
  }

  public Service getService()
  {
    return new Service(getServiceNode());
  }
 
  void setService(Service s){
    s.getServiceNode();
  }
 
  public Node getActionNode()
  {
    Node argumentLinstNode = getArgumentNode().getParentNode();
    if (argumentLinstNode == null)
      return null;
    Node actionNode = argumentLinstNode.getParentNode();
    if (actionNode == null)
      return null;
    if (Action.isActionNode(actionNode) == false)
      return null;
    return actionNode;
  }
 
  public Action getAction()
  {
    return new Action(getServiceNode(), getActionNode());
  }
 
  ////////////////////////////////////////////////
  //  Constructor
  ////////////////////////////////////////////////

  public Argument()
  {
    argumentNode = new Node(ELEM_NAME);
    serviceNode = null;
  }
 
  public Argument(Node servNode){
    argumentNode = new Node(ELEM_NAME);
    serviceNode = servNode;   
  }
 
  public Argument(Node servNode, Node argNode)
  {
    serviceNode = servNode;
    argumentNode = argNode;
  }

  public Argument(String name, String value)
  {
    this();
    setName(name);
    setValue(value);
  }

  ////////////////////////////////////////////////
  //  isArgumentNode
  ////////////////////////////////////////////////

  public static boolean isArgumentNode(Node node)
  {
    return Argument.ELEM_NAME.equals(node.getName());
  }

  ////////////////////////////////////////////////
  //  name
  ////////////////////////////////////////////////

  private final static String NAME = "name";
 
  public void setName(String value)
  {
    getArgumentNode().setNode(NAME, value);
  }

  public String getName()
  {
    return getArgumentNode().getNodeValue(NAME);
  }

  ////////////////////////////////////////////////
  //  direction
  ////////////////////////////////////////////////

  private final static String DIRECTION = "direction";
 
  public void setDirection(String value)
  {
    getArgumentNode().setNode(DIRECTION, value);
  }

  public String getDirection()
  {
    return getArgumentNode().getNodeValue(DIRECTION);
  }

  public boolean isInDirection()
  {
    String dir = getDirection();
    if (dir == null)
      return false;
    return dir.equalsIgnoreCase(IN);
  }

  public boolean isOutDirection()
  {
    return !isInDirection();
  }
 
  ////////////////////////////////////////////////
  //  relatedStateVariable
  ////////////////////////////////////////////////

  private final static String RELATED_STATE_VARIABLE = "relatedStateVariable";
 
  public void setRelatedStateVariableName(String value)
  {
    getArgumentNode().setNode(RELATED_STATE_VARIABLE, value);
  }

  public String getRelatedStateVariableName()
  {
    return getArgumentNode().getNodeValue(RELATED_STATE_VARIABLE);
  }

  public StateVariable getRelatedStateVariable()
  {
    Service service = getService();
    if (service == null)
      return null;
    String relatedStatVarName = getRelatedStateVariableName();
    return service.getStateVariable(relatedStatVarName);
  }
 
  ////////////////////////////////////////////////
  //  UserData
  ////////////////////////////////////////////////

  private ArgumentData getArgumentData()
  {
    Node node = getArgumentNode();
    ArgumentData userData = (ArgumentData)node.getUserData();
    if (userData == null) {
      userData = new ArgumentData();
      node.setUserData(userData);
      userData.setNode(node);
    }
    return userData;
  }

  ////////////////////////////////////////////////
  //  value
  ////////////////////////////////////////////////

  public void setValue(String value)
  {
    getArgumentData().setValue(value);
  }
 
  public void setValue(int value)
  {
    setValue(Integer.toString(value));
  }
 
  public String getValue()
  {
    return getArgumentData().getValue();
  }

  public int getIntegerValue()
  {
    String value = getValue();
    try {
      return Integer.parseInt(value);
    }
    catch (Exception e) {
    }
    return 0;
  }

  ////////////////////////////////////////////////
  //  userData
  ////////////////////////////////////////////////

  private Object userData = null;
 
  public void setUserData(Object data)
  {
    userData = data;
  }

  public Object getUserData()
  {
    return userData;
  }
}
TOP

Related Classes of org.cybergarage.upnp.Argument

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.