@SuppressWarnings("unchecked") private void init() throws Exception { Collection<SecurityConfigurer<O, B>> configurers = getConfigurers(); for (SecurityConfigurer<O, B> configurer : configurers) { configurer.init((B) this); } for (SecurityConfigurer<O, B> configurer : configurersAddedInInitializing) { configurer.init((B) this); } }
@Test public void buildWhenConfigurerAppliesAnotherConfigurerThenObjectStillBuilds() throws Exception { DelegateSecurityConfigurer.CONFIGURER = mock(SecurityConfigurer.class); this.builder.apply(new DelegateSecurityConfigurer()); this.builder.build(); verify(DelegateSecurityConfigurer.CONFIGURER).init(this.builder); verify(DelegateSecurityConfigurer.CONFIGURER).configure(this.builder); }
@SuppressWarnings("unchecked") private void init() throws Exception { Collection<SecurityConfigurer<O, B>> configurers = getConfigurers(); for (SecurityConfigurer<O, B> configurer : configurers) { configurer.init((B) this); } for (SecurityConfigurer<O, B> configurer : configurersAddedInInitializing) { configurer.init((B) this); } }
@SuppressWarnings("unchecked") private void init() throws Exception { Collection<SecurityConfigurer<O, B>> configurers = getConfigurers(); for (SecurityConfigurer<O, B> configurer : configurers) { configurer.init((B) this); } for (SecurityConfigurer<O, B> configurer : configurersAddedInInitializing) { configurer.init((B) this); } }
@SuppressWarnings("unchecked") private void init() throws Exception { Collection<SecurityConfigurer<O,B>> configurers = getConfigurers(); for(SecurityConfigurer<O,B> configurer : configurers ) { configurer.init((B) this); } }
/** * Adds {@link SecurityConfigurer} ensuring that it is allowed and * invoking {@link SecurityConfigurer#init(SecurityBuilder)} immediately * if necessary. * * @param configurer the {@link SecurityConfigurer} to add * @throws Exception if an error occurs */ @SuppressWarnings("unchecked") private <C extends SecurityConfigurer<O, B>> void add(C configurer) throws Exception { Assert.notNull(configurer, "configurer cannot be null"); Class<? extends SecurityConfigurer<O, B>> clazz = (Class<? extends SecurityConfigurer<O, B>>) configurer .getClass(); synchronized(configurers) { if(buildState.isConfigured()) { throw new IllegalStateException("Cannot apply "+configurer+" to already built object"); } List<SecurityConfigurer<O, B>> configs = allowConfigurersOfSameType ? this.configurers.get(clazz) : null; if(configs == null) { configs = new ArrayList<SecurityConfigurer<O,B>>(1); } configs.add(configurer); this.configurers.put(clazz, configs); if(buildState.isInitializing()) { configurer.init((B)this); } } }