Clover coverage report - Coverage timestamp: Sa Jul 7 2007 09:11:40 CEST FRAMES NO FRAMES |
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% |

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 |  | }