001package org.vishia.guiBzr; 002 003import java.io.BufferedReader; 004import java.io.File; 005import java.io.FileReader; 006import java.io.IOException; 007import java.util.LinkedList; 008import java.util.List; 009import java.util.Map; 010import java.util.TreeMap; 011 012 013public class DataConfig 014{ 015 016 final List<String> listSwPrjs = new LinkedList<String>(); 017 018 final Map<String, String> indexCmds = new TreeMap<String, String>(); 019 020 DataConfig() 021 { 022 023 } 024 025 026 String readConfig(File fileCfg) 027 { String sError = null; 028 FileReader fileReader = null; 029 String sDivision; 030 try{ 031 fileReader = new FileReader(fileCfg); 032 BufferedReader reader = new BufferedReader(fileReader); 033 String sLine; 034 while(sError == null && (sLine = reader.readLine())!=null){ 035 sLine = sLine.trim(); 036 if(sLine.length()>0){ 037 if(sLine.startsWith("==")){ 038 sDivision = sLine.trim(); 039 } else if(sLine.startsWith("cmd ")){ 040 int posSep = sLine.indexOf('='); 041 if(posSep < 0){ 042 sError = "missing \"=\" in line:" + sLine; 043 } 044 String sCmdIdent = sLine.substring(4, posSep).trim(); 045 String sCmdString = sLine.substring(posSep+1).trim(); 046 indexCmds.put(sCmdIdent, sCmdString); 047 } else { 048 listSwPrjs.add(sLine.trim()); 049 } 050 } 051 } 052 reader.close(); 053 } catch(IOException exc){ 054 sError = "File error: " + fileCfg.getAbsolutePath(); 055 } 056 try{ if(fileReader !=null){ fileReader.close();}} catch(IOException exc){ 057 if(sError == null){ sError = "close error"; } 058 } 059 return sError; 060 } 061 062}