code: function(feature) {
          var style = this.defaultsPerSymbolizer ? {} : this.createLiterals(
              OpenLayers.Util.extend({}, this.defaultStyle), feature);
          
          var rules = this.rules;
  
          var rule, context;
          var elseRules = [];
          var appliedRules = false;
          for(var i=0, len=rules.length; i<len; i++) {
              rule = rules[i];
              // does the rule apply?
              var applies = rule.evaluate(feature);
              
              if(applies) {
                  if(rule instanceof OpenLayers.Rule && rule.elseFilter) {
                      elseRules.push(rule);
                  } else {
                      appliedRules = true;
                      this.applySymbolizer(rule, style, feature);
                  }
              }
          }
          
          // if no other rules apply, apply the rules with else filters
          if(appliedRules == false && elseRules.length > 0) {
              appliedRules = true;
              for(var i=0, len=elseRules.length; i<len; i++) {
                  this.applySymbolizer(elseRules[i], style, feature);
              }
          }
  
          // don't display if there were rules but none applied
          if(rules.length > 0 && appliedRules == false) {
              style.display = "none";
          }
          
          if (style.label != null && typeof style.label !== "string") {
              style.label = String(style.label);
          }
          
          return style;
      }
docs: Method: createSymbolizer
  creates a style by applying all feature-dependent rules to the base
  style.
  
  Parameters:
  feature - {<OpenLayers.Feature>} feature to evaluate rules for
  
  Returns:
  {Object} symbolizer hash