Example usage for java.util Formatter Formatter

List of usage examples for java.util Formatter Formatter

Introduction

In this page you can find the example usage for java.util Formatter Formatter.

Prototype

public Formatter(OutputStream os) 

Source Link

Document

Constructs a new formatter with the specified output stream.

Usage

From source file:umontreal.iro.lecuyer.charts.ScatterChart.java

public String toLatex(double width, double height) {
    double xunit = 0, yunit = 0;
    double[] save = new double[4];

    if (dataset.getSeriesCollection().getSeriesCount() == 0)
        throw new IllegalArgumentException("Empty chart");

    //Calcul des parametres d'echelle et de decalage
    double XScale = computeXScale(XAxis.getTwinAxisPosition());
    double YScale = computeYScale(YAxis.getTwinAxisPosition());

    //taille d'une unite en x et en cm dans l'objet "tikzpicture"
    xunit = width / ((Math.max(XAxis.getAxis().getRange().getUpperBound(), XAxis.getTwinAxisPosition())
            * XScale)/*w w w  .j  av  a  2s. c  om*/
            - (Math.min(XAxis.getAxis().getRange().getLowerBound(), XAxis.getTwinAxisPosition()) * XScale));
    //taille d'une unite en y et en cm dans l'objet "tikzpicture"
    yunit = height / ((Math.max(YAxis.getAxis().getRange().getUpperBound(), YAxis.getTwinAxisPosition())
            * YScale)
            - (Math.min(YAxis.getAxis().getRange().getLowerBound(), YAxis.getTwinAxisPosition()) * YScale));

    Formatter formatter = new Formatter(Locale.US);

    /*Entete du document*/
    if (latexDocFlag) {
        formatter.format("\\documentclass[12pt]{article}%n%n");
        formatter.format("\\usepackage{tikz}%n\\usetikzlibrary{plotmarks}%n\\begin{document}%n%n");
    }
    if (chart.getTitle() != null)
        formatter.format("%% PGF/TikZ picture from SSJ: %s%n", chart.getTitle().getText());
    else
        formatter.format("%% PGF/TikZ picture from SSJ %n");
    formatter.format("%% XScale = %s,  YScale = %s,  XShift = %s,  YShift = %s%n", XScale, YScale,
            XAxis.getTwinAxisPosition(), YAxis.getTwinAxisPosition());
    formatter.format("%% Therefore, thisFileXValue = (originalSeriesXValue+XShift)*XScale%n");
    formatter.format("%%        and thisFileYValue = (originalSeriesYValue+YShift)*YScale%n%n");
    if (chart.getTitle() != null)
        formatter.format("\\begin{figure}%n");
    formatter.format("\\begin{center}%n");
    formatter.format("\\begin{tikzpicture}[x=%scm, y=%scm]%n", xunit, yunit);
    formatter.format("\\footnotesize%n");
    if (grid)
        formatter.format("\\draw[color=lightgray] (%s, %s) grid[xstep = %s, ystep=%s] (%s, %s);%n",
                (Math.min(XAxis.getAxis().getRange().getLowerBound(), XAxis.getTwinAxisPosition())
                        - XAxis.getTwinAxisPosition()) * XScale,
                (Math.min(YAxis.getAxis().getRange().getLowerBound(), YAxis.getTwinAxisPosition())
                        - YAxis.getTwinAxisPosition()) * YScale,
                xstepGrid * XScale, ystepGrid * YScale,
                (Math.max(XAxis.getAxis().getRange().getUpperBound(), XAxis.getTwinAxisPosition())
                        - XAxis.getTwinAxisPosition()) * XScale,
                (Math.max(YAxis.getAxis().getRange().getUpperBound(), YAxis.getTwinAxisPosition())
                        - YAxis.getTwinAxisPosition()) * YScale);
    setTick0Flags();
    formatter.format("%s", XAxis.toLatex(XScale));
    formatter.format("%s", YAxis.toLatex(YScale));

    formatter.format("%s",
            dataset.toLatex(XScale, YScale, XAxis.getTwinAxisPosition(), YAxis.getTwinAxisPosition(),
                    XAxis.getAxis().getLowerBound(), XAxis.getAxis().getUpperBound(),
                    YAxis.getAxis().getLowerBound(), YAxis.getAxis().getUpperBound()));

    formatter.format("\\end{tikzpicture}%n");
    formatter.format("\\end{center}%n");
    if (chart.getTitle() != null) {
        formatter.format("\\caption{");
        formatter.format(chart.getTitle().getText());
        formatter.format("}%n\\end{figure}%n");
    }
    if (latexDocFlag)
        formatter.format("\\end{document}%n");
    return formatter.toString();
}

