code_junkie

Map of Enums and dependency injection in Spring 2.5

Nov 10th, 2011
161
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.55 KB | None | 0 0
  1. public class Maintainer {
  2. private Map<Enum, List<Listener>> map;
  3.  
  4. public Maintainer() {
  5. this.map = new java.util.ConcurrentHashMap<Enum, List<Listener>>();
  6. }
  7.  
  8. public void addListener( Listener listener, Enum eventType ) {
  9. List<Listener> listeners;
  10. if( ( listeners = map.get( eventType ) ) == null ) {
  11. listeners = new java.util.concurrent.CopyOnWriteArrayList<Listener>();
  12. map.put( eventType, listeners );
  13. }
  14. listeners.add( listener );
  15. }
  16. }
  17.  
  18. if( ( listeners = map.get( eventType ) ) == null ) {
  19. listeners = new java.util.concurrent.CopyOnWriteArrayList<Listener>();
  20. map.put( eventType, listeners );
  21. }
  22. listeners.add( listener );
  23.  
  24. private Map<Enum, List<Listener>> map;
  25.  
  26. ...
  27.  
  28. map.put( eventType, listeners );
  29.  
  30. private ConcurrentMap<Enum, List<Listener>> map;
  31.  
  32. ...
  33.  
  34. map.putIfAbsent( eventType, listeners );
  35. listeners = map.get( eventType );
  36.  
  37. <bean id="maintainer" class="com.example.Maintainer"/>
  38.  
  39. <bean id="listener" class="com.example.Listener"/>
  40.  
  41. <bean id="maintainer.addListener" class="org.springframework.beans.factory.config.MethodInvokingFactoryBean">
  42. <property name="targetObject" ref="maintainer"/>
  43. <property name="targetMethod" value="addListener"/>
  44. <property name="arguments">
  45. <list>
  46. <ref>listener</ref>
  47. <value>com.example.MyEnum</value>
  48. </list>
  49. </property>
  50. </bean>
  51.  
  52. public interface MyListener extends Listener {
  53. public Enum[] getEventTypes()
  54. }
  55.  
  56. public void addListener(MyListener listener)
  57.  
  58. public @interface MyAnnotation {
  59. MyEnum value();
  60. }
Add Comment
Please, Sign In to add comment