/**
  * Overrides InlineEditorPiece to be able to check for equality between markings,
  * where also classes are compared. This also adds the ability to ignore certain
  * classes when comparing (such as classes for what has been edited, etc.)
  * @param $piece InlineEditorPiece Piece or marking to compare with
  * @param $ignoreClasses array Array of classes that should be ignored
  * @return bool 
  */
 public function equals(InlineEditorPiece $piece, array $ignoreClasses = array())
 {
     if ($piece instanceof InlineEditorMarking) {
         $classesA = array_diff($this->classes, $ignoreClasses);
         $classesB = array_diff($piece->classes, $ignoreClasses);
         $diffA = array_diff($classesA, $classesB);
         $diffB = array_diff($classesB, $classesA);
         return parent::equals($piece) && empty($diffA) && empty($diffB);
     } else {
         return parent::equals($piece);
     }
 }