/***************************** -*- 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 parseConfigPrefix(Properties config, String prefix) { if (!prefix.endsWith(".")) { prefix = prefix + "."; } List res = new ArrayList(); for (Map.Entry 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; } } }