/* * codjo.net * * Common Apache License 2.0 */ package net.codjo.broadcast.common.columns; /** * Cette classe permet d'ajouter <code>n</code> caracteres, a droite ou a gauche d'une * chaine. * * @author $Author: gonnot $ * @version $Revision: 1.1.1.1 $ */ class Padder { private int columnLength; private String padder; private boolean rightPadding; /** * Initialisation du <code>Padder</code>. * * @param padder Caractere a ajouter * @param columnLength Largeur de la colonne * @param rightPadding Specifie si le caractere <code>padder</code> doit etre ajoute * a droit ou a gauche * * @throws IllegalArgumentException si un des param�tres n'est pas valide */ Padder(String padder, int columnLength, boolean rightPadding) { if (padder == null || padder.length() != 1) { throw new IllegalArgumentException("Caractere de remplissage invalide"); } if (columnLength < 1) { throw new IllegalArgumentException("Largeur de colonne invalide : " + columnLength); } this.padder = padder; this.columnLength = columnLength; this.rightPadding = rightPadding; } /** * Ajoute le caractere <code>padder</code> a <code>fieldToPadding</code>. * * @param fieldToPadding La chaine a formater * * @return La chaine formate * * @exception IllegalArgumentException Champs trops grand */ public String doPadding(String fieldToPadding) { if (fieldToPadding == null) { fieldToPadding = ""; } if (fieldToPadding.length() > this.columnLength) { throw new IllegalArgumentException( "Nombre de caracteres superieur a la largeur de la colonne (" + fieldToPadding.length() + " > " + this.columnLength + ") " + " : " + fieldToPadding); } StringBuffer buffer = new StringBuffer(fieldToPadding); for (int i = buffer.length(); i < columnLength; i++) { if (rightPadding) { buffer.append(padder); } else { buffer.insert(0, padder); } } return buffer.toString(); } }