Print

Print


Commit in GeomConverter on MAIN
src/org/lcsim/detector/DetectorElement.java+17-11.28 -> 1.29
                      /DetectorElementContainer.java+62-171.6 -> 1.7
                      /DetectorElementStore.java+16-111.4 -> 1.5
                      /IDetectorElement.java+9-21.18 -> 1.19
                      /IDetectorElementContainer.java+17-101.7 -> 1.8
                      /IDetectorElementStore.java+4-81.4 -> 1.5
                      /IParametersStore.java+8-31.1 -> 1.2
                      /ParametersStore.java+3-31.1 -> 1.2
src/org/lcsim/detector/converter/XMLConverter.java+1-31.2 -> 1.3
src/org/lcsim/detector/converter/compact/DetectorConverter.java+1-11.18 -> 1.19
                                        /SiTrackerBarrelConverter.java+2-21.18 -> 1.19
src/org/lcsim/detector/identifier/IIdentifiable.java+2-21.5 -> 1.6
                                 /IIdentifierDictionary.java+3-31.5 -> 1.6
                                 /IIdentifierField.java+4-41.4 -> 1.5
src/org/lcsim/detector/tracker/silicon/DeSiTrackerBarrel.java+40added 1.1
                                      /SiSensor.java+2-31.8 -> 1.9
test/org/lcsim/detector/SimpleDetectorTest.java-11.13 -> 1.14
test/org/lcsim/detector/converter/compact/DetectorConverterTest.java+6-31.10 -> 1.11
+197-77
1 added + 17 modified, total 18 files
JM: Miscellaneous updates to org.lcsim.detector.

GeomConverter/src/org/lcsim/detector
DetectorElement.java 1.28 -> 1.29
diff -u -r1.28 -r1.29
--- DetectorElement.java	23 May 2007 00:09:15 -0000	1.28
+++ DetectorElement.java	25 May 2007 20:16:26 -0000	1.29
@@ -13,7 +13,7 @@
  * Implementation of {@link IDetectorElement}.
  * 
  * @author Jeremy McCormick
- * @version $Id: DetectorElement.java,v 1.28 2007/05/23 00:09:15 jeremy Exp $
+ * @version $Id: DetectorElement.java,v 1.29 2007/05/25 20:16:26 jeremy Exp $
  */
 public class DetectorElement 
 extends Named
@@ -546,4 +546,20 @@
         this.parameters = parameters;
     }
     
+    /**
+     * Default implementation of {@link IDetectorElement#findDetectorElement(IIdentifier)}.
+     * Specific types of {@link IDetectorElement}s can override the default scheme. 
+     */
+    public IDetectorElementContainer findDetectorElement(IIdentifier id)
+    {
+        IDetectorElementContainer search = DetectorElementStore.getInstance().find(id);
+        for (IDetectorElement de : search)
+        {
+            if (!isDescendant(de))
+            {
+                search.remove(de);
+            }
+        }
+        return search;
+    }      
 }
\ No newline at end of file

