/* * Copyright (C) 2014 Alfons Wirtz * website www.freerouting.net * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License at <http://www.gnu.org/licenses/> * for more details. * * Identifier.java * * Created on 25. Januar 2005, 09:50 */ package datastructures; import java.io.OutputStreamWriter; /** * Describes legal identifiers together with the character used for string quotes. * * @author alfons */ public class IdentifierType { /** * Defines the reserved characters and the string for quoting identifiers containing * reserved characters for a new instance of Identifier. */ public IdentifierType(String [] p_reserved_chars, String p_string_quote) { reserved_chars = p_reserved_chars; string_quote = p_string_quote; } /** * Writes p_name after puttiong it into quotes, if it contains reserved characters or blanks. */ public void write(String p_name, OutputStreamWriter p_file) { try { if (is_legal(p_name)) { p_file.write(p_name); } else { p_file.write(quote(p_name)); } } catch (java.io.IOException e) { System.out.println("IndentFileWriter.new_line: unable to write to file"); } } /** * Looks, if p_string dous not contain reserved characters or blanks. */ private boolean is_legal( String p_string) { if (p_string == null) { System.out.println("IdentifierType.is_legal: p_string is null"); return false; } for (int i = 0; i < reserved_chars.length; ++i) { if (p_string.contains(reserved_chars[i])) { return false; } } return true; } /** * Puts p_sting into quotes. */ private String quote(String p_string) { return string_quote + p_string + string_quote; } private final String string_quote; private final String[] reserved_chars; }