def object_to_rxf_node( object , level , ref)
      node = ObjectNode.new(object.class.name , ref)
      attributes_for(object).each() do |a|
        val = get_value(object , a)
        next if val.nil?
        node.add( a , to_rxf_node( val , level + 1) )
      end
      #TODO get all superclsses here, but this covers 99% so . . moving on
      superclasses = [object.class.superclass.name]
      if superclasses.include?( "Array") or superclasses.include?( "Parfait::List")
        node.add_super( array_to_rxf_node(object , level , ref ) )
      end
      if superclasses.include?( "Hash") or superclasses.include?( "Parfait::Dictionary")
        node.add_super( hash_to_rxf_node(object , level , ref ) )
      end
      node
    end
def object_to_rxf_node( object , level , ref)
      node = ObjectNode.new(object.class.name , ref)
      attributes_for(object).each() do |a|
        val = get_value(object , a)
        next if val.nil?
        node.add( a , to_rxf_node( val , level + 1) )
      end
      #TODO get all superclsses here, but this covers 99% so . . moving on
      superclasses = [object.class.superclass.name]
      if superclasses.include?( "Array") or superclasses.include?( "Parfait::List")
        node.add_super( array_to_rxf_node(object , level , ref ) )
      end
      if superclasses.include?( "Hash") or superclasses.include?( "Parfait::Dictionary")
        node.add_super( hash_to_rxf_node(object , level , ref ) )
      end
      node
    end
create an object node from the object
 simple nodes are returned for small objects
   small means only simple attributes and only 30 chars of them
 object nodes are basically arrays (see there)

 objects may be derived from array/hash. In that case the ObjectNode gets a super
  (either ArrayNode or HashNode)