TableFormatter changes for revisions 10795:10796

Changes in this commit seem to be the result of some "auto reformat" tool execution. The Java - GeoAPI - GeoTools import ordering is altered, imports used only in Javadoc are lost and the encoding of non-ASCII characters is broken. This commit has been reverted, except for the removal of really unused imports which are kept removed.

Command line:

svn diff --extensions "--unified --ignore-space-change --ignore-all-space --ignore-eol-style" -r10795:10796 https://svn.osgeo.org/geotools/trunk/modules/library/metadata/src/main/java/org/geotools/io/TableWriter.java
Revision 10795Revision 10796
/*
 * Geotools 2 - OpenSource mapping toolkit
 * (C) 2003, Geotools Project Managment Committee (PMC)
 * (C) 2001, Institut de Recherche pour le Développement
 *
 *    This library is free software; you can redistribute it and/or
 *    modify it under the terms of the GNU Lesser General Public
/*
 * Geotools 2 - OpenSource mapping toolkit
 * (C) 2003, Geotools Project Managment Committee (PMC)
 * (C) 2001, Institut de Recherche pour le D�veloppement
 *
 *    This library is free software; you can redistribute it and/or
 *    modify it under the terms of the GNU Lesser General Public
package org.geotools.io;

// Input/output
import java.io.Writer;
import java.io.FilterWriter;
import java.io.StringWriter;
import java.io.IOException;

// Miscellaneous
import java.util.List;
import java.util.Arrays;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.StringTokenizer;
import javax.swing.text.StyleConstants;

// Geotools dependencies
import org.geotools.resources.XArray;
import org.geotools.resources.Utilities;


/**
package org.geotools.io;

// Input/output
import java.io.FilterWriter;
import java.io.IOException;
import java.io.StringWriter;
import java.io.Writer;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Iterator;
import java.util.List;
import java.util.StringTokenizer;

import javax.swing.text.StyleConstants;

import org.geotools.resources.Utilities;
import org.geotools.resources.XArray;


/**
*
* <blockquote><pre>
*     TableWriter out = new TableWriter(new OutputStreamWriter(System.out), 3);
*     out.write("Prénom\tNom\n");
*     out.nextLine('-');
*     out.write("Idéphonse\tLaporte\nSarah\tCoursi\nYvan\tDubois");
*     out.flush();
* </pre></blockquote>
*
* ...produces the following output:
*
* <blockquote><pre>
*      Prénom      Nom
*      ---------   -------
*      Idéphonse   Laporte
*      Sarah       Coursi
*      Yvan        Dubois
* </pre></blockquote>
*
* <blockquote><pre>
*     TableWriter out = new TableWriter(new OutputStreamWriter(System.out), 3);
*     out.write("Pr�nom\tNom\n");
*     out.nextLine('-');
*     out.write("Id�phonse\tLaporte\nSarah\tCoursi\nYvan\tDubois");
*     out.flush();
* </pre></blockquote>
*
* ...produces the following output:
*
* <blockquote><pre>
*      Pr�nom      Nom
*      ---------   -------
*      Id�phonse   Laporte
*      Sarah       Coursi
*      Yvan        Dubois
* </pre></blockquote>
                         final char horizontalChar) throws IOException
{
    /*
     * Obtiens les ensembles de caractères qui
     * conviennent pour la ligne horizontale.
     */
    int boxCount = 0;
                         final char horizontalChar) throws IOException
{
    /*
     * Obtiens les ensembles de caract�res qui
     * conviennent pour la ligne horizontale.
     */
    int boxCount = 0;
    }
}
/*
 * Obtient une chaŽne contenant les lignes verticales à
 * dessiner à gauche, à droite ou au centre de la table.
 */
final String border;
switch (horizontalBorder) {
    }
}
/*
 * Obtient une cha�ne contenant les lignes verticales �
 * dessiner � gauche, � droite ou au centre de la table.
 */
final String border;
switch (horizontalBorder) {
}

/**
 * Ecrit vers le flot spécifié toutes les cellules qui avaient été disposées
 * dans le tableau. Ces cellules seront automatiquement alignées en colonnes.
 * Cette méthode peut Štre appelée plusieurs fois pour écrire le mŠme tableau
 * par exemple vers plusieurs flots.
 *
 * @param  out Flot vers où écrire les données.
 * @throws IOException si une erreur est survenue lors de l'écriture dans
 *         <code>out</code>.
 */
private void flushTo(final Writer out) throws IOException {
}