GeomConverter/src/org/lcsim/detector
DetectorElementContainer.java 1.6 -> 1.7
diff -u -r1.6 -r1.7
--- DetectorElementContainer.java	23 May 2007 00:09:15 -0000	1.6
+++ DetectorElementContainer.java	25 May 2007 20:16:26 -0000	1.7
@@ -13,38 +13,83 @@
 extends ArrayList<IDetectorElement>
 implements IDetectorElementContainer
 {       
-    public IDetectorElement get(String name)
+    public IDetectorElementContainer find(String name)
     {
-        IDetectorElement search=null;
+        IDetectorElementContainer matches = new DetectorElementContainer();
         for ( IDetectorElement de : this )
         {
-            if ( de.getName().equals(name))
+            if (de.getName().equals(name))
             {
-                search = de;
-                break;
+                matches.add(de);
             }
         }
-        return search;
+        return matches;
     }   
-        
-    public boolean contains(String name)
+    
+    public IDetectorElementContainer find(IIdentifier id)
     {
-        return get(name) != null;
+        IDetectorElementContainer matches = new DetectorElementContainer();
+        if (id != null) 
+        {
+            for (IDetectorElement de : this)
+            {
+                if (de.getIdentifier() != null)
+                {
+                    if (de.getIdentifier().equals(id))
+                    {
+                        matches.add(de);
+                    }
+                }
+            }
+        }
+        return matches;
     }
-    
-    public boolean add(IDetectorElement de)
+                
+    public IDetectorElementContainer find(Class<? extends IDetectorElement> klass)
     {
-        if ( contains(de) )
+        DetectorElementContainer matches = new DetectorElementContainer();
+        for (IDetectorElement de : this)
+        {
+            for (Class checkClass : de.getClass().getClasses() )
+            {
+                if (checkClass.equals(klass))
+                {
+                    matches.add(de);
+                }
+            }
+        }
+        return matches;
+    }   
+
+    /**
+     * Current implementation does not allow duplicate name, id, or object.
+     */
+    public boolean add(IDetectorElement de)
+    {                        
+        if (de == null)
         {
-            throw new IllegalArgumentException("The DetectorElement <"+de.getName()+"> is already registered!");
+            throw new IllegalArgumentException("The DetectorElement argument points to null!");
         }
-        
-        if ( get(de.getName()) != null ) 
+
+        if (contains(de))
         {
-            throw new IllegalArgumentException("There is already a DetectorElement called <"+de.getName()+"> in this container!");
+            throw new IllegalArgumentException("The DetectorElement called <"+de.getName()+"> is already registered!");
+        }        
+
+        if (find(de.getName()).size() > 0)
+        {
+            throw new IllegalArgumentException("Duplicate DetectorElement name <"+de.getName()+">.");
         }
         
-        super.add(de);            
+        if (de.getIdentifier() != null)
+        {
+            if (find(de.getIdentifier()).size() > 0)
+            {
+                throw new IllegalArgumentException("Duplicate identifier <"+de.getIdentifier().toString()+">.");
+            }
+        }       
+        
+        super.add(de);
         return true;
     }
 }
\ No newline at end of file

GeomConverter/src/org/lcsim/detector
DetectorElementStore.java 1.4 -> 1.5
diff -u -r1.4 -r1.5
--- DetectorElementStore.java	23 May 2007 00:09:15 -0000	1.4
+++ DetectorElementStore.java	25 May 2007 20:16:26 -0000	1.5
@@ -22,23 +22,28 @@
 		return store;
 	}
     
-    public IDetectorElement findDetectorElement(IIdentifier id)
-    {        
-        return cache.get(id.getValue());
-    }    
-    
     public boolean add(IDetectorElement de)
-    {            
-        if ( de.getIdentifier() != null )
+    {
+        IIdentifier id = de.getIdentifier();
+        if (id != null)
         {
-            if ( cache.get( de.getIdentifier() ) != null )
+            if (cache.get(id.getValue()) == null)
+            {
+                cache.put(id.getValue(), de);
+            }
+            else 
             {
-                throw new IllegalArgumentException("The identifier <" + de.getIdentifier().toString() + "> on DetectorElement <" + de.getName() + "> already exists.");
+                throw new IllegalArgumentException("Already have cached DetectorElement for id <"+de.getIdentifier()+">.");
             }
-            cache.put(de.getIdentifier().getValue(), de);
         }
-        super.add(de);
         return true;
     }
     
+    public IDetectorElementContainer find(IIdentifier id)
+    {  
+        IDetectorElementContainer match = new DetectorElementContainer();
+        IDetectorElement lookup = cache.get(id.getValue());
+        if (lookup != null) match.add(lookup);
+        return match;
+    }                
 }
\ No newline at end of file

GeomConverter/src/org/lcsim/detector
IDetectorElement.java 1.18 -> 1.19
diff -u -r1.18 -r1.19
--- IDetectorElement.java	9 May 2007 00:59:57 -0000	1.18
+++ IDetectorElement.java	25 May 2007 20:16:26 -0000	1.19
@@ -26,7 +26,7 @@
  * 
  * @author jeremym
  * @author tknelson
- * @version $Id: IDetectorElement.java,v 1.18 2007/05/09 00:59:57 jeremy Exp $
+ * @version $Id: IDetectorElement.java,v 1.19 2007/05/25 20:16:26 jeremy Exp $
  */
 public interface IDetectorElement 
 extends IIdentifiable, INamed
@@ -115,7 +115,14 @@
      *         or <code>null</code> if point is not contained within
      *         this DetectorElement or its children.
      */    
