KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > classycle > renderer > TemplateBasedStrongComponentRenderer


1 /*
2  * Copyright (c) 2003-2006, Franz-Josef Elmer, All rights reserved.
3  *
4  * Redistribution and use in source and binary forms, with or without
5  * modification, are permitted provided that the following conditions are met:
6  *
7  * - Redistributions of source code must retain the above copyright notice,
8  * this list of conditions and the following disclaimer.
9  * - Redistributions in binary form must reproduce the above copyright notice,
10  * this list of conditions and the following disclaimer in the documentation
11  * and/or other materials provided with the distribution.
12  *
13  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
14  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
15  * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
16  * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
17  * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
18  * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
19  * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
20  * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
21  * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
22  * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
23  * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
24  */

25 package classycle.renderer;
26
27 import java.text.MessageFormat JavaDoc;
28
29 import classycle.graph.StrongComponent;
30
31 /**
32  * Renderer of a {@link StrongComponent}. The renderer is based on a
33  * <tt>java.text.MessageFormat</tt> template.
34  *
35  * @author Franz-Josef Elmer
36  */

37 public class TemplateBasedStrongComponentRenderer
38                                       extends AbstractStrongComponentRenderer {
39   private final MessageFormat JavaDoc _format;
40   private final int _minimumNumber;
41
42   /**
43    * Creates an instance for the specified template.
44    * @param template The template.
45    * @param minimumSize Minimum number of vertices the {@link StrongComponent}
46    * should have to be rendered.
47    */

48   public TemplateBasedStrongComponentRenderer(String JavaDoc template,
49                                               int minimumNumber) {
50     _format = new MessageFormat JavaDoc(template);
51     _minimumNumber = minimumNumber;
52   }
53
54   public String JavaDoc render(StrongComponent component) {
55     String JavaDoc result = "";
56     if (component.getNumberOfVertices() >= _minimumNumber) {
57       String JavaDoc[] values = new String JavaDoc[3];
58       values[0] = createName(component);
59       values[1] = Integer.toString(component.getNumberOfVertices());
60       values[2] = Integer.toString(component.getLongestWalk());
61       result = _format.format(values);
62     }
63     return result;
64   }
65 } //class
Popular Tags