/** * Copyright (C) 2009 Orbeon, Inc. * * This program is free software; you can redistribute it and/or modify it under the terms of the * GNU Lesser General Public License as published by the Free Software Foundation; either version * 2.1 of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. * See the GNU Lesser General Public License for more details. * * The full text of the license is available at http://www.gnu.org/copyleft/lesser.html */ package org.orbeon.oxf.cache; import org.apache.commons.lang3.StringUtils; import org.orbeon.oxf.common.OXFException; import java.util.Date; import java.util.Iterator; import java.util.List; public class CacheUtils { final private static int INDENTATION = 4; public static String validityToString(Object validity) { return validityToString(validity, 0); } private static String validityToString(Object validity, int level) { if (validity instanceof Long) { return StringUtils.repeat(" ", INDENTATION * level) + new Date((Long) validity).toString(); } else if (validity instanceof List) { StringBuilder result = new StringBuilder(); result.append(StringUtils.repeat(" ", INDENTATION * level)); result.append("[\n"); for (Iterator i = ((List) validity).iterator(); i.hasNext();) { Object childValidity = i.next(); result.append(validityToString(childValidity, level + 1)); result.append("\n"); } result.append(StringUtils.repeat(" ", INDENTATION * level)); result.append("]"); return result.toString(); } else { throw new OXFException("Unsupported validity type: '" + validity.getClass().getName() + "'"); } } public static String getShortClassName(Class clazz) { int i = clazz.getName().lastIndexOf('.'); if(i == -1) return clazz.getName().substring(i); else return clazz.getName(); } }