~ubuntu-branches/ubuntu/wily/dnsjava/wily-proposed

« back to all changes in this revision

Viewing changes to org/xbill/DNS/Options.java

  • Committer: Bazaar Package Importer
  • Author(s): Thierry Carrez
  • Date: 2009-07-21 15:17:03 UTC
  • Revision ID: james.westby@ubuntu.com-20090721151703-6v0107p1s3h7gv1c
Tags: upstream-2.0.6
ImportĀ upstreamĀ versionĀ 2.0.6

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
// Copyright (c) 1999-2004 Brian Wellington (bwelling@xbill.org)
 
2
 
 
3
package org.xbill.DNS;
 
4
 
 
5
import java.util.*;
 
6
 
 
7
/**
 
8
 * Boolean options:<BR>
 
9
 * bindttl - Print TTLs in BIND format<BR>
 
10
 * multiline - Print records in multiline format<BR>
 
11
 * noprintin - Don't print the class of a record if it's IN<BR>
 
12
 * verbose - Turn on general debugging statements<BR>
 
13
 * verbosemsg - Print all messages sent or received by SimpleResolver<BR>
 
14
 * verbosecompression - Print messages related to name compression<BR>
 
15
 * verbosesec - Print messages related to signature verification<BR>
 
16
 * verbosecache - Print messages related to cache lookups<BR>
 
17
 * <BR>
 
18
 * Valued options:<BR>
 
19
 * tsigfudge=n - Sets the default TSIG fudge value (in seconds)<BR>
 
20
 * sig0validity=n - Sets the default SIG(0) validity period (in seconds)<BR>
 
21
 *
 
22
 * @author Brian Wellington
 
23
 */
 
24
 
 
25
public final class Options {
 
26
 
 
27
private static Map table;
 
28
 
 
29
static {
 
30
        try {
 
31
                refresh();
 
32
        }
 
33
        catch (SecurityException e) {
 
34
        }
 
35
}
 
36
 
 
37
private
 
38
Options() {}
 
39
 
 
40
public static void
 
41
refresh() {
 
42
        String s = System.getProperty("dnsjava.options");
 
43
        if (s != null) {
 
44
                StringTokenizer st = new StringTokenizer(s, ",");
 
45
                while (st.hasMoreTokens()) {
 
46
                        String token = st.nextToken();
 
47
                        int index = token.indexOf('=');
 
48
                        if (index == -1)
 
49
                                set(token);
 
50
                        else {
 
51
                                String option = token.substring(0, index);
 
52
                                String value = token.substring(index + 1);
 
53
                                set(option, value);
 
54
                        }
 
55
                }
 
56
        }
 
57
}
 
58
 
 
59
/** Clears all defined options */
 
60
public static void
 
61
clear() {
 
62
        table = null;
 
63
}
 
64
 
 
65
/** Sets an option to "true" */
 
66
public static void
 
67
set(String option) {
 
68
        if (table == null)
 
69
                table = new HashMap();
 
70
        table.put(option.toLowerCase(), "true");
 
71
}
 
72
 
 
73
/** Sets an option to the the supplied value */
 
74
public static void
 
75
set(String option, String value) {
 
76
        if (table == null)
 
77
                table = new HashMap();
 
78
        table.put(option.toLowerCase(), value.toLowerCase());
 
79
}
 
80
 
 
81
/** Removes an option */
 
82
public static void
 
83
unset(String option) {
 
84
        if (table == null)
 
85
                return;
 
86
        table.remove(option.toLowerCase());
 
87
}
 
88
 
 
89
/** Checks if an option is defined */
 
90
public static boolean
 
91
check(String option) {
 
92
        if (table == null)
 
93
                return false;
 
94
        return (table.get(option.toLowerCase()) != null);
 
95
}
 
96
 
 
97
/** Returns the value of an option */
 
98
public static String
 
99
value(String option) {
 
100
        if (table == null)
 
101
                return null;
 
102
        return ((String)table.get(option.toLowerCase()));
 
103
}
 
104
 
 
105
/**
 
106
 * Returns the value of an option as an integer, or -1 if not defined.
 
107
 */
 
108
public static int
 
109
intValue(String option) {
 
110
        String s = value(option);
 
111
        if (s != null) {
 
112
                try {
 
113
                        int val = Integer.parseInt(s);
 
114
                        if (val > 0)
 
115
                                return (val);
 
116
                }
 
117
                catch (NumberFormatException e) {
 
118
                }
 
119
        }
 
120
        return (-1);
 
121
}
 
122
 
 
123
}