1
1
/*
2
- * Copyright 2002-2024 the original author or authors.
2
+ * Copyright 2002-2022 the original author or authors.
3
3
*
4
4
* Licensed under the Apache License, Version 2.0 (the "License");
5
5
* you may not use this file except in compliance with the License.
35
35
* @author Costin Leau
36
36
* @since 2.5
37
37
*/
38
- public class CachingMetadataReaderFactory implements MetadataReaderFactory {
38
+ public class CachingMetadataReaderFactory extends SimpleMetadataReaderFactory {
39
39
40
40
/** Default maximum number of entries for a local MetadataReader cache: 256. */
41
41
public static final int DEFAULT_CACHE_LIMIT = 256 ;
42
42
43
- private final MetadataReaderFactory delegate ;
44
-
45
43
/** MetadataReader cache: either local or shared at the ResourceLoader level. */
46
44
@ Nullable
47
45
private Map <Resource , MetadataReader > metadataReaderCache ;
@@ -52,7 +50,7 @@ public class CachingMetadataReaderFactory implements MetadataReaderFactory {
52
50
* using a local resource cache.
53
51
*/
54
52
public CachingMetadataReaderFactory () {
55
- this . delegate = MetadataReaderFactory . create (( ClassLoader ) null );
53
+ super ( );
56
54
setCacheLimit (DEFAULT_CACHE_LIMIT );
57
55
}
58
56
@@ -62,7 +60,7 @@ public CachingMetadataReaderFactory() {
62
60
* @param classLoader the ClassLoader to use
63
61
*/
64
62
public CachingMetadataReaderFactory (@ Nullable ClassLoader classLoader ) {
65
- this . delegate = MetadataReaderFactory . create (classLoader );
63
+ super (classLoader );
66
64
setCacheLimit (DEFAULT_CACHE_LIMIT );
67
65
}
68
66
@@ -74,7 +72,7 @@ public CachingMetadataReaderFactory(@Nullable ClassLoader classLoader) {
74
72
* @see DefaultResourceLoader#getResourceCache
75
73
*/
76
74
public CachingMetadataReaderFactory (@ Nullable ResourceLoader resourceLoader ) {
77
- this . delegate = MetadataReaderFactory . create (resourceLoader );
75
+ super (resourceLoader );
78
76
if (resourceLoader instanceof DefaultResourceLoader defaultResourceLoader ) {
79
77
this .metadataReaderCache = defaultResourceLoader .getResourceCache (MetadataReader .class );
80
78
}
@@ -83,6 +81,7 @@ public CachingMetadataReaderFactory(@Nullable ResourceLoader resourceLoader) {
83
81
}
84
82
}
85
83
84
+
86
85
/**
87
86
* Specify the maximum number of entries for the MetadataReader cache.
88
87
* <p>Default is 256 for a local cache, whereas a shared cache is
@@ -113,18 +112,14 @@ public int getCacheLimit() {
113
112
}
114
113
}
115
114
116
- @ Override
117
- public MetadataReader getMetadataReader (String className ) throws IOException {
118
- return this .delegate .getMetadataReader (className );
119
- }
120
115
121
116
@ Override
122
117
public MetadataReader getMetadataReader (Resource resource ) throws IOException {
123
118
if (this .metadataReaderCache instanceof ConcurrentMap ) {
124
119
// No synchronization necessary...
125
120
MetadataReader metadataReader = this .metadataReaderCache .get (resource );
126
121
if (metadataReader == null ) {
127
- metadataReader = this . delegate .getMetadataReader (resource );
122
+ metadataReader = super .getMetadataReader (resource );
128
123
this .metadataReaderCache .put (resource , metadataReader );
129
124
}
130
125
return metadataReader ;
@@ -133,14 +128,14 @@ else if (this.metadataReaderCache != null) {
133
128
synchronized (this .metadataReaderCache ) {
134
129
MetadataReader metadataReader = this .metadataReaderCache .get (resource );
135
130
if (metadataReader == null ) {
136
- metadataReader = this . delegate .getMetadataReader (resource );
131
+ metadataReader = super .getMetadataReader (resource );
137
132
this .metadataReaderCache .put (resource , metadataReader );
138
133
}
139
134
return metadataReader ;
140
135
}
141
136
}
142
137
else {
143
- return this . delegate .getMetadataReader (resource );
138
+ return super .getMetadataReader (resource );
144
139
}
145
140
}
146
141
0 commit comments