Clover coverage report - brownies library - 1.0-beta-1
Coverage timestamp: 月 8 16 2004 17:14:42 GMT+09:00
file stats: LOC: 113   Methods: 9
NCLOC: 59   Classes: 1
30 day Evaluation Version distributed via the Maven Jar Repository. Clover is not free. You have 30 days to evaluate it. Please visit http://www.thecortex.net/clover to obtain a licensed version of Clover
 
 Source file Conditionals Statements Methods TOTAL
RelativeClassResourceStreamFactory.java 25% 60% 55.6% 51.4%
coverage coverage
 1   
 /*
 2   
  * Joey and its relative products are published under the terms
 3   
  * of the Apache Software License.
 4   
  */
 5   
 /*
 6   
  * Created on 2003/12/15
 7   
  */
 8   
 package org.asyrinx.brownie.core.io.sf;
 9   
 
 10   
 import java.io.File;
 11   
 import java.io.IOException;
 12   
 import java.io.InputStream;
 13   
 
 14   
 import org.asyrinx.brownie.core.io.FileConstants;
 15   
 import org.asyrinx.brownie.core.io.PathPointer;
 16   
 import org.asyrinx.brownie.core.lang.ClassUtils;
 17   
 import org.asyrinx.brownie.core.lang.InvocationInfo;
 18   
 import org.asyrinx.brownie.core.lang.StringUtils;
 19   
 
 20   
 /**
 21   
  * @author akima
 22   
  */
 23   
 public class RelativeClassResourceStreamFactory extends
 24   
         ClassResourceStreamFactory {
 25   
 
 26   
     /**
 27   
      *  
 28   
      */
 29  1
     public RelativeClassResourceStreamFactory() {
 30  1
         this(null, null);
 31   
 
 32   
     }
 33   
 
 34   
     /**
 35   
      * @param classLoader
 36   
      */
 37  0
     public RelativeClassResourceStreamFactory(ClassLoader classLoader) {
 38  0
         this(classLoader, null);
 39   
     }
 40   
 
 41   
     /**
 42   
      * @param classLoader
 43   
      */
 44  0
     public RelativeClassResourceStreamFactory(String classToBeCalled) {
 45  0
         this(null, classToBeCalled);
 46   
     }
 47   
 
 48   
     /**
 49   
      * @param classLoader
 50   
      */
 51  1
     public RelativeClassResourceStreamFactory(ClassLoader classLoader,
 52   
             String classToBeCalled) {
 53  1
         super(classLoader != null ? classLoader : Thread.currentThread()
 54   
                 .getContextClassLoader());
 55  1
         this.classToBeCalled = StringUtils.isEmpty(classToBeCalled) ? RelativeClassResourceStreamFactory.class
 56   
                 .getName()
 57   
                 : classToBeCalled;
 58   
     }
 59   
 
 60   
     private final String classToBeCalled;
 61   
 
 62   
     /**
 63   
      * This method must be overrided because of InvocationInfo
 64   
      * 
 65   
      * @see org.asyrinx.io.sf.AbstractFileStreamFactory#newInput(java.lang.Object)
 66   
      */
 67  0
     public InputStream newInput(Object key) throws IOException {
 68  0
         if (key instanceof File) {
 69  0
             return newInput((File) key);
 70  0
         } else if (key instanceof String) {
 71  0
             return newInput((String) key);
 72   
         } else {
 73  0
             throw keyClassMismatch(key);
 74   
         }
 75   
     }
 76   
 
 77   
     /**
 78   
      * This method must be overrided because of InvocationInfo
 79   
      * 
 80   
      * @see org.asyrinx.io.sf.AbstractFileStreamFactory#newInput(java.io.File)
 81   
      */
 82  5
     public InputStream newInput(File file) throws IOException {
 83  5
         return newInput(file.getPath());
 84   
     }
 85   
 
 86   
     /**
 87   
      * @see org.asyrinx.io.sf.ClassResourceStreamFactory#newInput(java.lang.String)
 88   
      */
 89  5
     public InputStream newInput(String fileName) throws IOException {
 90  5
         return super.newInput(toFilePath(fileName));
 91   
     }
 92   
 
 93  5
     public String toFilePath(String fileName) {
 94  5
         final InvocationInfo invocationInfo = new InvocationInfo(
 95   
                 classToBeCalled);
 96  5
         final String resPath = StringUtils.replace(invocationInfo
 97   
                 .getClassName(), ClassUtils.PACKAGE_DELIM,
 98   
                 FileConstants.FILE_SPARATOR_SLASH);
 99  5
         final PathPointer pointer = new PathPointer(resPath);
 100  5
         pointer.goUp();
 101  5
         pointer.moveTo(fileName);
 102  5
         String realPath = pointer.getPath();
 103  5
         return realPath;
 104   
     }
 105   
 
 106   
     /**
 107   
      * @return
 108   
      */
 109  0
     public String getClassToBeCalled() {
 110  0
         return classToBeCalled;
 111   
     }
 112   
 
 113   
 }