Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  package pt.webdetails.cda.xml;
  
  import java.util.Iterator;
  import java.util.Map;
  
 import  org.apache.commons.lang.StringUtils;
 import  org.dom4j.Document;
 import  org.dom4j.DocumentFactory;
 import  org.dom4j.Element;
 import  org.dom4j.io.XMLWriter;
 
This class implements traversal of the CDA Domainmodel and visits all its elements Grouping elements are added to the dom here

Author(s):
mgie
 
 public class DomTraversalHelper {
 
 	private Element root;
 
 	public Document traverse(CdaSettings cda) {
 
 		// The root element is always the same, so it does not need to be
 		// visited
 		Document doc = DocumentFactory.getInstance().createDocument("UTF-8");
 		doc.addElement("CDADescriptor");
 		
 		//should use a copy of the dom so it doesnt destroy those that come from a file
 		this. = doc.getRootElement();
 
 		Element consEle = this..addElement("DataSources");
 
 		// Traverse the connections.
 		while (it.hasNext()) {
 			@SuppressWarnings("rawtypes")
 			Map.Entry pairs = (Map.Entryit.next();
 			Connection con = (Connectionpairs.getValue();
 			con.accept(new DomVisitor(), consEle);
 		}
 
 		// Traverse the dataacesses
 		while (iter.hasNext()) {
 			@SuppressWarnings("rawtypes")
 			Map.Entry pairs = (Map.Entryiter.next();
 			DataAccess da = (DataAccesspairs.getValue();
 	
 			String daType = "DataAccess";
 			if(da instanceof CompoundDataAccessdaType = "CompoundDataAccess";
 			Element daEle = this..addElement(daType);
 			
 			da.accept(new DomVisitor(), daEle);
 
 			// Traverse the columns
 	
 			if (!columns.isEmpty()) {
 				Element colsEle = daEle.addElement("Columns");
 				for (ColumnDefinition columnDefinition : columns) {
 					columnDefinition.accept(new DomVisitor(), colsEle);
 				}
 			}
 
 			// Traverse the parameters
 			if (da instanceof AbstractDataAccess) {
 				if (!params.isEmpty()) {
 					Element paramsEle = daEle.addElement("Parameters");
 					for (Parameter param : params) {
 						param.accept(new DomVisitor(), paramsEle);
 					}
 				}
 			}
 			
 			// Banded Mode
 			if(da instanceof MdxDataAccess && ((MdxDataAccessda).getBandedMode()
 				daEle.addElement("BandedMode").addText(
 			}
 
			// Outputs
			if(!da.getOutputs().isEmpty()){
				String idxs = StringUtils.join(da.getOutputs().toArray(),",");
				Element output = daEle.addElement("Output");
					output.addAttribute("mode"da.getOutputMode().name().toLowerCase());
				}
				output.addAttribute("indexes"idxs);
			}
		}
		return doc;
	}

Writes xml of a cda to an outputstream

Parameters:
cda
out
Throws:
IOException
	public void writeToOutputStream(CdaSettings cdaOutputStream outthrows IOException{
		Document doc = traverse(cda);	
		XMLWriter writer = new XMLWriter(out); 
		writer.write(doc);
	}
New to GrepCode? Check out our FAQ X