public String safeSubstr(String value, int startPos, int length, Container container) throws StreamTransformationException{ /* By Nicola Martella (N4N) La funzione ritorna la sottostringa di value a partire da startPos (in base 0) per la lunghezza length. Es1: value: "ABCDEFGHIJ" startPos=6 length=3 ret: "GHI" Se la posizione di length a partire da startPos eccede la lunghezza di value, viene ritornata la sottostringa a partire da startPos per tutta la lunghezza rimanente. Es2: value: "ABCDEFGHIJ" startPos=6 length=10 ret: "GHIJ" Se la posizione di startPos e' maggiore della lunghezza di value, viene ritornata una stringa vuota. Es3: value: "ABCDEFGHIJ" startPos=11 length=3 ret: "" Se value è null, viene ritornata una stringa vuota. Es4: value: null startPos=0 length=3 ret: "" Se length e/o startPos sono < 0 vengono posti a 0. */ if (value == null) return ""; if (length < 0) length = 0; if (startPos < 0) startPos = 0; int toPos = startPos+length; if (toPos > value.length()) { toPos = value.length(); } if (startPos > value.length()) { startPos = value.length(); } return value.substring(startPos, toPos); }