Coverage Report - com.buckosoft.PicMan.util.FilterUtil
 
Classes in this File Line Coverage Branch Coverage Complexity
FilterUtil
0%
0/63
0%
0/42
22
 
 1  
 /******************************************************************************
 2  
  * FilterUtil.java - Filter utilities
 3  
  * 
 4  
  * PicMan - The BuckoSoft Picture Manager in Java
 5  
  * Copyright(c) 2012 - Dick Balaska
 6  
  * 
 7  
  */
 8  
 package com.buckosoft.PicMan.util;
 9  
 
 10  
 import java.util.HashSet;
 11  
 
 12  
 import com.buckosoft.PicMan.business.PicManFacade;
 13  
 import com.buckosoft.PicMan.domain.Filter;
 14  
 import com.buckosoft.PicMan.domain.Set;
 15  
 
 16  
 /** Filter utilities.
 17  
  * @author Dick Balaska
 18  
  * @since 2012/01/21
 19  
  * @see <a href="http://cvs.buckosoft.com/Projects/java/PicMan/PicMan/src/com/buckosoft/PicMan/util/FilterUtil.java">FilterUtil.java</a>
 20  
  */
 21  0
 public class FilterUtil {
 22  
         public static String getFilterAsString(PicManFacade pmf, String picName) {
 23  0
                 Filter f = pmf.getDB().getFilter(picName);
 24  0
                 StringBuilder sb = new StringBuilder();
 25  0
                 HashSet<String> usedSets = new HashSet<String>();
 26  0
                 int[] sizes = pmf.getDB().getSizeArray();
 27  0
                 boolean printed = false;
 28  0
                 for (String key : f.getFilters().keySet()) {
 29  0
                         int i = key.indexOf('_');
 30  0
                         if (i != -1) {
 31  0
                                 String setRoot = key.substring(0, i+1);
 32  0
                                 if (usedSets.contains(setRoot))
 33  0
                                         continue;
 34  0
                                 usedSets.add(setRoot);
 35  0
                                 boolean multi = false;
 36  0
                                 int value = 0;
 37  0
                                 int[] rates = new int[sizes.length];
 38  0
                                 for (int j=0; j<sizes.length; j++) {
 39  0
                                         int v = f.getFilter(setRoot+sizes[j]);
 40  0
                                         rates[j] = v;
 41  0
                                         if (v != value) {
 42  0
                                                 if (value != 0)
 43  0
                                                         multi = true;
 44  0
                                                 if (v != 0)
 45  0
                                                         value = v;
 46  
                                         }
 47  
                                 }
 48  0
                                 if (value != 0) {
 49  0
                                         if (printed)
 50  0
                                                 sb.append(" ");
 51  0
                                         sb.append(setRoot.substring(0, setRoot.length()-1));
 52  0
                                         sb.append(":");
 53  0
                                         if (multi) {
 54  0
                                                 for (int j=0; j<sizes.length; j++) {
 55  0
                                                         if (j != 0)
 56  0
                                                                 sb.append(",");
 57  0
                                                         sb.append(rates[j]);
 58  
                                                 }
 59  
                                         } else
 60  0
                                                 sb.append(value);
 61  0
                                         printed = true;
 62  
                                 }
 63  
                         }
 64  0
                 }
 65  0
                 for (String key : f.getFilters().keySet()) {
 66  0
                         int i = key.indexOf('_');
 67  0
                         if (i == -1) {
 68  0
                                 Set set = pmf.getDB().getSet(key);
 69  0
                                 if (set.isMicroSet()) {
 70  0
                                         if (printed)
 71  0
                                                 sb.append(" ");
 72  0
                                         sb.append(key);
 73  0
                                         sb.append(":");
 74  0
                                         sb.append(f.getFilter(key));
 75  0
                                         printed = true;
 76  
                                 }
 77  
                         }
 78  0
                 }
 79  0
                 boolean nanoSetPrinted = false;
 80  0
                 for (String key : f.getFilters().keySet()) {
 81  0
                         int i = key.indexOf('_');
 82  0
                         if (i == -1) {
 83  0
                                 Set set = pmf.getDB().getSet(key);
 84  0
                                 if (set.isNanoSet()) {
 85  0
                                         if (nanoSetPrinted)
 86  0
                                                 sb.append(",");
 87  0
                                         else if (printed)
 88  0
                                                 sb.append(" ");
 89  0
                                         sb.append(key);
 90  0
                                         nanoSetPrinted = true;
 91  
                                 }
 92  
                         }
 93  0
                 }
 94  0
                 return(sb.toString());
 95  
         }
 96  
 }