-    public IDetectorElement findDetectorElement(Hep3Vector globalPoint);   
+    public IDetectorElement findDetectorElement(Hep3Vector globalPoint);
+    
+    /**
+     * Locate a child detector element by {@link IIdentifier}.
+     * @param  id The <code>IIdentifier</code> of the <code>DetectorElement</code>.
+     * @return    The matching <code>IDetectorElement</code> to the ID.
+     */
+    public IDetectorElementContainer findDetectorElement(IIdentifier id);
     
     /**
      * Get the readout associated with this DetectorElement,

GeomConverter/src/org/lcsim/detector
IDetectorElementContainer.java 1.7 -> 1.8
diff -u -r1.7 -r1.8
--- IDetectorElementContainer.java	23 May 2007 00:09:15 -0000	1.7
+++ IDetectorElementContainer.java	25 May 2007 20:16:26 -0000	1.8
@@ -17,26 +17,33 @@
  * @see java.util.ArrayList
  * 
  * @author Jeremy McCormick
- * @version $Id: IDetectorElementContainer.java,v 1.7 2007/05/23 00:09:15 jeremy Exp $
+ * @version $Id: IDetectorElementContainer.java,v 1.8 2007/05/25 20:16:26 jeremy Exp $
  */
 public interface IDetectorElementContainer 
 extends List<IDetectorElement>
-{
+{      
     /**
-     * Get a DetectorElement by name.
+     * Find an {@link IDetectorElement} by class.
+     * @param  klass The class.
+     * @return A <code>List</code> of <code>DetectorElement</code> objects with matching class.
+     */
+    public IDetectorElementContainer find(Class<? extends IDetectorElement> klass);    
+    
+    /**
+     * Find an {@link IDetectorElement} by name.
      * 
      * @param  name The name of the DetectorElement.
      * @return      The DetectorElement matching name or
      *              <code>null</code> if none exists.
      */
-    public IDetectorElement get(String name);
+    public IDetectorElementContainer find(String name);
     
     /**
-     * True if contains a DetectorElement with matching name. 
+     * Find an {@link IDetectorElement} by {@link IIdentifier}.
      * 
-     * @param   name The name of the DetectorElement.
-     * @return       True if contains a DetectorElement with
-     *               matching name; False if it does not.
+     * @param  id The id of the DetectorElement.
+     * @return    The DetectorElement matching id or
+     *            <code>null</code> if none exists.
      */
-    public boolean contains(String name);
-}
+    public IDetectorElementContainer find(IIdentifier id);   
+}
\ No newline at end of file

GeomConverter/src/org/lcsim/detector
IDetectorElementStore.java 1.4 -> 1.5
diff -u -r1.4 -r1.5
--- IDetectorElementStore.java	23 May 2007 00:09:15 -0000	1.4
+++ IDetectorElementStore.java	25 May 2007 20:16:26 -0000	1.5
@@ -1,19 +1,15 @@
 package org.lcsim.detector;
 
-import org.lcsim.detector.identifier.IIdentifier;
-
 /**
- * The {@link IDetectorElementStore} is a registry of 
- * all {@link IDetectorElement}s in the current detector.
+ * The {@link IDetectorElementStore} is an {@link IDetectorElementContainer}
+ * containing all {@link IDetectorElement}s in the current detector.
  * 
  * @see IDetectorElement
  * @see IObjectStore
  * 
  * @author jeremym
- * @version $Id: IDetectorElementStore.java,v 1.4 2007/05/23 00:09:15 jeremy Exp $
+ * @version $Id: IDetectorElementStore.java,v 1.5 2007/05/25 20:16:26 jeremy Exp $
  */
 public interface IDetectorElementStore 
 extends IDetectorElementContainer
-{    
-    public IDetectorElement findDetectorElement(IIdentifier id);
-}
\ No newline at end of file
+{}
\ No newline at end of file

GeomConverter/src/org/lcsim/detector
IParametersStore.java 1.1 -> 1.2
diff -u -r1.1 -r1.2
--- IParametersStore.java	22 May 2007 20:02:03 -0000	1.1
+++ IParametersStore.java	25 May 2007 20:16:26 -0000	1.2
@@ -1,13 +1,18 @@
 package org.lcsim.detector;
 
 /**
- * Access to {@link IParameter} objects for the current detector.
+ * Access to all {@link IParameters} objects for the current detector.
  * 
  * @author Jeremy McCormick
- * @version $Id: IParametersStore.java,v 1.1 2007/05/22 20:02:03 jeremy Exp $
+ * @version $Id: IParametersStore.java,v 1.2 2007/05/25 20:16:26 jeremy Exp $
  */
 public interface IParametersStore 
 extends IObjectStore<IParameters>
 {
-    public IParameters getParameters(String name);
+    /**
+     * Get a set of parameters by name.
+     * @param name The name of the parameter set.
+     * @return     The parameters.
+     */
+    public IParameters get(String name);
 }
