Clover coverage report -
Coverage timestamp: Fri Nov 19 2004 13:41:51 PST
file stats: LOC: 63   Methods: 3
NCLOC: 57   Classes: 1
 
 Source file Conditionals Statements Methods TOTAL
ChangeHandler.java 0% 0% 0% 0%
coverage
 1    package photospace.vfs;
 2   
 3    import java.util.*;
 4    import org.apache.commons.logging.*;
 5    import photospace.meta.*;
 6    import photospace.search.*;
 7    import photospace.vfs.event.*;
 8   
 9    public class ChangeHandler
 10    implements FileEventListener
 11    {
 12    private static final Log log = LogFactory.getLog(ChangeHandler.class);
 13   
 14    private Persister persister;
 15    private Indexer indexer;
 16   
 17  0 public void handleFileEvent(FileEvent event)
 18    {
 19  0 try
 20    {
 21  0 if (log.isDebugEnabled()) log.debug("Handling file system event " + event);
 22  0 if (FileEvent.CREATED.equals(event.getType()))
 23    {
 24  0 indexer.index(Arrays.asList(new Meta[] { persister.getMeta(event.getSource()) }), false);
 25    }
 26  0 else if (FileEvent.DELETED.equals(event.getType()))
 27    {
 28  0 Meta meta = new Meta();
 29  0 meta.setPath(persister.getPath(event.getSource()));
 30  0 indexer.delete(Arrays.asList(new Meta[] { meta }));
 31    }
 32  0 else if (FileEvent.UPDATED.equals(event.getType()))
 33    {
 34  0 if (event.getSource().isDirectory())
 35    {
 36  0 if (log.isDebugEnabled()) log.debug("Ignoring directory event " + event);
 37    }
 38    else
 39    {
 40  0 indexer.merge(Arrays.asList(new Meta[] { persister.getMeta(event.getSource()) }));
 41    }
 42    }
 43    else
 44    {
 45  0 throw new IllegalStateException("Don't know what to do with event " + event);
 46    }
 47    }
 48    catch (Exception e)
 49    {
 50  0 throw new RuntimeException("Error handling file event " + event, e);
 51    }
 52    }
 53   
 54  0 public void setPersister(Persister persister)
 55    {
 56  0 this.persister = persister;
 57    }
 58   
 59  0 public void setIndexer(Indexer indexer)
 60    {
 61  0 this.indexer = indexer;
 62    }
 63    }