private Object convertToTreeObject( Object nodeValue )
{
if( nodeValue instanceof MapEntry)
{
MapEntry entry = (MapEntry)nodeValue;
COSName key = (COSName)entry.getKey();
COSBase value = (COSBase)entry.getValue();
nodeValue = key.getName() + ":" + convertToTreeObject( value );
}
else if( nodeValue instanceof COSFloat )
{
nodeValue = "" + ((COSFloat)nodeValue).floatValue();
}
else if( nodeValue instanceof COSInteger )
{
nodeValue = "" + ((COSInteger)nodeValue).intValue();
}
else if( nodeValue instanceof COSString )
{
nodeValue = ((COSString)nodeValue).getString();
}
else if( nodeValue instanceof COSName )
{
nodeValue = ((COSName)nodeValue).getName();
}
else if( nodeValue instanceof ArrayEntry)
{
ArrayEntry entry = (ArrayEntry)nodeValue;
nodeValue = "[" + entry.getIndex() + "]" + convertToTreeObject( entry.getValue() );
}
else if( nodeValue instanceof COSNull )
{
nodeValue = "null";
}
else if( nodeValue instanceof COSDictionary )
{
COSDictionary dict = (COSDictionary)nodeValue;
if( nodeValue instanceof COSStream )
{
nodeValue = "Stream";
}
else
{
nodeValue = "Dictionary";
}
COSName type = (COSName)dict.getDictionaryObject( COSName.TYPE );
if( type != null )
{
nodeValue = nodeValue + "(" + type.getName();
COSName subType = (COSName)dict.getDictionaryObject( COSName.SUBTYPE );
if( subType != null )
{
nodeValue = nodeValue + ":" + subType.getName();
}
nodeValue = nodeValue + ")";
}
}