From source file:com.cloud.utils.net.NetUtils.java

public static String byte2Mac(final byte[] m) {
    final StringBuilder result = new StringBuilder(17);
    final Formatter formatter = new Formatter(result);
    formatter.format("%02x:%02x:%02x:%02x:%02x:%02x", m[0], m[1], m[2], m[3], m[4], m[5]);
    formatter.close();//from  w w w  . jav a2s  .  com
    return result.toString();
}

From source file:com.cloud.utils.net.NetUtils.java

public static String long2Mac(final long macAddress) {
    final StringBuilder result = new StringBuilder(17);
    try (Formatter formatter = new Formatter(result)) {
        formatter.format("%02x:%02x:%02x:%02x:%02x:%02x", macAddress >> 40 & 0xff, macAddress >> 32 & 0xff,
                macAddress >> 24 & 0xff, macAddress >> 16 & 0xff, macAddress >> 8 & 0xff, macAddress & 0xff);
    }/*from w  ww .  j  a  v  a2  s. c o  m*/
    return result.toString();
}

From source file:umontreal.iro.lecuyer.charts.HistogramSeriesCollection.java

public String toLatex(double XScale, double YScale, double XShift, double YShift, double xmin, double xmax,
        double ymin, double ymax) {

    // Calcule les bornes reelles du graphique, en prenant en compte la position des axes
    xmin = Math.min(XShift, xmin);
    xmax = Math.max(XShift, xmax);
    ymin = Math.min(YShift, ymin);
    ymax = Math.max(YShift, ymax);

    CustomHistogramDataset tempSeriesCollection = (CustomHistogramDataset) seriesCollection;
    Formatter formatter = new Formatter(Locale.US);
    double var;
    double margin = ((XYBarRenderer) renderer).getMargin();

    for (int i = tempSeriesCollection.getSeriesCount() - 1; i >= 0; i--) {
        List temp = tempSeriesCollection.getBins(i);
        ListIterator iter = temp.listIterator();

        Color color = (Color) renderer.getSeriesPaint(i);
        String colorString = detectXColorClassic(color);
        if (colorString == null) {
            colorString = "color" + i;
            formatter.format("\\definecolor{%s}{rgb}{%.2f, %.2f, %.2f}%n", colorString, color.getRed() / 255.0,
                    color.getGreen() / 255.0, color.getBlue() / 255.0);
        }/*from  w  ww .j  av a  2s  . c  o  m*/

        HistogramBin currentBin = null;
        while (iter.hasNext()) {
            double currentMargin;
            currentBin = (HistogramBin) iter.next();
            currentMargin = ((margin * (currentBin.getEndBoundary() - currentBin.getStartBoundary()))) * XScale;
            if ((currentBin.getStartBoundary() >= xmin && currentBin.getStartBoundary() <= xmax)
                    && (currentBin.getCount() >= ymin && currentBin.getCount() <= ymax)) {
                var = Math.min(currentBin.getEndBoundary(), xmax);
                if (filled[i]) {
                    formatter.format(
                            "\\filldraw [line width=%.2fpt, opacity=%.2f, color=%s] ([xshift=%.4f] %.4f, %.4f) rectangle ([xshift=-%.4f] %.4f, %.4f); %%%n",
                            lineWidth[i], (color.getAlpha() / 255.0), colorString, currentMargin,
                            (currentBin.getStartBoundary() - XShift) * XScale, 0.0, currentMargin,
                            (var - XShift) * XScale, (currentBin.getCount() - YShift) * YScale);
                } else {
                    formatter.format(
                            "\\draw [line width=%.2fpt, color=%s] ([xshift=%.4f] %.4f, %.4f) rectangle ([xshift=-%.4f] %.4f, %.4f); %%%n",
                            lineWidth[i], colorString, currentMargin,
                            (currentBin.getStartBoundary() - XShift) * XScale, 0.0, currentMargin,
                            (var - XShift) * XScale, (currentBin.getCount() - YShift) * YScale);
                }
            } else if ((currentBin.getStartBoundary() >= xmin && currentBin.getStartBoundary() <= xmax)
                    && (currentBin.getCount() >= ymin && currentBin.getCount() > ymax)) { // Cas ou notre rectangle ne peut pas etre affiche en entier (trop haut)
                var = Math.min(currentBin.getEndBoundary(), xmax);
                if (filled[i]) {
                    formatter.format(
                            "\\filldraw [line width=%.2fpt,  opacity=%.2f, color=%s] ([xshift=%.4f] %.4f, %.4f) rectangle ([xshift=-%.4f] %.4f, %.4f); %%%n",
                            lineWidth[i], (color.getAlpha() / 255.0), colorString, currentMargin,
                            (currentBin.getStartBoundary() - XShift) * XScale, 0.0, currentMargin,
                            (var - XShift) * XScale, (ymax - YShift) * YScale);
                    formatter.format(
                            "\\draw [line width=%.2fpt, color=%s, style=dotted] ([xshift=%.4f] %.4f, %.4f) rectangle ([yshift=3mm, xshift=-%.4f] %.4f, %.4f); %%%n",
                            lineWidth[i], colorString, currentMargin,
                            (currentBin.getStartBoundary() - XShift) * XScale, (ymax - YShift) * YScale,
                            currentMargin, (var - XShift) * XScale, (ymax - YShift) * YScale);
                } else {
                    formatter.format(
                            "\\draw [line width=%.2fpt, color=%s] ([xshift=%.4f] %.4f, %.4f) rectangle ([xshift=-%.4f] %.4f, %.4f); %%%n",
                            lineWidth[i], colorString, currentMargin,
                            (currentBin.getStartBoundary() - XShift) * XScale, 0.0, currentMargin,
                            (var - XShift) * XScale, (ymax - YShift) * YScale);

                    formatter.format(
                            "\\draw [line width=%.2fpt, color=%s, style=dotted] ([xshift=%.4f] %.4f, %.4f) rectangle ([yshift=3mm, xshift=-%.4f] %.4f, %.4f); %%%n",
                            lineWidth[i], colorString, currentMargin,
                            (currentBin.getStartBoundary() - XShift) * XScale, (ymax - YShift) * YScale,
                            currentMargin, (var - XShift) * XScale, (ymax - YShift) * YScale);
                }
            }
        }
    }
    return formatter.toString();
}

