// XXX optimize synchronized
private static synchronized Classes create(
final UIComponent component, final boolean markupFromComponent, final String sub,
final Markup explicit, final boolean ignoreCheck) {
final String rendererName = StringUtils.uncapitalize(component.getRendererType());
final Markup markup = markupFromComponent ? ((SupportsMarkup) component).getCurrentMarkup() : explicit;
Classes value = (Classes) CACHE.get(rendererName, markup, sub);
if (value == null) {
value = new Classes(rendererName, markup, sub, ignoreCheck);
CACHE.put(rendererName, markup, sub, value);
if (LOG.isDebugEnabled()) {