From e41d1f62a9ada60d9171d142ea5cb079ed46531c Mon Sep 17 00:00:00 2001 From: Alex Rudyy Date: Sat, 5 Oct 2013 00:26:24 +0000 Subject: 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 --- .../startup/PreferencesProviderRecoverer.java | 14 +------------- .../server/configuration/startup/RecovererHelper.java | 18 ++++++++++++++---- 2 files changed, 15 insertions(+), 17 deletions(-) (limited to 'qpid/java') 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

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 verifyOnlyParentIsOfType(Class 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]; } } -- cgit v1.2.1