/******************************************************************
*
* CyberUPnP for Java
*
* Copyright (C) Satoshi Konno 2002
*
* File: ArgumentList.java
*
* Revision:
*
* 12/05/02
* - first revision.
*
******************************************************************/
package org.cybergarage.upnp;
import java.util.Vector;
public class ArgumentList extends Vector<Argument>
{
////////////////////////////////////////////////
// Constants
////////////////////////////////////////////////
public final static String ELEM_NAME = "argumentList";
////////////////////////////////////////////////
// Constructor
////////////////////////////////////////////////
public ArgumentList()
{
}
////////////////////////////////////////////////
// Methods
////////////////////////////////////////////////
public Argument getArgument(int n)
{
return (Argument)get(n);
}
public Argument getArgument(String name)
{
int nArgs = size();
for (int n=0; n<nArgs; n++) {
Argument arg = getArgument(n);
String argName = arg.getName();
if (argName == null)
continue;
if (argName.equals(name) == true)
return arg;
}
return null;
}
////////////////////////////////////////////////
// Methods
////////////////////////////////////////////////
/**
* @deprecated
*/
@Deprecated
public void set(ArgumentList inArgList)
{
int nInArgs = inArgList.size();
for (int n=0; n<nInArgs; n++) {
Argument inArg = inArgList.getArgument(n);
String inArgName = inArg.getName();
Argument arg = getArgument(inArgName);
if (arg == null)
continue;
arg.setValue(inArg.getValue());
}
}
/**
* Set all the Argument which are Input Argoument to the given value in
* the argument list
*
* @param inArgList
*/
public void setReqArgs(ArgumentList inArgList)
{
int nArgs = size();
for (int n=0; n<nArgs; n++) {
Argument arg = getArgument(n);
if (arg.isInDirection()){
String argName = arg.getName();
Argument inArg = inArgList.getArgument(argName);
if (inArg == null)
throw new IllegalArgumentException("Argument \"" + argName + "\" missing.");
arg.setValue(inArg.getValue());
}
}
}
/**
* Set all the Argument which are Output Argoument to the given value in
* the argument list
*
* @param outArgList
*/
public void setResArgs(ArgumentList outArgList)
{
int nArgs = size();
for (int n=0; n<nArgs; n++) {
Argument arg = getArgument(n);
if (arg.isOutDirection()){
String argName = arg.getName();
Argument outArg = outArgList.getArgument(argName);
if (outArg == null)
throw new IllegalArgumentException("Argument \"" + argName + "\" missing.");
arg.setValue(outArg.getValue());
}
}
}
}