Mercurial > repos > yufei-luo > s_mart
view SMART/Java/Sav/ProgramFileReader.java @ 6:769e306b7933
Change the repository level.
author | yufei-luo |
---|---|
date | Fri, 18 Jan 2013 04:54:14 -0500 |
parents | |
children |
line wrap: on
line source
/** * * Copyright INRA-URGI 2009-2010 * * This software is governed by the CeCILL license under French law and * abiding by the rules of distribution of free software. You can use, * modify and/ or redistribute the software under the terms of the CeCILL * license as circulated by CEA, CNRS and INRIA at the following URL * "http://www.cecill.info". * * As a counterpart to the access to the source code and rights to copy, * modify and redistribute granted by the license, users are provided only * with a limited warranty and the software's author, the holder of the * economic rights, and the successive licensors have only limited * liability. * * In this respect, the user's attention is drawn to the risks associated * with loading, using, modifying and/or developing or reproducing the * software by the user in light of its specific status of free software, * that may mean that it is complicated to manipulate, and that also * therefore means that it is reserved for developers and experienced * professionals having in-depth computer knowledge. Users are therefore * encouraged to load and test the software's suitability as regards their * requirements in conditions enabling the security of their systems and/or * data to be ensured and, more generally, to use and operate it in the * same conditions as regards security. * * The fact that you are presently reading this means that you have had * knowledge of the CeCILL license and that you accept its terms. * */ import java.util.*; import java.io.File; import java.io.*; public class ProgramFileReader { String fileName; Vector <Program> programs; public ProgramFileReader(String fileName) { this.fileName = fileName; this.programs = new Vector <Program> (); } public boolean read() { // File file = new File(this.fileName); // Program program = null; // int step = 0; // TreeMap <String, ProgramOption> options = new TreeMap <String, ProgramOption> (); // try { // BufferedReader reader = new BufferedReader(new FileReader(file)); // String line = null; // String section = null; // while ((line = reader.readLine()) != null) { // line = line.trim(); // if (line.length() == 0) { // if (program != null) { // programs.add(program); // } // program = null; // step = 0; // continue; // } // if ((line.charAt(0) == '[') && (line.charAt(line.length() - 1) == ']')) { // section = line.substring(1, line.length() - 1).trim(); // continue; // } // switch (step) { // case 0: // program = new Program(); // program.setName(line); // if (section == null) { // System.out.println("Error! Section of program '" + line + "' is not set!"); // } // program.setSection(section); // step = 1; // break; // case 1: // program.setShortName(line); // step = 2; // break; // case 2: // ProgramOption option = new ProgramOption(); // String[] elements = line.split(":"); // boolean input = elements[0].trim().equalsIgnoreCase("input")? true: false; // String[] subElements = elements[1].split(";"); // String identifier = subElements[0].trim(); // option.setInput(input); // if (input) { // if (subElements.length < 4) { // System.out.println("Line '" + line + "' is weird..."); // } // String type = subElements[1].trim(); // String comment = subElements[2].trim(); // boolean compulsory = subElements[3].trim().equalsIgnoreCase("0")? false: true; // option.setIdentifier(identifier); // option.setType(type); // option.setComment(comment); // option.setCompulsory(compulsory); // if ("file".compareToIgnoreCase(type) == 0) { // if (subElements.length < 5) { // System.out.println("Line '" + line + "' is weird..."); // } // String formatIdentifier = subElements[4].trim(); // option.setFormatIdentifier(formatIdentifier); // } // else if ("choice".compareToIgnoreCase(type) == 0) { // if (subElements.length < 5) { // System.out.println("Line '" + line + "' is weird..."); // } // String[] choices = subElements[4].trim().split(","); // for (int i = 0; i < choices.length; i++) { // choices[i] = choices[i].trim(); // } // option.setChoices(choices); // } // options.put(identifier, option); // } // else { // String format = subElements[1].trim(); // option.setFormat(format); // option.setAssociatedOption(options.get(identifier)); // } // program.addOption(option); // break; // default: // return false; // } // } // reader.close(); // } // catch (FileNotFoundException e) { // return false; // } // catch (IOException e) { // return false; // } // if (program != null) { // programs.add(program); // } return true; } public int getNbPrograms() { return programs.size(); } public Program getProgram(int i) { return programs.get(i); } }