/****************************************************************** * * 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()); } } } }