From source file:edu.uga.cs.fluxbuster.features.FeatureCalculator.java

/**
 * Retrieves the number of dns queries per domain for each cluster
 * generated on a specific run date./*from w ww.j a va 2s  .  co m*/
 *
 * @param log_date the run date
 * @return a table of values where the keys are cluster ids and the values 
 *       are the queries per domain value
 * @throws SQLException if there is an error retrieving the queries
 *       per domain values
 */
private Hashtable<Integer, Double> getQueriesPerDomain(Date log_date) throws SQLException {
    Hashtable<Integer, Double> retval = new Hashtable<Integer, Double>();
    StringBuffer querybuf = new StringBuffer();
    Formatter formatter = new Formatter(querybuf);
    formatter.format(properties.getProperty(PREVCLUSTER_QUERY3KEY), df.format(log_date));
    ResultSet rs = null;
    try {
        rs = dbi.executeQueryWithResult(querybuf.toString());
        while (rs.next()) {
            retval.put(rs.getInt(1), rs.getDouble(2));
        }
    } catch (Exception e) {
        if (log.isErrorEnabled()) {
            log.error(e);
        }
    } finally {
        if (rs != null && !rs.isClosed()) {
            rs.close();
        }
        formatter.close();
    }
    return retval;
}

From source file:net.sourceforge.fenixedu.domain.candidacyProcess.IndividualCandidacy.java

