org.xbill.DNS.Options Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of org.apache.servicemix.bundles.dnsjava
Show all versions of org.apache.servicemix.bundles.dnsjava
This OSGi bundle wraps ${pkgArtifactId} ${pkgVersion} jar file.
// SPDX-License-Identifier: BSD-3-Clause
// Copyright (c) 1999-2004 Brian Wellington ([email protected])
package org.xbill.DNS;
import java.util.HashMap;
import java.util.Map;
import java.util.StringTokenizer;
/**
* Configuration options for dnsjava.
*
* Boolean options:
*
*
* - BINDTTL - Print TTLs in BIND format
*
- multiline - Print records in multiline format
* - noPrintIN - Don't print the class of a record if it's IN
*
*
* Valued options:
*
*
* - tsigfudge=n - Sets the default TSIG fudge value (in seconds)
*
- sig0validity=n - Sets the default SIG(0) validity period (in seconds)
*
*
* @author Brian Wellington
*/
public final class Options {
private static Map table;
static {
try {
refresh();
} catch (SecurityException e) {
}
}
private Options() {}
public static void refresh() {
String s = System.getProperty("dnsjava.options");
if (s != null) {
StringTokenizer st = new StringTokenizer(s, ",");
while (st.hasMoreTokens()) {
String token = st.nextToken();
int index = token.indexOf('=');
if (index == -1) {
set(token);
} else {
String option = token.substring(0, index);
String value = token.substring(index + 1);
set(option, value);
}
}
}
}
/** Clears all defined options */
public static void clear() {
table = null;
}
/** Sets an option to "true" */
public static void set(String option) {
if (table == null) {
table = new HashMap<>();
}
table.put(option.toLowerCase(), "true");
}
/** Sets an option to the the supplied value */
public static void set(String option, String value) {
if (table == null) {
table = new HashMap<>();
}
table.put(option.toLowerCase(), value.toLowerCase());
}
/** Removes an option */
public static void unset(String option) {
if (table == null) {
return;
}
table.remove(option.toLowerCase());
}
/** Checks if an option is defined */
public static boolean check(String option) {
if (table == null) {
return false;
}
return table.get(option.toLowerCase()) != null;
}
/** Returns the value of an option */
public static String value(String option) {
if (table == null) {
return null;
}
return table.get(option.toLowerCase());
}
/** Returns the value of an option as an integer, or -1 if not defined. */
public static int intValue(String option) {
String s = value(option);
if (s != null) {
try {
int val = Integer.parseInt(s);
if (val > 0) {
return val;
}
} catch (NumberFormatException e) {
}
}
return -1;
}
}
© 2015 - 2024 Weber Informatics LLC | Privacy Policy