de.intarsys.tools.functor
public class DeclaredArgs extends java.lang.Object implements IArgs
IArgs
implementation allows the declaration of arguments.
The declaration is matched against the actual arguments defined in
args
. The declaration defines a mapping from indexed to named
and AND vice versa.
If we have indexed args, a declaration associates a name with the argument in the sequence of declaration.
If we have named args, a declaration defines the index of the argument with the same name.
Modifier | Constructor and Description |
---|---|
protected |
DeclaredArgs(IArgs args) |
Modifier and Type | Method and Description |
---|---|
void |
add(java.lang.Object object) |
void |
clear() |
static DeclaredArgs |
createStrict(IArgs args) |
static DeclaredArgs |
createStrictIfDeclared(IArgs args) |
static DeclaredArgs |
createTransparent(IArgs args) |
protected void |
declare(IFunctorCall call,
ArgumentDeclaration argDecl) |
protected void |
declare(IFunctorCall call,
java.lang.String name,
int index,
IFunctor defaultFunctor) |
java.lang.Object |
get(int pIndex)
The argument at position
index . |
java.lang.Object |
get(int pIndex,
java.lang.Object defaultValue)
The argument at position
index |
java.lang.Object |
get(java.lang.String name)
The argument named
name . |
java.lang.Object |
get(java.lang.String name,
java.lang.Object defaultValue)
The argument named
name or the defaultValue if not
available. |
IArgs |
getArgsIn() |
boolean |
isDefined(int index)
true if an argument at index is defined. |
boolean |
isDefined(java.lang.String name)
true if an argument named name is defined. |
boolean |
isIndexed()
true if this argument list is indexed. |
protected boolean |
isLazy() |
boolean |
isNamed()
true if this argument list is named. |
protected boolean |
isStrict() |
java.util.Set |
names()
The set of all argument names in the argument list if this argument list
is not indexed or null.
|
void |
put(int index,
java.lang.Object value) |
void |
put(java.lang.String name,
java.lang.Object value) |
protected void |
setLazy(boolean lazy) |
protected void |
setStrict(boolean strict) |
int |
size()
The total number of arguments.
|
protected void |
switchArgs() |
java.lang.String |
toString() |
protected DeclaredArgs(IArgs args)
public static DeclaredArgs createStrict(IArgs args)
public static DeclaredArgs createStrictIfDeclared(IArgs args)
public static DeclaredArgs createTransparent(IArgs args)
protected void declare(IFunctorCall call, ArgumentDeclaration argDecl) throws DeclarationException
DeclarationException
protected void declare(IFunctorCall call, java.lang.String name, int index, IFunctor defaultFunctor) throws DeclarationException
DeclarationException
public java.lang.Object get(int pIndex)
IArgs
index
.public java.lang.Object get(int pIndex, java.lang.Object defaultValue)
IArgs
index
public java.lang.Object get(java.lang.String name)
IArgs
name
.public java.lang.Object get(java.lang.String name, java.lang.Object defaultValue)
IArgs
name
or the defaultValue if not
available.public IArgs getArgsIn()
public boolean isDefined(int index)
IArgs
true
if an argument at index
is defined.public boolean isDefined(java.lang.String name)
IArgs
true
if an argument named name
is defined.public boolean isIndexed()
IArgs
true
if this argument list is indexed. This means its
elements are available via integer indexes.
This does NOT mean the arguments are not available via names - there are implementations that can support both.
protected boolean isLazy()
public boolean isNamed()
IArgs
true
if this argument list is named. This means its elements
are available via names.
This does NOT mean the arguments are not available via indexes - there are implementations that can support both.
protected boolean isStrict()
public java.util.Set names()
IArgs
public void put(java.lang.String name, java.lang.Object value)
protected void setLazy(boolean lazy)
protected void setStrict(boolean strict)
public int size()
IArgs
protected void switchArgs()
public java.lang.String toString()
toString
in class java.lang.Object