/** * The contents of this file are subject to the license and copyright * detailed in the LICENSE and NOTICE files at the root of the source * tree and available online at * * http://www.dspace.org/license/ */ package org.dspace.app.xmlui.utils; /** * Utilities that are needed in XSL transformations. * * @author Art Lowel (art dot lowel at atmire dot com) */ public class XSLUtils { /* * Cuts off the string at the space nearest to the targetLength if there is one within * maxDeviation chars from the targetLength, or at the targetLength if no such space is * found */ public static String shortenString(String string, int targetLength, int maxDeviation) { targetLength = Math.abs(targetLength); maxDeviation = Math.abs(maxDeviation); if (string == null || string.length() <= targetLength + maxDeviation) { return string; } int currentDeviation = 0; while (currentDeviation <= maxDeviation) { try { if (string.charAt(targetLength) == ' ') { return string.substring(0, targetLength) + " ..."; } if (string.charAt(targetLength + currentDeviation) == ' ') { return string.substring(0, targetLength + currentDeviation) + " ..."; } if (string.charAt(targetLength - currentDeviation) == ' ') { return string.substring(0, targetLength - currentDeviation) + " ..."; } } catch (Exception e) { //just in case } currentDeviation++; } return string.substring(0, targetLength) + " ..."; } }