/**
  * Returns true if bundle is valid for this model
  * 
  * @access public
  * @param string $ps_bundle bundle name
  * @param int $pn_type_id Optional record type
  * @return bool
  */
 public function hasBundle($ps_bundle, $pn_type_id = null)
 {
     $va_bundle_bits = explode(".", $ps_bundle);
     $vn_num_bits = sizeof($va_bundle_bits);
     if (in_array($va_bundle_bits[1], array('hierarchy', 'parent', 'children', 'related'))) {
         unset($va_bundle_bits[1]);
         $va_bundle_bits = array_merge($va_bundle_bits);
         $vn_num_bits = sizeof($va_bundle_bits);
         $ps_bundle = join('.', $va_bundle_bits);
     }
     if ($va_bundle_bits[0] != $this->tableName() && ($t_rel = $this->getAppDatamodel()->getInstanceByTableName($va_bundle_bits[0], true))) {
         return $vn_num_bits == 1 ? true : $t_rel->hasBundle($ps_bundle, $pn_type_id);
     }
     return parent::hasBundle($ps_bundle, $pn_type_id);
 }