protected QuadTree<Location> createData(){
  QuadTree<Location> qt=new QuadTree<Location>(90.0f,-180.0f,-90.0f,180.0f,100,50f);
  if (!checkIndexSettings()) {
    return null;
  }
  int lineCount=0;
  Object token=null;
  boolean readHeader=!csvHasHeader;
  try {
    URL csvURL=PropUtils.getResourceOrFileOrURL(null,locationFile);
    if (csvURL != null) {
      BufferedReader streamReader=new BufferedReader(new InputStreamReader(csvURL.openStream()));
      CSVTokenizer csvt=new CSVTokenizer(streamReader);
      token=csvt.token();
      List recordList=Collections.synchronizedList(new ArrayList(10));
      while (!csvt.isEOF(token)) {
        int i=0;
        if (logger.isLoggable(Level.FINE)) {
          logger.fine("CSVLocationHandler| Starting a line | have" + (readHeader ? " " : "n't ") + "read header");
        }
        recordList.clear();
        while (!csvt.isNewline(token) && !csvt.isEOF(token)) {
          if (readHeader) {
            recordList.add(token);
          }
          token=csvt.token();
          if (csvt.isEOF(token)) {
            break;
          }
          i++;
        }
        if (!readHeader) {
          readHeader=true;
        }
 else {
          lineCount++;
          createLocation(recordList,qt);
        }
        token=csvt.token();
      }
      csvt.close();
    }
 else {
      if (logger.isLoggable(Level.FINE)) {
        logger.fine("couldn't figure out file: " + locationFile);
      }
    }
  }
 catch (  java.io.IOException ioe) {
    throw new com.bbn.openmap.util.HandleError(ioe);
  }
catch (  ArrayIndexOutOfBoundsException aioobe) {
    throw new com.bbn.openmap.util.HandleError(aioobe);
  }
catch (  NumberFormatException nfe) {
    throw new com.bbn.openmap.util.HandleError(nfe);
  }
catch (  ClassCastException cce) {
    logger.warning("Problem reading entries in " + locationFile + ", check your index settings, first column = 0.");
    throw new com.bbn.openmap.util.HandleError(cce);
  }
catch (  NullPointerException npe) {
    logger.warning("Problem reading location file, check " + locationFile);
    throw new com.bbn.openmap.util.HandleError(npe);
  }
catch (  java.security.AccessControlException ace) {
    throw new com.bbn.openmap.util.HandleError(ace);
  }
  if (logger.isLoggable(Level.FINE)) {
    logger.fine("CSVLocationHandler | Finished File:" + locationFile + ", read "+ lineCount+ " locations");
  }
  if (lineCount == 0 && readHeader) {
    logger.fine("CSVLocationHandler has read file, but didn't find any data.\n  Check file for a header line, and make sure that the\n  properties (csvFileHasHeader) is set properly for this CSVLocationHandler. Trying again without header...");
    csvHasHeader=!csvHasHeader;
    return createData();
  }
  return qt;
}

protected QuadTree < Location > createData ( ) { QuadTree < Location > qt = new QuadTree < Location > ( 90.0f , - 180.0f , - 90.0f , 180.0f , 100 , 50f ) ; if ( ! checkIndexSettings ( ) ) { return null ; } int lineCount = 0 ; Object token = null ; boolean readHeader = ! csvHasHeader ; try { URL csvURL = PropUtils . getResourceOrFileOrURL ( null , locationFile ) ; if ( csvURL != null ) { BufferedReader streamReader = new BufferedReader ( new InputStreamReader ( csvURL . openStream ( ) ) ) ; CSVTokenizer csvt = new CSVTokenizer ( streamReader ) ; token = csvt . token ( ) ; List recordList = Collections . synchronizedList ( new ArrayList ( 10 ) ) ; while ( ! csvt . isEOF ( token ) ) { int i = 0 ; if ( logger . isLoggable ( Level . FINE ) ) { logger . fine ( "CSVLocationHandler| Starting a line | have" + ( readHeader ? " " : "n't " ) + "read header" ) ; } recordList . clear ( ) ; while ( ! csvt . isNewline ( token ) && ! csvt . isEOF ( token ) ) { if ( readHeader ) { recordList . add ( token ) ; } token = csvt . token ( ) ; if ( csvt . isEOF ( token ) ) { break ; } i ++ ; } if ( ! readHeader ) { readHeader = true ; } else { lineCount ++ ; createLocation ( recordList , qt ) ; } token = csvt . token ( ) ; } csvt . close ( ) ; } else { if ( logger . isLoggable ( Level . FINE ) ) { logger . fine ( "couldn't figure out file: " + locationFile ) ; } } } catch ( java . io . IOException ioe ) { throw new com . bbn . openmap . util . HandleError ( ioe ) ; } catch ( ArrayIndexOutOfBoundsException aioobe ) { throw new com . bbn . openmap . util . HandleError ( aioobe ) ; } catch ( NumberFormatException nfe ) { throw new com . bbn . openmap . util . HandleError ( nfe ) ; } catch ( ClassCastException cce ) { logger . warning ( "Problem reading entries in " + locationFile + ", check your index settings, first column = 0." ) ; throw new com . bbn . openmap . util . HandleError ( cce ) ; } catch ( NullPointerException npe ) { logger . warning ( "Problem reading location file, check " + locationFile ) ; throw new com . bbn . openmap . util . HandleError ( npe ) ; } catch ( java . security . AccessControlException ace ) { throw new com . bbn . openmap . util . HandleError ( ace ) ; } if ( logger . isLoggable ( Level . FINE ) ) { logger . fine ( "CSVLocationHandler | Finished File:" + locationFile + ", read " + lineCount + " locations" ) ; } if ( lineCount == 0 && readHeader ) { logger . fine ( "CSVLocationHandler has read file, but didn't find any data.\n  Check file for a header line, and make sure that the\n  properties (csvFileHasHeader) is set properly for this CSVLocationHandler. Trying again without header..." ) ; csvHasHeader = ! csvHasHeader ; return createData ( ) ; } return qt ; }
look at the csv file and create the quadtree holding all the locations .
