Skip to content

Commit 3caf173

Browse files
authored
Merge pull request #1658 from yue9944882/model-mapper-lister-kind
Chore: Adding static helper to register lister kind to ModelMapper
2 parents cb5750f + 56e6391 commit 3caf173

File tree

1 file changed

+37
-11
lines changed

1 file changed

+37
-11
lines changed

util/src/main/java/io/kubernetes/client/util/ModelMapper.java

Lines changed: 37 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -117,13 +117,21 @@ public static void addModelMap(String group, String version, String kind, Class<
117117
* @param version the version
118118
* @param kind the kind
119119
* @param resourceNamePlural the resource name plural
120-
* @param clazz the clazz
120+
* @param objClass the clazz
121121
*/
122122
public static void addModelMap(
123-
String group, String version, String kind, String resourceNamePlural, Class<?> clazz) {
123+
String group,
124+
String version,
125+
String kind,
126+
String resourceNamePlural,
127+
Class<? extends KubernetesObject> objClass,
128+
Class<? extends KubernetesListObject> objListClass) {
124129
// TODO(yue9944882): consistency between bi-directional maps
125-
classesByGVK.add(new GroupVersionKind(group, version, kind), clazz);
126-
classesByGVR.add(new GroupVersionResource(group, version, resourceNamePlural), clazz);
130+
classesByGVK.add(new GroupVersionKind(group, version, kind), objClass);
131+
classesByGVR.add(new GroupVersionResource(group, version, resourceNamePlural), objClass);
132+
if (objListClass != null) {
133+
classesByGVK.add(new GroupVersionKind(group, version, kind + "List"), objListClass);
134+
}
127135
}
128136

129137
/**
@@ -135,17 +143,29 @@ public static void addModelMap(
135143
* @param kind the kind
136144
* @param resourceNamePlural the resource name plural
137145
* @param isNamespacedResource the is namespaced resource
138-
* @param clazz the clazz
146+
* @param objClass the clazz
139147
*/
140148
public static void addModelMap(
141149
String group,
142150
String version,
143151
String kind,
144152
String resourceNamePlural,
145153
Boolean isNamespacedResource,
146-
Class<?> clazz) {
147-
addModelMap(group, version, kind, resourceNamePlural, clazz);
148-
isNamespacedByClasses.put(clazz, isNamespacedResource);
154+
Class<? extends KubernetesObject> objClass) {
155+
addModelMap(group, version, kind, resourceNamePlural, objClass, null);
156+
isNamespacedByClasses.put(objClass, isNamespacedResource);
157+
}
158+
159+
public static void addModelMap(
160+
String group,
161+
String version,
162+
String kind,
163+
String resourceNamePlural,
164+
Boolean isNamespacedResource,
165+
Class<? extends KubernetesObject> objClass,
166+
Class<? extends KubernetesListObject> objListClass) {
167+
addModelMap(group, version, kind, resourceNamePlural, objClass, objListClass);
168+
isNamespacedByClasses.put(objClass, isNamespacedResource);
149169
}
150170

151171
/**
@@ -240,19 +260,25 @@ public static Set<Discovery.APIResource> refresh(Discovery discovery, Duration r
240260

241261
for (Discovery.APIResource apiResource : apiResources) {
242262
for (String version : apiResource.getVersions()) {
243-
Class<?> clazz = getApiTypeClass(apiResource.getGroup(), version, apiResource.getKind());
263+
Class<? extends KubernetesObject> objClass =
264+
(Class<? extends KubernetesObject>)
265+
getApiTypeClass(apiResource.getGroup(), version, apiResource.getKind());
244266
// no such classes registered in the ModelMapper, ignoring
245-
if (clazz == null) {
267+
if (objClass == null) {
246268
continue;
247269
}
270+
Class<? extends KubernetesListObject> objListClass =
271+
(Class<? extends KubernetesListObject>)
272+
getApiTypeClass(apiResource.getGroup(), version, apiResource.getKind() + "List");
248273
// sync up w/ the latest api discovery
249274
addModelMap(
250275
apiResource.getGroup(),
251276
version,
252277
apiResource.getKind(),
253278
apiResource.getResourcePlural(),
254279
apiResource.getNamespaced(),
255-
clazz);
280+
objClass,
281+
objListClass);
256282
}
257283
}
258284

0 commit comments

Comments
 (0)