public void exportValues(final StringBuilder result) {
    Formatter formatter = new Formatter(result);

    formatter.format("%s: %s\n", BundleUtil.getString(Bundle.ACADEMIC, "label.IndividualCandidacy.candidacy"),
            getCandidacyExecutionInterval().getName());
    formatter.format("%s: %s\n", BundleUtil.getString(Bundle.ACADEMIC, "label.IndividualCandidacy.state"),
            getState().getLocalizedName());
    formatter.format("%s: %s\n", BundleUtil.getString(Bundle.ACADEMIC, "label.IndividualCandidacy.whenCreated"),
            getWhenCreated().toString("yyy-MM-dd"));
    formatter.format("%s: %s\n",
            BundleUtil.getString(Bundle.ACADEMIC, "label.IndividualCandidacy.candidacyDate"),
            getCandidacyDate().toString());
    formatter.format("%s: %s\n", BundleUtil.getString(Bundle.ACADEMIC, "label.IndividualCandidacy.responsible"),
            StringUtils.isEmpty(getResponsible()) ? StringUtils.EMPTY : getResponsible());
    formatter.format("%s: %s\n", BundleUtil.getString(Bundle.ACADEMIC, "label.IndividualCandidacy.notes"),
            StringUtils.isEmpty(getNotes()) ? StringUtils.EMPTY : getNotes());

    formatter.format("%s: %s\n",
            BundleUtil.getString(Bundle.ACADEMIC, "label.IndividualCandidacy.observations"),
            StringUtils.isEmpty(getObservations()) ? StringUtils.EMPTY : getObservations());

    for (final Formation formation : getFormationsSet()) {
        formation.exportValues(result);/* ww  w .j  a va2  s.c  o m*/
    }

    formatter.close();
}

From source file:com.google.samples.apps.iosched.util.UIUtils.java

/**
 * @param startTime The start time of a session in millis.
 * @param context   The context to be used for getting the display timezone.
 * @return Formats a given startTime to the specific short time. example: 12:00 AM
 *///from   w  ww  . j  a  va 2  s  .c  o  m
public static String formatTime(long startTime, Context context) {
    StringBuilder sb = new StringBuilder();
    DateUtils.formatDateRange(context, new Formatter(sb), startTime, startTime, DateUtils.FORMAT_SHOW_TIME,
            SettingsUtils.getDisplayTimeZone(context).getID());
    return sb.toString();
}

From source file:fr.inrialpes.exmo.align.cli.GroupEval.java

