Skip to content

Commit a805819

Browse files
committed
introduced populateDefaults template method (SPR-6010)
1 parent 022b8b4 commit a805819

File tree

1 file changed

+18
-14
lines changed

1 file changed

+18
-14
lines changed

org.springframework.beans/src/main/java/org/springframework/beans/factory/xml/BeanDefinitionParserDelegate.java

+18-14
Original file line numberDiff line numberDiff line change
@@ -235,9 +235,9 @@ public class BeanDefinitionParserDelegate {
235235

236236
private final XmlReaderContext readerContext;
237237

238-
private DocumentDefaultsDefinition defaults;
238+
private final DocumentDefaultsDefinition defaults = new DocumentDefaultsDefinition();
239239

240-
private ParseState parseState = new ParseState();
240+
private final ParseState parseState = new ParseState();
241241

242242
/**
243243
* Stores all used bean names so we can enforce uniqueness on a per file basis.
@@ -295,10 +295,19 @@ protected void error(String message, Element source, Throwable cause) {
295295
/**
296296
* Initialize the default lazy-init, autowire, dependency check settings,
297297
* init-method, destroy-method and merge settings.
298+
* @see #populateDefaults(DocumentDefaultsDefinition, org.w3c.dom.Element)
298299
* @see #getDefaults()
299300
*/
300301
public void initDefaults(Element root) {
301-
DocumentDefaultsDefinition defaults = new DocumentDefaultsDefinition();
302+
populateDefaults(this.defaults, root);
303+
this.readerContext.fireDefaultsRegistered(this.defaults);
304+
}
305+
306+
/**
307+
* Populate the given DocumentDefaultsDefinition instance with the default lazy-init,
308+
* autowire, dependency check settings, init-method, destroy-method and merge settings.
309+
*/
310+
protected void populateDefaults(DocumentDefaultsDefinition defaults, Element root) {
302311
defaults.setLazyInit(root.getAttribute(DEFAULT_LAZY_INIT_ATTRIBUTE));
303312
defaults.setMerge(root.getAttribute(DEFAULT_MERGE_ATTRIBUTE));
304313
defaults.setAutowire(root.getAttribute(DEFAULT_AUTOWIRE_ATTRIBUTE));
@@ -313,9 +322,6 @@ public void initDefaults(Element root) {
313322
defaults.setDestroyMethod(root.getAttribute(DEFAULT_DESTROY_METHOD_ATTRIBUTE));
314323
}
315324
defaults.setSource(this.readerContext.extractSource(root));
316-
317-
this.defaults = defaults;
318-
this.readerContext.fireDefaultsRegistered(defaults);
319325
}
320326

321327
/**
@@ -332,13 +338,11 @@ public DocumentDefaultsDefinition getDefaults() {
332338
*/
333339
public BeanDefinitionDefaults getBeanDefinitionDefaults() {
334340
BeanDefinitionDefaults bdd = new BeanDefinitionDefaults();
335-
if (this.defaults != null) {
336-
bdd.setLazyInit("TRUE".equalsIgnoreCase(this.defaults.getLazyInit()));
337-
bdd.setDependencyCheck(this.getDependencyCheck(DEFAULT_VALUE));
338-
bdd.setAutowireMode(this.getAutowireMode(DEFAULT_VALUE));
339-
bdd.setInitMethodName(this.defaults.getInitMethod());
340-
bdd.setDestroyMethodName(this.defaults.getDestroyMethod());
341-
}
341+
bdd.setLazyInit("TRUE".equalsIgnoreCase(this.defaults.getLazyInit()));
342+
bdd.setDependencyCheck(this.getDependencyCheck(DEFAULT_VALUE));
343+
bdd.setAutowireMode(this.getAutowireMode(DEFAULT_VALUE));
344+
bdd.setInitMethodName(this.defaults.getInitMethod());
345+
bdd.setDestroyMethodName(this.defaults.getDestroyMethod());
342346
return bdd;
343347
}
344348

@@ -348,7 +352,7 @@ public BeanDefinitionDefaults getBeanDefinitionDefaults() {
348352
*/
349353
public String[] getAutowireCandidatePatterns() {
350354
String candidatePattern = this.defaults.getAutowireCandidates();
351-
return candidatePattern == null ? null : StringUtils.commaDelimitedListToStringArray(candidatePattern);
355+
return (candidatePattern != null ? StringUtils.commaDelimitedListToStringArray(candidatePattern) : null);
352356
}
353357

354358

0 commit comments

Comments
 (0)