\ No newline at end of file

GeomConverter/src/org/lcsim/detector
ParametersStore.java 1.1 -> 1.2
diff -u -r1.1 -r1.2
--- ParametersStore.java	22 May 2007 20:02:03 -0000	1.1
+++ ParametersStore.java	25 May 2007 20:16:26 -0000	1.2
@@ -1,10 +1,10 @@
 package org.lcsim.detector;
 
 /**
- * Implementation of [log in to unmask]
+ * Implementation of {@link IParametersStore}.
  * 
  * @author Jeremy McCormick
- * @version $Id: ParametersStore.java,v 1.1 2007/05/22 20:02:03 jeremy Exp $
+ * @version $Id: ParametersStore.java,v 1.2 2007/05/25 20:16:26 jeremy Exp $
  */
 public class ParametersStore
 extends ObjectStore<IParameters>
@@ -20,7 +20,7 @@
         return store;
     }
     
-    public IParameters getParameters(String name)
+    public IParameters get(String name)
     {
         for (IParameters p : this)
         {

GeomConverter/src/org/lcsim/detector/converter
XMLConverter.java 1.2 -> 1.3
diff -u -r1.2 -r1.3
--- XMLConverter.java	22 May 2007 20:02:04 -0000	1.2
+++ XMLConverter.java	25 May 2007 20:16:26 -0000	1.3
@@ -6,9 +6,7 @@
 /**
  * 
  * A generic interface for converting from JDOM/XML 
- * to runtime objects.  The method {@link #convert(Element)} 
- * will be called for all elements with a name that matchs 
- * {@link #getElementName()}.
+ * to runtime objects.  
  * 
  * The activate method does not return a specific type.  It
  * can create one or more Java objects, but these must be

GeomConverter/src/org/lcsim/detector/converter/compact
DetectorConverter.java 1.18 -> 1.19
diff -u -r1.18 -r1.19
--- DetectorConverter.java	22 May 2007 20:02:04 -0000	1.18
+++ DetectorConverter.java	25 May 2007 20:16:26 -0000	1.19
@@ -165,7 +165,7 @@
                     ((DetectorElement)subdet.getDetectorElement()).setIdentifierHelper( new IdentifierHelper( iddict ) );
                     
                     // Set the Parameters.
-                    ((DetectorElement)subdet.getDetectorElement()).setParameters(ParametersStore.getInstance().getParameters(subdet.getName()));
+                    ((DetectorElement)subdet.getDetectorElement()).setParameters(ParametersStore.getInstance().get(subdet.getName()));
                 }
 			}            
 		}		

GeomConverter/src/org/lcsim/detector/converter/compact
SiTrackerBarrelConverter.java 1.18 -> 1.19
diff -u -r1.18 -r1.19
--- SiTrackerBarrelConverter.java	23 May 2007 00:09:16 -0000	1.18
+++ SiTrackerBarrelConverter.java	25 May 2007 20:16:26 -0000	1.19
@@ -10,7 +10,6 @@
 
 import org.jdom.DataConversionException;
 import org.jdom.Element;
-import org.lcsim.detector.DetectorElement;
 import org.lcsim.detector.IDetectorElement;
 import org.lcsim.detector.ILogicalVolume;
 import org.lcsim.detector.IPhysicalVolume;
@@ -30,6 +29,7 @@
 import org.lcsim.detector.solids.ISolid;
 import org.lcsim.detector.solids.Tube;
 import org.lcsim.detector.tracker.silicon.ChargeCarrier;
+import org.lcsim.detector.tracker.silicon.DeSiTrackerBarrel;
 import org.lcsim.detector.tracker.silicon.SiSensor;
 import org.lcsim.detector.tracker.silicon.SiStrips;
 import org.lcsim.detector.tracker.silicon.SiTrackerBarrelLayer;
@@ -44,7 +44,7 @@
 {
     public void convert( Subdetector subdet, Detector detector)
     {        
-    	subdet.setDetectorElement( new DeSubdetector( detector, subdet ) );
+    	subdet.setDetectorElement( new DeSiTrackerBarrel( subdet.getName(), detector.getDetectorElement()));
     	
         Map<String, ILogicalVolume> modules = buildModules(subdet);
         

GeomConverter/src/org/lcsim/detector/identifier
IIdentifiable.java 1.5 -> 1.6
diff -u -r1.5 -r1.6
--- IIdentifiable.java	22 May 2007 20:02:05 -0000	1.5
+++ IIdentifiable.java	25 May 2007 20:16:26 -0000	1.6
@@ -2,11 +2,11 @@
 
 /**
  * A mix-in interface for objects that have an associated {@link IIdentifier},
- * corresponding {@IExpandedIdentifier}, and an {@link IIdentifierHelper}
+ * corresponding {@link IExpandedIdentifier}, and an {@link IIdentifierHelper}
  * for performing pack and unpack operations on these objects.
  *  
  * @author Jeremy McCormick
- * @version $Id: IIdentifiable.java,v 1.5 2007/05/22 20:02:05 jeremy Exp $
+ * @version $Id: IIdentifiable.java,v 1.6 2007/05/25 20:16:26 jeremy Exp $
  */
 public interface IIdentifiable 
 {

GeomConverter/src/org/lcsim/detector/identifier
IIdentifierDictionary.java 1.5 -> 1.6
diff -u -r1.5 -r1.6
--- IIdentifierDictionary.java	22 May 2007 20:02:05 -0000	1.5
+++ IIdentifierDictionary.java	25 May 2007 20:16:26 -0000	1.6
@@ -3,11 +3,11 @@
 import java.util.Map;
 
 /**
- * Holds an ordered and mapped list of {@IIdentifierField} objects
- * that define the fields of an [log in to unmask]
+ * Holds an ordered and mapped list of {@link IIdentifierField} objects
+ * that define the fields of an {@link IIdentifier}.
  *
  * @author Jeremy McCormick
- * @version $Id: IIdentifierDictionary.java,v 1.5 2007/05/22 20:02:05 jeremy Exp $
+ * @version $Id: IIdentifierDictionary.java,v 1.6 2007/05/25 20:16:26 jeremy Exp $
  */
 public interface IIdentifierDictionary
 {

GeomConverter/src/org/lcsim/detector/identifier
IIdentifierField.java 1.4 -> 1.5
diff -u -r1.4 -r1.5
--- IIdentifierField.java	19 May 2007 00:39:51 -0000	1.4
+++ IIdentifierField.java	25 May 2007 20:16:26 -0000	1.5
@@ -6,7 +6,7 @@
  * an ordered collection of these fields.
  *
  * @author Jeremy McCormick
- * @version $Id: IIdentifierField.java,v 1.4 2007/05/19 00:39:51 jeremy Exp $
+ * @version $Id: IIdentifierField.java,v 1.5 2007/05/25 20:16:26 jeremy Exp $
  */
 public interface IIdentifierField
 {
@@ -74,8 +74,8 @@
     /**
      * Pack a single value of this field into a {@link IIdentifier}.
      * 
-     * @param value
-     * @return
+     * @param value A value to pack into this field.
+     * @return An identifier with the packed value.
      */
     public IIdentifier pack( int value );
     
@@ -93,7 +93,7 @@
      * 
      * @param id The <code>ExpandedIdentifier</code>.
      * @return The field value.
-     * @throw IllegalArgumentException if field index is not valid for the id.
+     * @throws IllegalArgumentException if field index is not valid for the id.
      */
     public int getFieldValue( IExpandedIdentifier id );    
 }
\ No newline at end of file

GeomConverter/src/org/lcsim/detector/tracker/silicon
DeSiTrackerBarrel.java added at 1.1
diff -N DeSiTrackerBarrel.java
--- /dev/null	1 Jan 1970 00:00:00 -0000
+++ DeSiTrackerBarrel.java	25 May 2007 20:16:27 -0000	1.1
@@ -0,0 +1,40 @@
+package org.lcsim.detector.tracker.silicon;
+
+import org.lcsim.detector.DetectorElement;
+import org.lcsim.detector.IDetectorElement;
+import org.lcsim.detector.IDetectorElementContainer;
+import org.lcsim.detector.identifier.IExpandedIdentifier;
+import org.lcsim.detector.identifier.IIdentifier;
+import org.lcsim.detector.identifier.IIdentifierHelper;
+
+/**
+ * A {@link IDetectorElement} for SiTrackerBarrel.
+ *
+ * @author Jeremy McCormick
+ * @version $Id: DeSiTrackerBarrel.java,v 1.1 2007/05/25 20:16:27 jeremy Exp $
+ */
+
+public class DeSiTrackerBarrel
+extends DetectorElement
+{
+    public DeSiTrackerBarrel(String name, IDetectorElement parent)
+    {
+        super(name, parent);
+    }    
+    
+    public IDetectorElementContainer findDetectorElement(IIdentifier id)
+    {        
+        // Get the IdentifierHelper.
+        IIdentifierHelper helper = getIdentifierHelper();
+     
+        // Make an expanded identifier containing only geometric fields.
+        IExpandedIdentifier expId = 
+            helper.unpack(id, 0, helper.getIdentifierDictionary().getFieldIndex("side") - 1);
+
+        // Repack the Identifier.
+        IIdentifier geomId = helper.pack(expId);
+
+        // Use super method once non-geometric fields have been stripped out.
+        return super.findDetectorElement(geomId);
+    }    
+}
\ No newline at end of file

GeomConverter/src/org/lcsim/detector/tracker/silicon
SiSensor.java 1.8 -> 1.9
diff -u -r1.8 -r1.9
--- SiSensor.java	23 May 2007 00:09:16 -0000	1.8
+++ SiSensor.java	25 May 2007 20:16:27 -0000	1.9
@@ -513,10 +513,9 @@
     /**
      * Make an {@link IIdentifier} for a given strip number and side number.
      * 
-     * @author Jeremy McCormick
-     * @param stripNumber The strip number, which should be from 1 to nstrips-1.
+     * @param stripNumber The strip number, which should be from 1 to nstrips - 1.
      * @param sideNumber  The side number, which should be 1 or -1.
-     * @return A 64-bit   Identifier for the strip.
+     * @return A 64-bit   A packed id for the strip.
      */
     public IIdentifier makeStripId( int stripNumber, int sideNumber )
     {

GeomConverter/test/org/lcsim/detector
SimpleDetectorTest.java 1.13 -> 1.14
diff -u -r1.13 -r1.14
--- SimpleDetectorTest.java	16 May 2007 23:27:38 -0000	1.13
+++ SimpleDetectorTest.java	25 May 2007 20:16:27 -0000	1.14
@@ -300,7 +300,6 @@
 	{
 		DummyDE(IPhysicalVolumePath support)
 		{
-			//super("dummy",null,support,null);
             super("dummy");
             setSupport(support);
 		}

GeomConverter/test/org/lcsim/detector/converter/compact
DetectorConverterTest.java 1.10 -> 1.11
diff -u -r1.10 -r1.11
--- DetectorConverterTest.java	9 May 2007 00:59:59 -0000	1.10
+++ DetectorConverterTest.java	25 May 2007 20:16:27 -0000	1.11
@@ -11,6 +11,7 @@
 import junit.framework.TestCase;
 import junit.framework.TestSuite;
 
+import org.lcsim.detector.DetectorElementContainer;
 import org.lcsim.detector.IDetectorElement;
 import org.lcsim.detector.IGeometryInfo;
 import org.lcsim.detector.IPhysicalVolume;
@@ -73,11 +74,13 @@
         // Check for top-level DEs that should have been built.
         for ( String de : des ) 
         {
+            IDetectorElement search = deDetector.getChildren().find(de).get(0);
+            
             // Check that the DE was created.
-            assertTrue("The expected DetectorElement <" + de + "> is missing!", deDetector.getChildren().get(de) != null);
+            assertTrue("The expected DetectorElement <" + de + "> is missing!", search != null);
             
-            // Check that the DeDetector is findable from this DE.
-            List<DeDetector> detectorSearch = deDetector.getChildren().get(de).findAncestors(DeDetector.class); 
+            // Check that the DeDetector is findable from this node.
+            List<DeDetector> detectorSearch = search.findAncestors(DeDetector.class);
             assertTrue( detectorSearch.size() == 1);
             assertTrue( detectorSearch.get(0).getName().equals("test_detector"));
         }                
CVSspam 0.2.8