// if nothing found, return an empty array
List symbolsList = Collections.EMPTY_LIST;
if (base instanceof IObjectSymbol)
{
ITypeDescriptor typeDesc = null;
// per JSP.2.3.4, if instance of map (unconstrained in our terminology)
if (((IObjectSymbol)base).supportsCoercion(TypeConstants.TYPE_MAP))
{
typeDesc =
((IObjectSymbol)base).coerce(TypeConstants.TYPE_MAP);
}
// Lists have no properties, even if they are also beans
else if (((IObjectSymbol)base).supportsCoercion(TypeConstants.TYPE_LIST))
{
typeDesc = null;
}
else
{
typeDesc = ((IObjectSymbol)base).getTypeDescriptor();
}
if (typeDesc != null)
{
symbolsList = typeDesc.getProperties();
addCCAttrsIfNecessary(typeDesc, symbolsList);
}
}
return (ISymbol[]) symbolsList.toArray(ISymbol.EMPTY_SYMBOL_ARRAY);