1 16 package org.outerj.daisy.books.store; 17 18 import java.util.BitSet ; 19 20 public class BookStoreUtil { 21 private static BitSet legalFileNameChars; 22 static { 23 legalFileNameChars = new BitSet (256); 24 for (char x = 'a'; x <= 'z'; x++) 25 legalFileNameChars.set(x); 26 for (char x = '0'; x <= '9'; x++) 27 legalFileNameChars.set(x); 28 legalFileNameChars.set('_'); 29 legalFileNameChars.set('-'); 30 legalFileNameChars.set(' '); 31 legalFileNameChars.set(','); 32 } 33 34 public static String isValidBookInstanceName(String name) { 35 if (name.length() > 255) 36 return "Name too long (maximum 255 characters allowed)."; 37 38 for (int i = 0; i < name.length(); i++) { 39 char c = name.charAt(i); 40 if (!legalFileNameChars.get(c)) 41 return "Name contains non-allowed characters: \"" + c + "\"."; 42 } 43 return null; 44 } 45 46 public static String fixIllegalFileNameCharacters(String name) { 47 StringBuffer fixedName = new StringBuffer (name.length()); 48 for (int i = 0; i < name.length(); i++) { 49 char c = name.charAt(i); 50 if (Character.isWhitespace(c)) { 51 fixedName.append('_'); 52 } else if (legalFileNameChars.get(c)) { 53 fixedName.append(c); 54 } 55 } 57 return fixedName.toString(); 58 } 59 60 } 61 | Popular Tags |