1 // $Id: Template.java,v 1.2 2004/02/12 22:55:05 powerpete Exp $
2 // [JMP, 04.02.2004] Created this file.
3 package org.jface.stepmt.transform.config;
4
5 import java.io.InputStream;
6
7 import jface.util.factory.FactoryException;
8 import jface.util.factory.XmlObjectFactory;
9
10 import org.jface.stepmt.core.PatternMap;
11 import org.jface.stepmt.core.Region;
12 import org.jface.stepmt.transform.util.*;
13
14 /***
15 * Loads a {@link Template} from an XML document. A document must have the
16 * following structure:
17 * <p>
18 * <pre>
19 * <template>
20 * <name>
21 * <!-- Name of the template here. -->
22 * </name>
23 * <region class="org.jface.stepmt.core.Region">
24 * <!-- Properties of the region and sub-regions here. -->
25 * </region>
26 * <!-- Each pattern must instantiate the org.jface.stepmt.core.Pattern
27 * interface. -->
28 * <pattern class="...">
29 * <name>
30 * <!-- Name of the pattern here. -->
31 * </name>
32 * </pattern>
33 * <!-- Define more patterns here. -->
34 * </template>
35 * </pre>
36 * <p>
37 * The region returned by {@link #getRegion()} contains already resolved
38 * {@link org.jface.stepmt.core.Pattern}s.
39 *
40 * @author <a href="mailto:powerpete@users.sf.net">M. Petersen</a>
41 * @version $Id: Template.java,v 1.2 2004/02/12 22:55:05 powerpete Exp $
42 */
43 public class Template implements Comparable
44 {
45 private String name;
46 private Region region;
47 private String example;
48
49 public Template(InputStream stream) throws FactoryException
50 {
51 XmlObjectFactory factory = XmlObjectFactoryLoader.newFactory(stream);
52 configure(factory);
53 }
54
55 protected void configure(XmlObjectFactory factory)
56 {
57 name = (String) factory.get("name");
58 region = (Region) factory.get("region");
59 example = (String) factory.get("example");
60 PatternMap patternMap = new PatternMap();
61 patternMap.addAll(factory.getAll("pattern"));
62 region.resolvePatterns(patternMap);
63
64 }
65
66 public String getExample()
67 {
68 return example;
69 }
70
71 public String getName()
72 {
73 return name;
74 }
75
76 public Region getRegion()
77 {
78 return region;
79 }
80
81 public int compareTo(Object o)
82 {
83 return name.compareTo(((Template) o).name);
84 }
85 }
This page was automatically generated by Maven