return (NumberSequence) value;
}
else
{
// a empty sequence ...
return new DefaultNumberSequence(context);
}
}
// array
else if (type.isFlagSet(Type.ARRAY_TYPE))
{
if (value instanceof ArrayCallback)
{
if (strict)
{
return new DefaultNumberSequence((ArrayCallback) value, context);
}
else
{
return new AnyNumberSequence((ArrayCallback) value, context);
}
}
else
{
logger.warn("Assertation failure: Type declared to be array, but no array callback found inside.");
throw TypeConversionException.getInstance();
}
}
// else scalar
if (type.isFlagSet(Type.SCALAR_TYPE) || type.isFlagSet(Type.NUMERIC_TYPE))
{
return new DefaultNumberSequence
(new StaticValue(convertToNumber(type, value), NumberType.GENERIC_NUMBER), context);
}
else
{
return new DefaultNumberSequence(context);
}
}