Clover coverage report -
Coverage timestamp: Sa Jul 7 2007 09:11:40 CEST
file stats: LOC: 53   Methods: 1
NCLOC: 24   Classes: 1
 
 Source file Conditionals Statements Methods TOTAL
DiskPersistenceListener.java 83,3% 92,9% 100% 90,5%
coverage coverage
 1    /*
 2    * Copyright (c) 2002-2003 by OpenSymphony
 3    * All rights reserved.
 4    */
 5    package com.opensymphony.oscache.plugins.diskpersistence;
 6   
 7   
 8    /**
 9    * Persist the cache data to disk.
 10    *
 11    * The code in this class is totally not thread safe it is the resonsibility
 12    * of the cache using this persistence listener to handle the concurrency.
 13    *
 14    * @version $Revision: 254 $
 15    * @author <a href="mailto:fbeauregard@pyxis-tech.com">Francois Beauregard</a>
 16    * @author <a href="mailto:abergevin@pyxis-tech.com">Alain Bergevin</a>
 17    * @author <a href="&#109;a&#105;&#108;&#116;&#111;:chris&#64;swebtec.&#99;&#111;&#109;">Chris Miller</a>
 18    */
 19    public class DiskPersistenceListener extends AbstractDiskPersistenceListener {
 20    private static final String CHARS_TO_CONVERT = "./\\ :;\"\'_?";
 21   
 22    /**
 23    * Build cache file name for the specified cache entry key.
 24    *
 25    * @param key Cache Entry Key.
 26    * @return char[] file name.
 27    */
 28  1005 protected char[] getCacheFileName(String key) {
 29  1005 if ((key == null) || (key.length() == 0)) {
 30  0 throw new IllegalArgumentException("Invalid key '" + key + "' specified to getCacheFile.");
 31    }
 32   
 33  1005 char[] chars = key.toCharArray();
 34   
 35  1005 StringBuffer sb = new StringBuffer(chars.length + 8);
 36   
 37  1005 for (int i = 0; i < chars.length; i++) {
 38  14349 char c = chars[i];
 39  14349 int pos = CHARS_TO_CONVERT.indexOf(c);
 40   
 41  14349 if (pos >= 0) {
 42  1606 sb.append('_');
 43  1606 sb.append(i);
 44    } else {
 45  12743 sb.append(c);
 46    }
 47    }
 48   
 49  1005 char[] fileChars = new char[sb.length()];
 50  1005 sb.getChars(0, fileChars.length, fileChars, 0);
 51  1005 return fileChars;
 52    }
 53    }