public void printHTML(Vector<Vector<Object>> result, PrintStream writer) {
    // variables for computing iterative harmonic means
    int expected = 0; // expected so far
    int foundVect[]; // found so far
    int correctVect[]; // correct so far
    long timeVect[]; // time so far
    Formatter formatter = new Formatter(writer);

    fsize = format.length();/*from ww  w .  j a v  a 2s.  c o m*/
    // JE: the h-means computation should be put out as well
    // Print the header
    if (embedded != true)
        writer.println("<html><head></head><body>");
    writer.println("<table border='2' frame='sides' rules='groups'>");
    writer.println("<colgroup align='center' />");
    // for each algo <td spancol='2'>name</td>
    for (String m : listAlgo) {
        writer.println("<colgroup align='center' span='" + fsize + "' />");
    }
    // For each file do a
    writer.println("<thead valign='top'><tr><th>algo</th>");
    // for each algo <td spancol='2'>name</td>
    for (String m : listAlgo) {
        writer.println("<th colspan='" + fsize + "'>" + m + "</th>");
    }
    writer.println("</tr></thead><tbody><tr><td>test</td>");
    // for each algo <td>Prec.</td><td>Rec.</td>
    for (String m : listAlgo) {
        for (int i = 0; i < fsize; i++) {
            writer.print("<td>");
            if (format.charAt(i) == 'p') {
                writer.print("Prec.");
            } else if (format.charAt(i) == 'f') {
                writer.print("FMeas.");
            } else if (format.charAt(i) == 'o') {
                writer.print("Over.");
            } else if (format.charAt(i) == 't') {
                writer.print("Time");
            } else if (format.charAt(i) == 'r') {
                writer.print("Rec.");
            }
            writer.println("</td>");
        }
        //writer.println("<td>Prec.</td><td>Rec.</td>");
    }
    writer.println("</tr></tbody><tbody>");
    foundVect = new int[size];
    correctVect = new int[size];
    timeVect = new long[size];
    for (int k = size - 1; k >= 0; k--) {
        foundVect[k] = 0;
        correctVect[k] = 0;
        timeVect[k] = 0;
    }
    // </tr>
    // For each directory <tr>
    boolean colored = false;
    for (Vector<Object> test : result) {
        int nexpected = -1;
        if (colored == true && color != null) {
            colored = false;
            writer.println("<tr bgcolor=\"" + color + "\">");
        } else {
            colored = true;
            writer.println("<tr>");
        }
        ;
        // Print the directory <td>bla</td>
        writer.println("<td>" + (String) test.get(0) + "</td>");
        // For each record print the values <td>bla</td>
        Enumeration<Object> f = test.elements();
        f.nextElement();
        for (int k = 0; f.hasMoreElements(); k++) {
            PRecEvaluator eval = (PRecEvaluator) f.nextElement();
            if (eval != null) {
                // iterative H-means computation
                if (nexpected == -1) {
                    expected += eval.getExpected();
                    nexpected = 0;
                }
                foundVect[k] += eval.getFound();
                correctVect[k] += eval.getCorrect();
                timeVect[k] += eval.getTime();

                for (int i = 0; i < fsize; i++) {
                    writer.print("<td>");
                    if (format.charAt(i) == 'p') {
                        formatter.format("%1.2f", eval.getPrecision());
                    } else if (format.charAt(i) == 'f') {
                        formatter.format("%1.2f", eval.getFmeasure());
                    } else if (format.charAt(i) == 'o') {
                        formatter.format("%1.2f", eval.getOverall());
                    } else if (format.charAt(i) == 't') {
                        if (eval.getTime() == 0) {
                            writer.print("-");
                        } else {
                            formatter.format("%1.2f", eval.getTime());
                        }
                    } else if (format.charAt(i) == 'r') {
                        formatter.format("%1.2f", eval.getRecall());
                    }
                    writer.print("</td>");
                }
            } else {
                for (int i = 0; i < fsize; i++)
                    writer.print("<td>n/a</td>");
            }
        }
        writer.println("</tr>");
    }
    writer.print("<tr bgcolor=\"yellow\"><td>H-mean</td>");
    // Here we are computing a sheer average.
    // While in the column results we print NaN when the returned
    // alignment is empty,
    // here we use the real values, i.e., add 0 to both correctVect and
    // foundVect, so this is OK for computing the average.
    int k = 0;
    // ???
    for (String m : listAlgo) {
        double precision = (double) correctVect[k] / foundVect[k];
        double recall = (double) correctVect[k] / expected;
        for (int i = 0; i < fsize; i++) {
            writer.print("<td>");
            if (format.charAt(i) == 'p') {
                formatter.format("%1.2f", precision);
            } else if (format.charAt(i) == 'f') {
                formatter.format("%1.2f", 2 * precision * recall / (precision + recall));
            } else if (format.charAt(i) == 'o') {
                formatter.format("%1.2f", recall * (2 - (1 / precision)));
            } else if (format.charAt(i) == 't') {
                if (timeVect[k] == 0) {
                    writer.print("-");
                } else {
                    formatter.format("%1.2f", timeVect[k]);
                }
            } else if (format.charAt(i) == 'r') {
                formatter.format("%1.2f", recall);
            }
            writer.println("</td>");
        }
        ;
        k++;
    }
    writer.println("</tr>");
    writer.println("</tbody></table>");
    writer.println("<p><small>n/a: result alignment not provided or not readable<br />");
    writer.println("NaN: division per zero, likely due to empty alignment.</small></p>");
    if (embedded != true)
        writer.println("</body></html>");
}

