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