110 lines
3.6 KiB
Java
110 lines
3.6 KiB
Java
/***************************** -*- Java -*- ********************************\
|
|
* *
|
|
* Copyright (c) 2009 VeriSign, Inc. All rights reserved. *
|
|
* *
|
|
* This software is provided solely in connection with the terms of the *
|
|
* license agreement. Any other use without the prior express written *
|
|
* permission of VeriSign is completely prohibited. The software and *
|
|
* documentation are "Commercial Items", as that term is defined in 48 *
|
|
* C.F.R. section 2.101, consisting of "Commercial Computer Software" and *
|
|
* "Commercial Computer Software Documentation" as such terms are defined *
|
|
* in 48 C.F.R. section 252.227-7014(a)(5) and 48 C.F.R. section *
|
|
* 252.227-7014(a)(1), and used in 48 C.F.R. section 12.212 and 48 C.F.R. *
|
|
* section 227.7202, as applicable. Pursuant to the above and other *
|
|
* relevant sections of the Code of Federal Regulations, as applicable, *
|
|
* VeriSign's publications, commercial computer software, and commercial *
|
|
* computer software documentation are distributed and licensed to United *
|
|
* States Government end users with only those rights as granted to all *
|
|
* other end users, according to the terms and conditions contained in the *
|
|
* license agreement(s) that accompany the products and software *
|
|
* documentation. *
|
|
* *
|
|
\***************************************************************************/
|
|
|
|
package com.verisign.tat.dnssec;
|
|
|
|
import org.xbill.DNS.Name;
|
|
|
|
import java.util.*;
|
|
|
|
/**
|
|
* Some basic utility functions.
|
|
*/
|
|
public class Util {
|
|
/**
|
|
* Convert a DNS name into a string suitable for use as a cache key.
|
|
*
|
|
* @param name
|
|
* The name to convert.
|
|
* @return A string representing the name. This isn't ever meant to be
|
|
* converted back into a DNS name.
|
|
*/
|
|
public static String nameToString(Name name) {
|
|
if (name.equals(Name.root)) {
|
|
return ".";
|
|
}
|
|
|
|
String n = name.toString().toLowerCase();
|
|
|
|
if (n.endsWith(".")) {
|
|
n = n.substring(0, n.length() - 1);
|
|
}
|
|
|
|
return n;
|
|
}
|
|
|
|
public static int parseInt(String s, int def) {
|
|
if (s == null) {
|
|
return def;
|
|
}
|
|
|
|
try {
|
|
return Integer.parseInt(s);
|
|
} catch (NumberFormatException e) {
|
|
return def;
|
|
}
|
|
}
|
|
|
|
public static long parseLong(String s, long def) {
|
|
if (s == null) {
|
|
return def;
|
|
}
|
|
|
|
try {
|
|
return Long.parseLong(s);
|
|
} catch (NumberFormatException e) {
|
|
return def;
|
|
}
|
|
}
|
|
|
|
public static List<ConfigEntry> parseConfigPrefix(Properties config,
|
|
String prefix) {
|
|
if (!prefix.endsWith(".")) {
|
|
prefix = prefix + ".";
|
|
}
|
|
|
|
List<ConfigEntry> res = new ArrayList<ConfigEntry>();
|
|
|
|
for (Map.Entry<Object, Object> entry : config.entrySet()) {
|
|
String key = (String) entry.getKey();
|
|
|
|
if (key.startsWith(prefix)) {
|
|
key = key.substring(prefix.length());
|
|
res.add(new ConfigEntry(key, (String) entry.getValue()));
|
|
}
|
|
}
|
|
|
|
return res;
|
|
}
|
|
|
|
public static class ConfigEntry {
|
|
public String key;
|
|
public String value;
|
|
|
|
public ConfigEntry(String key, String value) {
|
|
this.key = key;
|
|
this.value = value;
|
|
}
|
|
}
|
|
}
|