Package de.intarsys.tools.functor
Class DeclaredArgs
- java.lang.Object
-
- de.intarsys.tools.functor.DeclaredArgs
-
- All Implemented Interfaces:
IArgs
public class DeclaredArgs extends java.lang.Object implements IArgs
ThisIArgs
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.
-
-
Constructor Summary
Constructors Modifier Constructor Description protected
DeclaredArgs(IArgs args)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method 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 positionindex
.java.lang.Object
get(int pIndex, java.lang.Object defaultValue)
The argument at positionindex
java.lang.Object
get(java.lang.String name)
The argument namedname
.java.lang.Object
get(java.lang.String name, java.lang.Object defaultValue)
The argument namedname
or the defaultValue if not available.IArgs
getArgsIn()
boolean
isDefined(int index)
true
if an argument atindex
is defined.boolean
isDefined(java.lang.String name)
true
if an argument namedname
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()
-
-
-
Constructor Detail
-
DeclaredArgs
protected DeclaredArgs(IArgs args)
-
-
Method Detail
-
createStrict
public static DeclaredArgs createStrict(IArgs args)
-
createStrictIfDeclared
public static DeclaredArgs createStrictIfDeclared(IArgs args)
-
createTransparent
public static DeclaredArgs createTransparent(IArgs args)
-
declare
protected void declare(IFunctorCall call, ArgumentDeclaration argDecl) throws DeclarationException
- Throws:
DeclarationException
-
declare
protected void declare(IFunctorCall call, java.lang.String name, int index, IFunctor defaultFunctor) throws DeclarationException
- Throws:
DeclarationException
-
get
public java.lang.Object get(int pIndex)
Description copied from interface:IArgs
The argument at positionindex
.
-
get
public java.lang.Object get(int pIndex, java.lang.Object defaultValue)
Description copied from interface:IArgs
The argument at positionindex
-
get
public java.lang.Object get(java.lang.String name)
Description copied from interface:IArgs
The argument namedname
.
-
get
public java.lang.Object get(java.lang.String name, java.lang.Object defaultValue)
Description copied from interface:IArgs
The argument namedname
or the defaultValue if not available.
-
getArgsIn
public IArgs getArgsIn()
-
isDefined
public boolean isDefined(int index)
Description copied from interface:IArgs
true
if an argument atindex
is defined.
-
isDefined
public boolean isDefined(java.lang.String name)
Description copied from interface:IArgs
true
if an argument namedname
is defined.
-
isIndexed
public boolean isIndexed()
Description copied from interface: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.
-
isLazy
protected boolean isLazy()
-
isNamed
public boolean isNamed()
Description copied from interface: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.
-
isStrict
protected boolean isStrict()
-
names
public java.util.Set names()
Description copied from interface:IArgs
The set of all argument names in the argument list if this argument list is not indexed or null.
-
put
public void put(java.lang.String name, java.lang.Object value)
-
setLazy
protected void setLazy(boolean lazy)
-
setStrict
protected void setStrict(boolean strict)
-
size
public int size()
Description copied from interface:IArgs
The total number of arguments.
-
switchArgs
protected void switchArgs()
-
toString
public java.lang.String toString()
- Overrides:
toString
in classjava.lang.Object
-
-