summaryrefslogtreecommitdiff
path: root/qpid/java
diff options
context:
space:
mode:
authorAlex Rudyy <orudyy@apache.org>2013-10-05 00:26:24 +0000
committerAlex Rudyy <orudyy@apache.org>2013-10-05 00:26:24 +0000
commite41d1f62a9ada60d9171d142ea5cb079ed46531c (patch)
tree4b975c63935172689c6aed2f8aa66758136b2998 /qpid/java
parent9366c44105c48ed2470dbe32d0681b14c3f7ad9e (diff)
downloadqpid-python-e41d1f62a9ada60d9171d142ea5cb079ed46531c.tar.gz
QPID-5138: Optimize code in preferences provider recoverer
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1529360 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'qpid/java')
-rw-r--r--qpid/java/broker-core/src/main/java/org/apache/qpid/server/configuration/startup/PreferencesProviderRecoverer.java14
-rw-r--r--qpid/java/broker-core/src/main/java/org/apache/qpid/server/configuration/startup/RecovererHelper.java18
2 files changed, 15 insertions, 17 deletions
diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/configuration/startup/PreferencesProviderRecoverer.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/configuration/startup/PreferencesProviderRecoverer.java
index 72480a2795..db3f968435 100644
--- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/configuration/startup/PreferencesProviderRecoverer.java
+++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/configuration/startup/PreferencesProviderRecoverer.java
@@ -38,19 +38,7 @@ public class PreferencesProviderRecoverer implements ConfiguredObjectRecoverer<P
public PreferencesProvider create(RecovererProvider recovererProvider, ConfigurationEntry entry,
ConfiguredObject... parents)
{
- if (parents == null || parents.length == 0)
- {
- throw new IllegalArgumentException("AuthenticationProvider parent is not passed!");
- }
- if (parents.length != 1)
- {
- throw new IllegalArgumentException("Only one parent is expected!");
- }
- if (!(parents[0] instanceof AuthenticationProvider))
- {
- throw new IllegalArgumentException("Parent is not a AuthenticationProvider");
- }
- AuthenticationProvider authenticationProvider = (AuthenticationProvider)parents[0];
+ AuthenticationProvider authenticationProvider = RecovererHelper.verifyOnlyParentIsOfType(AuthenticationProvider.class, parents);
Map<String, Object> attributes = entry.getAttributes();
String type = MapValueConverter.getStringAttribute(PreferencesProvider.TYPE, attributes);
PreferencesProviderFactory factory = PreferencesProviderFactory.FACTORIES.get(type);
diff --git a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/configuration/startup/RecovererHelper.java b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/configuration/startup/RecovererHelper.java
index b60c9c289f..cc0426131f 100644
--- a/qpid/java/broker-core/src/main/java/org/apache/qpid/server/configuration/startup/RecovererHelper.java
+++ b/qpid/java/broker-core/src/main/java/org/apache/qpid/server/configuration/startup/RecovererHelper.java
@@ -27,18 +27,28 @@ public class RecovererHelper
{
public static Broker verifyOnlyBrokerIsParent(ConfiguredObject... parents)
{
+ return verifyOnlyParentIsOfType(Broker.class, parents);
+ }
+
+ @SuppressWarnings("unchecked")
+ public static <T extends ConfiguredObject> T verifyOnlyParentIsOfType(Class<T> parentClass, ConfiguredObject... parents)
+ {
+ if (parentClass == null)
+ {
+ throw new IllegalArgumentException("Parent class is not specified!");
+ }
if (parents == null || parents.length == 0)
{
- throw new IllegalArgumentException("Broker parent is not passed!");
+ throw new IllegalArgumentException("Parent of type " + parentClass.getSimpleName() +" is not passed!");
}
if (parents.length != 1)
{
throw new IllegalArgumentException("Only one parent is expected!");
}
- if (!(parents[0] instanceof Broker))
+ if (!parentClass.isAssignableFrom(parents[0].getClass()))
{
- throw new IllegalArgumentException("Parent is not a broker");
+ throw new IllegalArgumentException("Parent is not instance of " + parentClass.getSimpleName());
}
- return (Broker)parents[0];
+ return (T)parents[0];
}
}