static CharHandler[] loadCodes(String codesFilePath,char firstChar,char lastChar){
  int numCodes=(asUnsignedChar(lastChar) - asUnsignedChar(firstChar)) + 1;
  CharHandler[] values=new CharHandler[numCodes];
  Map<String,Type> prefixMap=new HashMap<String,Type>();
  for (  Type type : Type.values()) {
    prefixMap.put(type.getPrefixCode(),type);
  }
  BufferedReader reader=null;
  try {
    reader=new BufferedReader(new InputStreamReader(DatabaseImpl.getResourceAsStream(codesFilePath),"US-ASCII"));
    int start=asUnsignedChar(firstChar);
    int end=asUnsignedChar(lastChar);
    for (int i=start; i <= end; ++i) {
      char c=(char)i;
      CharHandler ch=null;
      if (Character.isHighSurrogate(c) || Character.isLowSurrogate(c)) {
        ch=SURROGATE_CHAR_HANDLER;
      }
 else {
        String codeLine=reader.readLine();
        ch=parseCodes(prefixMap,codeLine);
      }
      values[(i - start)]=ch;
    }
  }
 catch (  IOException e) {
    throw new RuntimeException("failed loading index codes file " + codesFilePath,e);
  }
 finally {
    ByteUtil.closeQuietly(reader);
  }
  return values;
}

static CharHandler [ ] loadCodes ( String codesFilePath , char firstChar , char lastChar ) { int numCodes = ( asUnsignedChar ( lastChar ) - asUnsignedChar ( firstChar ) ) + 1 ; CharHandler [ ] values = new CharHandler [ numCodes ] ; Map < String , Type > prefixMap = new HashMap < String , Type > ( ) ; for ( Type type : Type . values ( ) ) { prefixMap . put ( type . getPrefixCode ( ) , type ) ; } BufferedReader reader = null ; try { reader = new BufferedReader ( new InputStreamReader ( DatabaseImpl . getResourceAsStream ( codesFilePath ) , "US-ASCII" ) ) ; int start = asUnsignedChar ( firstChar ) ; int end = asUnsignedChar ( lastChar ) ; for ( int i = start ; i <= end ; ++ i ) { char c = ( char ) i ; CharHandler ch = null ; if ( Character . isHighSurrogate ( c ) || Character . isLowSurrogate ( c ) ) { ch = SURROGATE_CHAR_HANDLER ; } else { String codeLine = reader . readLine ( ) ; ch = parseCodes ( prefixMap , codeLine ) ; } values [ ( i - start ) ] = ch ; } } catch ( IOException e ) { throw new RuntimeException ( "failed loading index codes file " + codesFilePath , e ) ; } finally { ByteUtil . closeQuietly ( reader ) ; } return values ; }
loads the charhandlers for the given range of characters from the resource file with the given name .
