Object buildSpanForTag(String name, Attributes a) {
    for (SpanTagHandler h : handlers) {
      String context = h.findContextForTag(name, a);

      if (context != null) {
        return (h.buildSpanForTag(name, a, context));
      }
    }

    return (SpanTagHandler.buildSpanForTag(name, a));
  }
  <T> SpanTagHandler getSpanTagHandler(Class<T> cls) {
    SpanTagHandler result = handlersByCharacterStyle.get(cls);

    if (result == null) {
      result = SpanTagHandler.getGlobalSpanTagHandler(cls);
    }

    return (result);
  }
 /**
  * Defines a handler to use for converting a particular CharacterStyle subclass to a particular
  * XHTML tag structure
  *
  * @param handler the SpanTagHandler to register
  */
 public void registerSpanTagHandler(SpanTagHandler handler) {
   handlers.add(handler);
   handlersByCharacterStyle.put(handler.getSupportedCharacterStyle(), handler);
 }