/**
 * Ecrit vers le flot sp�cifi� toutes les cellules qui avaient �t� dispos�es
 * dans le tableau. Ces cellules seront automatiquement align�es en colonnes.
 * Cette m�thode peut �tre appel�e plusieurs fois pour �crire le m�me tableau
 * par exemple vers plusieurs flots.
 *
 * @param  out Flot vers o� �crire les donn�es.
 * @throws IOException si une erreur est survenue lors de l'�criture dans
 *         <code>out</code>.
 */
private void flushTo(final Writer out) throws IOException {
final int          cellCount = cells.size();
for (int cellIndex=0; cellIndex<cellCount; cellIndex++) {
    /*
     * Copie dans  <code>currentLine</code>  toutes les données qui seront à écrire
     * sur la ligne courante de la table. Ces données excluent le <code>null</code>
     * terminal.  La liste <code>currentLine</code> ne contiendra donc initialement
     * aucun élément nul, mais ses éléments seront progressivement modifiés (et mis
     * à <code>null</code>) pendant l'écriture de la ligne dans la boucle qui suit.
     */
    Cell lineFill = null;
    int currentCount = 0;
final int          cellCount = cells.size();
for (int cellIndex=0; cellIndex<cellCount; cellIndex++) {
    /*
     * Copie dans  <code>currentLine</code>  toutes les donn�es qui seront � �crire
     * sur la ligne courante de la table. Ces donn�es excluent le <code>null</code>
     * terminal.  La liste <code>currentLine</code> ne contiendra donc initialement
     * aucun �l�ment nul, mais ses �l�ments seront progressivement modifi�s (et mis
     * � <code>null</code>) pendant l'�criture de la ligne dans la boucle qui suit.
     */
    Cell lineFill = null;
    int currentCount = 0;
while (++cellIndex < cellCount);
Arrays.fill(currentLine, currentCount, currentLine.length, lineFill);
/*
 * La boucle suivante sera exécutée tant qu'il reste des lignes à écrire
 * (c'est-à-dire tant qu'au moins un élément de <code>currentLine</code>
 * est non-nul). Si une cellule contient un texte avec des caractères EOL,
 * alors cette cellule devra s'écrire sur plusieurs lignes dans la cellule
 * courante.
 */
while (!isEmpty(currentLine)) {
while (++cellIndex < cellCount);
Arrays.fill(currentLine, currentCount, currentLine.length, lineFill);
/*
 * La boucle suivante sera ex�cut�e tant qu'il reste des lignes � �crire
 * (c'est-�-dire tant qu'au moins un �l�ment de <code>currentLine</code>
 * est non-nul). Si une cellule contient un texte avec des caract�res EOL,
 * alors cette cellule devra s'�crire sur plusieurs lignes dans la cellule
 * courante.
 */
while (!isEmpty(currentLine)) {
int end   = (endCR<0) ? endLF : (endLF<0) ? endCR : Math.min(endCR,endLF);
if (end >= 0) {
    /*
     * Si un retour chariot a été trouvé, n'écrit que la première
     * ligne de la cellule. L'élément <code>currentLine[j]</code>
     * sera modifié pour ne contenir que les lignes restantes qui
     * seront écrites lors d'un prochain passage dans la boucle.
     */
    int top = end+1;
    if (endCR>=0 && endCR+1==endLF) top++;
int end   = (endCR<0) ? endLF : (endLF<0) ? endCR : Math.min(endCR,endLF);
if (end >= 0) {
    /*
     * Si un retour chariot a �t� trouv�, n'�crit que la premi�re
     * ligne de la cellule. L'�l�ment <code>currentLine[j]</code>
     * sera modifi� pour ne contenir que les lignes restantes qui
     * seront �crites lors d'un prochain passage dans la boucle.
     */
    int top = end+1;
    if (endCR>=0 && endCR+1==endLF) top++;
else currentLine[j] = null;
final int textLength = cellText.length();
/*
 * Si la cellule à écrire est en fait une bordure,
 * on fera un traitement spécial pour utiliser les
 * caractˆres de jointures {@link #BOX}.
 */
if (currentCount == 0) {
    assert textLength == 0;
else currentLine[j] = null;
final int textLength = cellText.length();
/*
 * Si la cellule � �crire est en fait une bordure,
 * on fera un traitement sp�cial pour utiliser les
 * caract�res de jointures {@link #BOX}.
 */
if (currentCount == 0) {
    assert textLength == 0;
}
/*
 * Si la cellule n'est pas une bordure, il s'agit
 * d'une cellule "normale".  Procˆde maintenant à
 * l'écriture d'une ligne de la cellule.
 */
if (isFirstColumn) {
    out.write(leftBorder);
}
/*
 * Si la cellule n'est pas une bordure, il s'agit
 * d'une cellule "normale".  Proc�de maintenant �
 * l'�criture d'une ligne de la cellule.
 */
if (isFirstColumn) {
    out.write(leftBorder);