From d3ad3a2e66a543f2bc71d1d2d76cc2ee397c6217 Mon Sep 17 00:00:00 2001 From: Michael Zalewski Date: Mon, 30 Apr 2018 16:37:51 -0400 Subject: [PATCH] Adding ScimExtensionUtil.java --- .../psu/swe/scim/util/ScimExtensionUtil.java | 40 +++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 scim-client/src/main/java/edu/psu/swe/scim/util/ScimExtensionUtil.java diff --git a/scim-client/src/main/java/edu/psu/swe/scim/util/ScimExtensionUtil.java b/scim-client/src/main/java/edu/psu/swe/scim/util/ScimExtensionUtil.java new file mode 100644 index 0000000..05f036f --- /dev/null +++ b/scim-client/src/main/java/edu/psu/swe/scim/util/ScimExtensionUtil.java @@ -0,0 +1,40 @@ +package edu.psu.swe.scim.util; + +import java.util.Collection; +import java.util.Map; + +import edu.psu.swe.scim.spec.extension.ScimExtensionRegistry; +import edu.psu.swe.scim.spec.resources.ScimExtension; +import edu.psu.swe.scim.spec.resources.ScimResource; + +/** + * + * @author mez5001 + * + * This class exposes the SCIM extension methods without requiring that the project using the client knows + * how the ScimExtensionRegistry works + */ +public class ScimExtensionUtil { + + /** + * Register a single extension for a single resource + * @param rClass ScimResource class + * @param eClass Extension class + */ + public static void registerExtension(Class rClass, Class eClass) { + ScimExtensionRegistry.getInstance().registerExtension(rClass, eClass); + } + + /** + * Register multiple extensions through a map + * @param extensions Map containing all of the ScimResources and the accompanying Extensions + */ + public static void registerExtensions(Map, Collection>> extensions) { + for(Map.Entry, Collection>> entry : extensions.entrySet()) { + Class resource = entry.getKey(); + for(Class extension : entry.getValue()) { + ScimExtensionRegistry.getInstance().registerExtension(resource, extension); + } + } + } +}