1 /* Copyright (c) 2001-2007, The HSQL Development Group 2 * All rights reserved. 3 * 4 * Redistribution and use in source and binary forms, with or without 5 * modification, are permitted provided that the following conditions are met: 6 * 7 * Redistributions of source code must retain the above copyright notice, this 8 * list of conditions and the following disclaimer. 9 * 10 * Redistributions in binary form must reproduce the above copyright notice, 11 * this list of conditions and the following disclaimer in the documentation 12 * and/or other materials provided with the distribution. 13 * 14 * Neither the name of the HSQL Development Group nor the names of its 15 * contributors may be used to endorse or promote products derived from this 16 * software without specific prior written permission. 17 * 18 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 19 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 20 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 21 * ARE DISCLAIMED. IN NO EVENT SHALL HSQL DEVELOPMENT GROUP, HSQLDB.ORG, 22 * OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 23 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, 24 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 25 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND 26 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 27 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 28 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 29 */ 30 31 32 package org.hsqldb.util.preprocessor; 33 34 /* $Id: Option.java 610 2008-12-22 15:54:18Z unsaved $ */ 35 36 /** 37 * Static methods and constants to decode preprocessor options. 38 * 39 * @author boucherb@users 40 * @version 1.8.1 41 * @since 1.8.1 42 */ 43 public class Option { 44 45 public static final int DEFAULT = 0; // No options set 46 public static final int BACKUP = 1<<0; // Backup source files? 47 public static final int FILTER = 1<<1; // Remove directive lines? 48 public static final int INDENT = 1<<2; // indent directive lines? 49 public static final int TEST_ONLY = 1<<3; // process only; don't save 50 public static final int VERBOSE = 1<<4; // log detailed info 51 Option()52 private Option(){/*Construction Disabled*/} 53 isDefault(int options)54 public static boolean isDefault(int options) { 55 return options == DEFAULT; 56 } 57 setDefault(int options, boolean _default)58 public static int setDefault(int options, boolean _default) { 59 return (_default) ? DEFAULT : options; 60 } 61 isBackup(int options)62 public static boolean isBackup(int options) { 63 return ((options & BACKUP) != 0); 64 } 65 setBackup(int options, boolean backup)66 public static int setBackup(int options, boolean backup) { 67 return (backup) ? (options | BACKUP) : (options & ~BACKUP); 68 } 69 isFilter(int options)70 public static boolean isFilter(int options) { 71 return ((options & FILTER) != 0); 72 } 73 setFilter(int options, boolean filter)74 public static int setFilter(int options, boolean filter) { 75 return (filter) ? (options | FILTER) : (options & ~FILTER); 76 } 77 isIndent(int options)78 public static boolean isIndent(int options) { 79 return ((options & INDENT) != 0); 80 } 81 setIndent(int options, boolean indent)82 public static int setIndent(int options, boolean indent) { 83 return (indent) ? (options | INDENT) : (options & ~INDENT); 84 } 85 isTestOnly(int options)86 public static boolean isTestOnly(int options) { 87 return ((options & TEST_ONLY) != 0); 88 } 89 setTestOnly(int options, boolean testOnly)90 public static int setTestOnly(int options, boolean testOnly) { 91 return (testOnly) ? (options | TEST_ONLY) : (options & ~TEST_ONLY); 92 } 93 isVerbose(int options)94 public static boolean isVerbose(int options) { 95 return ((options & VERBOSE) != 0); 96 } 97 setVerbose(int options, boolean verbose)98 public static int setVerbose(int options, boolean verbose) { 99 return (verbose) ? (options | VERBOSE) : (options & ~VERBOSE); 100 } 101 } 102