From source file:fll.web.scoreEntry.ScoreEntry.java

/**
 * Generate the score entry form.//from   w w  w  .  ja  v a  2 s  .c om
 */
public static void generateScoreEntry(final JspWriter writer, final ServletContext application)
        throws IOException {
    final ChallengeDescription description = ApplicationAttributes.getChallengeDescription(application);
    final Formatter formatter = new Formatter(writer);

    String prevCategory = null;
    final PerformanceScoreCategory performanceElement = description.getPerformance();
    for (final AbstractGoal goalEle : performanceElement.getGoals()) {
        final String name = goalEle.getName();
        final String title = goalEle.getTitle();
        final String category = goalEle.getCategory();

        try {

            if (!StringUtils.equals(prevCategory, category)) {
                writer.println("<tr><td colspan='5'>&nbsp;</td></tr>");
                if (!StringUtils.isEmpty(category)) {
                    writer.println("<tr><td colspan='5' class='center'><b>" + category + "</b></td></tr>");
                }
            }

            writer.println("<!-- " + name + " -->");
            writer.println("<tr>");
            writer.println("  <td>");
            writer.println("    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<font size='3'><b>" + title + ":</b></font>");
            writer.println("  </td>");

            if (goalEle.isComputed()) {
                writer.println("  <td colspan='2' align='center'><b>Computed Goal</b></td>");
            } else {
                if (goalEle.isEnumerated()) {
                    // enumerated
                    writer.println("  <td>");
                    generateEnumeratedGoalButtons(goalEle, name, writer);
                    writer.println("  </td>");
                } else {
                    writer.println("  <td>");
                    generateSimpleGoalButtons(goalEle, name, writer);
                    writer.println("  </td>");
                } // end simple goal
            } // goal

            // computed score
            writer.println("  <td align='right'>");
            writer.println("    <input type='text' name='score_" + name
                    + "' size='3' align='right' readonly tabindex='-1'>");
            writer.println("  </td>");

            // error message
            formatter.format("  <td class='error score-error' id='error_%s'>&nbsp;</td>%n", name);

            writer.println("</tr>");
            writer.println("<!-- end " + name + " -->");
            writer.newLine();
        } catch (final ParseException pe) {
            throw new RuntimeException("FATAL: min/max not parsable for goal: " + name);
        }

        prevCategory = category;
    } // end foreach child of performance
}

From source file:edu.uga.cs.fluxbuster.features.FeatureCalculator.java

/**
 * Calculates the domains per network feature for each cluster generated
 * on a specific run date and stores them in the database.
 * //from ww w  .  j  ava 2s . c  om
 * @param log_date the run date
 * @throws Exception if there is an error calculating or storing the 
 *       feature values
 */
public void updateDomainsPerNetwork(Date log_date) throws Exception {
    Map<Integer, Double> dpn = this.calculateDomainsPerNetwork(log_date,
            Integer.parseInt(properties.getProperty(DOMAINSPERNETWORK_WINDOWKEY)));
    for (int clusterid : dpn.keySet()) {
        StringBuffer querybuf = new StringBuffer();
        Formatter formatter = new Formatter(querybuf);
        formatter.format(properties.getProperty(DOMAINSPERNETWORK_QUERY3KEY), df.format(log_date),
                dpn.get(clusterid).toString(), String.valueOf(clusterid));
        dbi.executeQueryNoResult(querybuf.toString());
        formatter.close();
    }
}