Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  package org.jboss.errai.ui.shared.api.style;
  
  import java.util.HashMap;
  import java.util.HashSet;
  import java.util.List;
  import java.util.Map;
  import java.util.Set;
 
 import  com.google.gwt.user.client.Element;

Author(s):
Mike Brock
 
 public class StyleBindingsRegistry {
   private static StyleBindingsRegistry INSTANCE = new StyleBindingsRegistry();
 
   private final Map<ObjectList<Object>> houseKeepingMap = new HashMap<ObjectList<Object>>();
   private final Map<Class<? extends Annotation>, List<StyleBindingExecutor>> styleBindings =
       new HashMap<Class<? extends Annotation>, List<StyleBindingExecutor>>();
 
   private final Map<Class<? extends Annotation>, Set<Annotation>> mapping =
       new HashMap<Class<? extends Annotation>, Set<Annotation>>();
 
   public void addStyleBinding(final Object beanInstfinal Class<? extends Annotationannotation,
           final StyleBindingExecutor binding) {
 
     List<StyleBindingExecutorstyleBindingList = .get(annotation);
     if (styleBindingList == null) {
       .put(annotationstyleBindingList = new ArrayList<StyleBindingExecutor>());
     }
     styleBindingList.add(binding);
     recordHouskeepingData(beanInstbinding);
     updateStyles();
   }
 
   public void addElementBinding(final Object beanInstfinal Annotation annotationfinal Element element) {
     addElementBinding(annotationnew ElementBinding(thiselementbeanInst));
   }
 
   private void addElementBinding(final Annotation annotationfinal ElementBinding binding) {
     List<ElementBindingelementsList = .get(annotation);
     if (elementsList == null) {
       .put(annotationelementsList = new ArrayList<ElementBinding>());
     }
     elementsList.add(binding);
     Set<AnnotationmappedAnnotations = .get(annotation.annotationType());
     if (mappedAnnotations == null) {
       .put(annotation.annotationType(), mappedAnnotations = new HashSet<Annotation>());
     }
     mappedAnnotations.add(annotation);
     recordHouskeepingData(binding.getBeanInstance(), binding);
   }
 
   private void recordHouskeepingData(final Object beanInstfinal Object toClean) {
     List<ObjecttoCleanList = .get(beanInst);
     if (toCleanList == null) {
       .put(beanInsttoCleanList = new ArrayList<Object>());
     }
     toCleanList.add(toClean);
   }
 
   public void cleanAllForBean(final Object beanInst) {
     final List<ObjecttoCleanList = .get(beanInst);
     if (toCleanList != null) {
       for (final Object o : toCleanList) {
         for (final List<StyleBindingExecutorexecutorList : .values()) {
           executorList.remove(o);
         }
         for (final List<ElementBindingbindingList : .values()) {
           bindingList.remove(o);
         }
       }
 
       .remove(beanInst);
     }
   }
 
   public void updateStyles() {
     updateStyles(null);
   }
 
   public void updateStyles(Object beanInst) {
     for (final Map.Entry<Class<? extends Annotation>, List<StyleBindingExecutor>> entry : .entrySet()) {
       if (.containsKey(entry.getKey())) {
         for (final Annotation mappedAnnotation : .get(entry.getKey())) {
           final List<ElementBindingelementList = .get(mappedAnnotation);
           if (elementList != null) {
             for (final ElementBinding binding : elementList) {
               if (beanInst == null || beanInst.equals(binding.getBeanInstance())) {
                 for (final StyleBindingExecutor executor : entry.getValue()) {
                   if (executor instanceof AnnotationStyleBindingExecutor) {
                     ((AnnotationStyleBindingExecutorexecutor).invokeBinding(binding.getElement(), mappedAnnotation);
                   }
                   else {
                     executor.invokeBinding(binding.getElement());
                   }
                }
              }
            }
          }
        }
      }
    }
  }
  public static StyleBindingsRegistry get() {
    return ;
  }
  public static void set(StyleBindingsRegistry registry) {
     = registry;
  }
  public static void reset() {
    if ( != null) {
      ..clear();
    }
    set(new StyleBindingsRegistry());
  }
New to GrepCode? Check out our FAQ X