Index: library/src/java/org/apache/hivemind/lib/BeanFactory.java =================================================================== RCS file: /home/cvspublic/jakarta-hivemind/library/src/java/org/apache/hivemind/lib/BeanFactory.java,v retrieving revision 1.2 diff -u -r1.2 BeanFactory.java --- library/src/java/org/apache/hivemind/lib/BeanFactory.java 15 Jun 2004 13:42:33 -0000 1.2 +++ library/src/java/org/apache/hivemind/lib/BeanFactory.java 4 Aug 2004 05:47:09 -0000 @@ -32,6 +32,15 @@ public interface BeanFactory { /** + * Returns true if there is a bean matching the provided locator has been + * defined. + * + * @param locator the name or name and initializer + * @return true if a bean matching the provided locator has ben defined + */ + public boolean contains(String locator); + + /** * Gets a bean via its locator (it's name plus, optionally, an initializer). * * @param locator the name or name and initializer Index: library/src/java/org/apache/hivemind/lib/factory/BeanFactoryImpl.java =================================================================== RCS file: /home/cvspublic/jakarta-hivemind/library/src/java/org/apache/hivemind/lib/factory/BeanFactoryImpl.java,v retrieving revision 1.2 diff -u -r1.2 BeanFactoryImpl.java --- library/src/java/org/apache/hivemind/lib/factory/BeanFactoryImpl.java 17 Jun 2004 15:16:12 -0000 1.2 +++ library/src/java/org/apache/hivemind/lib/factory/BeanFactoryImpl.java 4 Aug 2004 05:47:10 -0000 @@ -55,6 +55,14 @@ processContributions(contributions); } + + public boolean contains(String locator) { + int commax = locator.indexOf(','); + + String name = commax < 0 ? locator.trim() : locator.substring(0, commax); + + return _contributions.containsKey(name); + } private void processContributions(List list) { @@ -162,4 +170,4 @@ } } -} +} \ No newline at end of file Index: library/src/test/org/apache/hivemind/lib/factory/TestBeanFactoryImpl.java =================================================================== RCS file: /home/cvspublic/jakarta-hivemind/library/src/test/org/apache/hivemind/lib/factory/TestBeanFactoryImpl.java,v retrieving revision 1.4 diff -u -r1.4 TestBeanFactoryImpl.java --- library/src/test/org/apache/hivemind/lib/factory/TestBeanFactoryImpl.java 3 Aug 2004 14:02:17 -0000 1.4 +++ library/src/test/org/apache/hivemind/lib/factory/TestBeanFactoryImpl.java 4 Aug 2004 05:47:11 -0000 @@ -243,4 +243,25 @@ assertEquals(new Integer(27), f.get("int,27")); assertEquals(new Double(-22.5), f.get("double,-22.5")); } + + public void testContains() { + List l = Collections.singletonList(build("integer", Integer.class)); + + BeanFactoryImpl f = new BeanFactoryImpl(null, null, Integer.class, l, true); + + boolean contains = f.contains("integer"); + + assertTrue(contains); + } + + public void testContainsFailure() + { + List l = Collections.singletonList(build("integer", Integer.class)); + + BeanFactoryImpl f = new BeanFactoryImpl(null, null, Integer.class, l, true); + + boolean contains = f.contains("not_found"); + + assertTrue(!contains); + } }