Coverage Report - com.buckosoft.PicMan.dom.FiltersChangedDom
 
Classes in this File Line Coverage Branch Coverage Complexity
FiltersChangedDom
0%
0/41
0%
0/26
14
 
 1  
 /******************************************************************************
 2  
  * FiltersChangedDom.java - XML Filters that changed for PicMan's Editors
 3  
  * 
 4  
  * PicMan - The BuckoSoft Picture Manager in Java
 5  
  * Copyright(c) 2009 - Dick Balaska
 6  
  * 
 7  
  */
 8  
 package com.buckosoft.PicMan.dom;
 9  
 
 10  
 import java.util.Iterator;
 11  
 import java.util.List;
 12  
 
 13  
 import org.apache.commons.logging.Log;
 14  
 import org.apache.commons.logging.LogFactory;
 15  
 import org.dom4j.Document;
 16  
 import org.dom4j.DocumentHelper;
 17  
 import org.dom4j.Element;
 18  
 
 19  
 import com.buckosoft.PicMan.business.PicManFacade;
 20  
 import com.buckosoft.PicMan.db.DatabaseFacade;
 21  
 import com.buckosoft.PicMan.domain.Filter;
 22  
 import com.buckosoft.PicMan.domain.Set;
 23  
 
 24  
 /** Given two filters, return the differences as a DOM.
 25  
  * @author Dick Balaska
 26  
  * @since 2009/08/04
 27  
  * @see <a href="http://cvs.buckosoft.com/Projects/java/PicMan/PicMan/src/com/buckosoft/PicMan/dom/FiltersChangedDom.java">FiltersChangedDom.java</a>
 28  
  */
 29  0
 public class FiltersChangedDom {
 30  0
         private static boolean DEBUG = false;
 31  0
         private static boolean DEBUGMETASETS = false;
 32  0
         protected static Log logger = LogFactory.getLog("FiltersChangedDom");
 33  
 
 34  
         /** Given two filters, return the differences as a DOM.
 35  
          * @param pmf The PicMan Facade
 36  
          * @param filterO The old filter
 37  
          * @param filterN The new Filter
 38  
          * @return the DOM
 39  
          */
 40  
         static public Document createDocument(PicManFacade pmf, Filter filterO, Filter filterN) {
 41  0
                 DatabaseFacade dbf = pmf.getDB();
 42  0
                 int[] sizeArray = dbf.getSizeArray();
 43  0
                 Document document = DocumentHelper.createDocument();
 44  0
                 Element root = document.addElement("PicFilter");
 45  0
                 root.addElement("picName").addText(filterO.getPicName());
 46  0
                 Element filters = DocumentHelper.createElement("Filters");
 47  0
                 root.add(filters);
 48  0
                 List<Set> sets = pmf.getDB().getSets();
 49  0
                 Iterator<Set> iter = sets.iterator();
 50  
                 int                i;
 51  0
                 while (iter.hasNext()) {
 52  0
                         Set set = iter.next();
 53  0
                         if (!set.isMetaSet())
 54  0
                                 continue;
 55  0
                         if (DEBUGMETASETS) {
 56  0
                                 if (set.getName().equals("DickB"))
 57  0
                                         logger.info("DickB");
 58  
                         }
 59  
 
 60  0
                         boolean[] reto = dbf.getMetaSetFilter().isFilterInSet(dbf.getMetaSet(set.getSid()), filterO);
 61  0
                         boolean[] retn = dbf.getMetaSetFilter().isFilterInSet(dbf.getMetaSet(set.getSid()), filterN);
 62  
                         
 63  0
                         if (DEBUGMETASETS) {
 64  0
                                 String        s = "";
 65  0
                                 for (i=0; i<sizeArray.length; i++)
 66  0
                                         s += reto[i] ? "T" : "F";
 67  0
                                 logger.info("reto=" + s + "  - " + set.getName());
 68  0
                                 s = "";
 69  0
                                 for (i=0; i<sizeArray.length; i++)
 70  0
                                         s += retn[i] ? "T" : "F";
 71  0
                                 logger.info("retn=" + s + "  - " + set.getName());
 72  
                         }
 73  
 
 74  0
                         for (i=0; i<sizeArray.length; i++) {
 75  0
                                 if (reto[i] ^ retn[i]) {
 76  0
                                         if (DEBUG)
 77  0
                                                 logger.info("set updated: " + set.getName() + " ro=" + reto[i] + " rn=" + retn[i]);
 78  0
                                         Element ele = DocumentHelper.createElement("Filter");
 79  0
                                         ele.addElement("setName").addText(set.getName() + "_" + sizeArray[i]);
 80  0
                                         ele.addElement("value").addText(retn[i] ? "T" : "F");
 81  0
                                         filters.add(ele);
 82  
                                 }
 83  
                         }
 84  0
                 }
 85  0
                 return document;
 86  
         }
 87  
 }