GeomConverter/src/org/lcsim/material
diff -u -r1.2 -r1.3
--- MaterialFromGDMLCnv.java 1 Jul 2005 00:08:01 -0000 1.2
+++ MaterialFromGDMLCnv.java 14 Jul 2005 22:25:14 -0000 1.3
@@ -50,6 +50,8 @@
public Material makeMaterial(org.jdom.Element materialElement, LCDD lcdd) throws JDOMException
{
//System.out.println("cnv makeMaterial - " + materialElement.getAttributeValue("name"));
+ //System.out.println("have elements...");
+ //MaterialManager.instance().printElements();
_lcdd = lcdd;
@@ -147,7 +149,7 @@
org.jdom.Element compositeElement = (org.jdom.Element) o;
int n = compositeElement.getAttribute("n").getIntValue();
String elementName = compositeElement.getAttributeValue("ref");
-
+
MaterialElement me = MaterialManager.getElement(elementName);
if ( me != null )
GeomConverter/src/org/lcsim/material
diff -u -r1.13 -r1.14
--- XMLMaterialManager.java 5 Jul 2005 23:11:39 -0000 1.13
+++ XMLMaterialManager.java 14 Jul 2005 22:25:14 -0000 1.14
@@ -195,7 +195,7 @@
private void setCurrentDocument(Document d)
{
currentDoc = d;
- }
+ }
/** Return size of the material map. */
public int getNumberOfMaterials()
@@ -540,55 +540,61 @@
org.jdom.Element m = getMaterial(matName);
- if ( "material".equals(m.getName()))
- {
- List l = m.getChildren("composite");
-
- if ( l.isEmpty() )
- {
- l = m.getChildren("fraction");
- }
-
- if ( l.isEmpty() )
- {
- throw new JDOMException("Material does not contain fraction or composite tags.");
- }
-
- for ( org.jdom.Element ce : (List<org.jdom.Element>) l )
+ if ( m != null )
+ {
+ if ( "material".equals(m.getName()))
{
- String ref = ce.getAttributeValue("ref");
+ List l = m.getChildren("composite");
+
+ if ( l.isEmpty() )
+ {
+ l = m.getChildren("fraction");
+ }
+
+ if ( l.isEmpty() )
+ {
+ throw new JDOMException("Material does not contain fraction or composite tags.");
+ }
- /* Add if element. */
- org.jdom.Element fnd = getElement(ref);
- if (fnd != null)
+ for ( org.jdom.Element ce : (List<org.jdom.Element>) l )
{
- if ( !refs.contains(fnd))
+ String ref = ce.getAttributeValue("ref");
+
+ /* Add if element. */
+ org.jdom.Element fnd = getElement(ref);
+ if (fnd != null)
{
- //System.out.println("add elem ref: " + ref);
- refs.add(fnd);
+ if ( !refs.contains(fnd))
+ {
+ //System.out.println("add elem ref: " + ref);
+ refs.add(fnd);
+ }
+ }
+ /* Add if material. */
+ else
+ {
+ fnd = getMaterial(ref);
+
+ /* Recursively add references of this material. */
+ if ( fnd != null )
+ {
+ makeReferenceList(fnd.getAttributeValue("name"), refs);
+ }
}
}
- /* Add if material. */
- else
+
+ /* Lastly, add the material that was passed in after its references are recursively resolved. */
+ if ( !refs.contains(m))
{
- fnd = getMaterial(ref);
-
- /* Recursively add references of this material. */
- makeReferenceList(fnd.getAttributeValue("name"), refs);
+ //System.out.println("add mat ref: " + m.getAttributeValue("name"));
+ refs.add(m);
}
}
-
- /* Lastly, add the material that was passed in after its references are recursively resolved. */
- if ( !refs.contains(m))
+ else
{
- //System.out.println("add mat ref: " + m.getAttributeValue("name"));
- refs.add(m);
+ throw new IllegalArgumentException("makeReferenceList() - Material not found: " + matName);
}
}
- else
- {
- throw new IllegalArgumentException("makeReferenceList() - Material not found: " + matName);
- }
}
private void addReferences(org.jdom.Element e) throws JDOMException
@@ -695,7 +701,7 @@
}
}
}
-
+
/** Copy elements and materials into LCDD. */
public void copyToLCDD(LCDD lcdd) throws JDOMException
{
@@ -719,7 +725,7 @@
{
org.jdom.Element element = (org.jdom.Element) i.next();
if ("material".equals(element.getName()))
- {
+ {
addReferences(element);
}
}
@@ -761,7 +767,7 @@
//System.out.println("XMLMaterialManager.makeMaterials()");
int cnt = 0;
for (Element me : materialMap.values() )
- {
+ {
makeMaterial(me, lcdd);
++cnt;
}
@@ -773,7 +779,7 @@
* defining referenced materials recursively.
*/
public void makeMaterial(org.jdom.Element materialElement, LCDD lcdd) throws JDOMException
- {
+ {
//System.out.println("makeMaterial - " + materialElement.getAttributeValue("name"));
/* Add the referenced material if it does not exist already. */
@@ -796,12 +802,12 @@
/* Call this function recursively to add referenced materials. */
if ( refMatElem != null )
- {
+ {
this.makeMaterial(refMatElem, lcdd);
}
}
- /* Now that deps are added for this material, make impl object. */
+ /* Now that deps are added for this material, make impl object. */
materialCnv.makeMaterial(materialElement, lcdd);
}
}