Coverage Report - com.buckosoft.PicMan.business.util.MlbFilterFixer
 
Classes in this File Line Coverage Branch Coverage Complexity
MlbFilterFixer
0%
0/39
0%
0/10
3
 
 1  
 /******************************************************************************
 2  
  * MlbFilterFixer.java - Fixup mlb filters
 3  
  * 
 4  
  * PicMan - The BuckoSoft Picture Manager in Java
 5  
  * Copyright(c) 2008 - Dick Balaska
 6  
  * 
 7  
  */
 8  
 package com.buckosoft.PicMan.business.util;
 9  
 
 10  
 import java.util.Date;
 11  
 import java.util.Iterator;
 12  
 import java.util.LinkedHashMap;
 13  
 import java.util.List;
 14  
 import java.util.Set;
 15  
 
 16  
 import org.apache.commons.logging.Log;
 17  
 import org.apache.commons.logging.LogFactory;
 18  
 
 19  
 import com.buckosoft.PicMan.business.PicManFacade;
 20  
 import com.buckosoft.PicMan.domain.Filter;
 21  
 import com.buckosoft.PicMan.domain.JobLogEntry;
 22  
 import com.buckosoft.PicMan.domain.Pic;
 23  
 
 24  
 /** Fixup the mlb filters. <br>
 25  
  * Somehow, all of the filters in the mlb* series ended up with a "1" in their value.
 26  
  * This {@link com.buckosoft.PicMan.business.BatchManager} job fixes those up.
 27  
  * @author Dick Balaska
 28  
  * @since 2008/01/16
 29  
  */
 30  0
 public class MlbFilterFixer {
 31  
         private        static final boolean DEBUG = true;
 32  0
         protected final Log logger = LogFactory.getLog(getClass());
 33  
 
 34  0
         private        int picProcessing = 0;
 35  0
         private        int        changedCount = 0;
 36  
         private        PicManFacade        pmf;
 37  
 
 38  
         /** Set the reference to the PicMan API.
 39  
          * @param pmf The PicManFacade
 40  
          */
 41  
         public        void setPicMan(PicManFacade pmf) {
 42  0
                 this.pmf = pmf;
 43  0
         }
 44  
 
 45  
         /** Which ordinal picture are we working on?
 46  
          * This is just a status indicator
 47  
          * @return the picProcessing
 48  
          */
 49  
         public int getPicProcessing() {
 50  0
                 return picProcessing;
 51  
         }
 52  
 
 53  
         /** Entry point from BatchManager to run the job
 54  
          */
 55  
         public void run() {
 56  0
                 List<Pic> pics = pmf.getDB().getPics();
 57  0
                 Iterator<Pic> iter = pics.iterator();
 58  0
                 int        picCount = pics.size();
 59  0
                 picProcessing = 0;
 60  0
                 JobLogEntry jle = new JobLogEntry();
 61  0
                 jle.setType(JobLogEntry.MLBFIXER);
 62  0
                 pmf.addJobToLog(jle);
 63  
                 Pic pic;
 64  0
                 while (iter.hasNext()) {
 65  0
                         picProcessing++;
 66  0
                         int cp = picProcessing * 100 / picCount;
 67  0
                         jle.setName("" + cp + "% ch=" + changedCount);
 68  
                         
 69  0
                         pic = iter.next();
 70  0
                         if (!pic.getName().startsWith("mlb"))
 71  0
                                 continue;
 72  
                         if (DEBUG)
 73  0
                                 logger.info("pic=" + pic.getName());
 74  0
                         Filter filter = pmf.getDB().getFilter(pic.getName());
 75  0
                         LinkedHashMap<String, Integer> map = filter.getFilters();
 76  0
                         Set<String> keySet = map.keySet();
 77  0
                         Iterator<String> kiter = keySet.iterator();
 78  0
                         boolean changed = false;
 79  0
                         while (kiter.hasNext()) {
 80  0
                                 String key = kiter.next();
 81  0
                                 if (map.get(key) == 1) {
 82  0
                                         map.put(key, 6);
 83  0
                                         changed = true;
 84  
                                 }
 85  0
                         }
 86  0
                         if (changed) {
 87  0
                                 pmf.getDB().addFilter(filter);
 88  0
                                 changedCount++;
 89  
                         }
 90  0
                 }
 91  0
                 jle.setEndTime(new Date());
 92  0
         }
 93  
 
 94  
 }