code: function hasAllRequired( rule, element ) {
  		if ( rule.nothingRequired )
  			return true;
  
  		var i, req, reqs, existing;
  
  		if ( ( reqs = rule.requiredClasses ) ) {
  			existing = element.classes;
  			for ( i = 0; i < reqs.length; ++i ) {
  				req = reqs[ i ];
  				if ( typeof req == 'string' ) {
  					if ( CKEDITOR.tools.indexOf( existing, req ) == -1 )
  						return false;
  				}
  				// This means regexp.
  				else {
  					if ( !CKEDITOR.tools.checkIfAnyArrayItemMatches( existing, req ) )
  						return false;
  				}
  			}
  		}
  
  		return hasAllRequiredInHash( element.styles, rule.requiredStyles ) &&
  			hasAllRequiredInHash( element.attributes, rule.requiredAttributes );
  	}
docs: Check whether element has all properties (styles,classes,attrs) required by a rule.