computeClassLinearization      package:RBioinf      R Documentation

_C_o_m_p_u_t_e _t_h_e _C_l_a_s_s _L_i_n_e_a_r_i_z_a_t_i_o_n

_D_e_s_c_r_i_p_t_i_o_n:

     There are a number of different methods for computing the class
     linearization. The methods described here are discussed in more
     detail in the vignette for this package. 'LPO' and
     'computeClassLinearization' are  aliases, the former being easier
     to type, the latter more descriptive.

_U_s_a_g_e:

     computeClassLinearization(inClass, C3 = FALSE)
     LPO(inClass, C3 = FALSE)

_A_r_g_u_m_e_n_t_s:

 inClass: The class for which a linearization of its  is wanted. 

      C3: Whether or not to use the C3 method in computing the
          linearization.

_D_e_t_a_i_l_s:

     For many different computations, especially method dispatch, an
     algorithm for specifying a linear order of the class inheritance
     tree is needed. All object oriented programming languages support
     the computation of a linearization.  Local precedence order (LPO)
     uses the order of the direct superclasses, given in the class
     definition, in computing the linearization, with earlier
     superclasses considered more specific than later ones.  If there
     are no duplicate class labels in the hierarchy then this is then
     simply a bread-first search of the superclass definitions. But
     when one or more classes are inherited from different superclasses
     this definition becomes more complicated, and can in fact not be
     satisfied.

_V_a_l_u_e:

     A vector with the class linearization, the.

_A_u_t_h_o_r(_s):

     R. Gentleman

_R_e_f_e_r_e_n_c_e_s:

     Monotonic Superclass Linearization for Dylan,  K. Barrett and
     others, 1996, OOPSLA

_E_x_a_m_p_l_e_s:

     setClass("object")
     setClass("grid-layout", contains="object")
     setClass("horizontal-grid", contains="grid-layout")
     setClass("vertical-grid", contains="grid-layout")
     setClass("hv-grid", contains=c("horizontal-grid", "vertical-grid"))
     LPO("hv-grid")

