protected final function get_order($order = null, $cascade = false)
 {
     $order = moojon_db_driver::escapes($order, $this->get_table(), $this->get_column_names());
     if (!$order) {
         $order_columns = $this->get_order_column_names();
         if (count($order_columns)) {
             foreach ($order_columns as $key => $value) {
                 $order_columns[$key] = $order_columns[$key] . ' ' . $this->order_direction;
             }
             $order = implode(', ', $order_columns);
         } else {
             $order = $this->order_column . ' ' . $this->order_direction;
         }
         $order = moojon_db_driver::escapes($order, $this->get_table(), $this->get_column_names());
     }
     if ($cascade) {
         foreach ($this->get_relationships() as $relationship) {
             $instance = self::factory($relationship->get_foreign_class());
             $order = moojon_db_driver::escapes($order, $instance->get_table(), $instance->get_column_names());
         }
     }
     return $order;
 }