1 package org.codehaus.modello.plugin.xpp3;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25 import java.util.Properties;
26
27 import org.codehaus.modello.ModelloException;
28 import org.codehaus.modello.model.Model;
29 import org.codehaus.modello.model.ModelClass;
30 import org.codehaus.modello.plugins.xml.AbstractXmlJavaGenerator;
31
32
33
34
35 public abstract class AbstractXpp3Generator extends AbstractXmlJavaGenerator {
36 protected boolean requiresDomSupport;
37
38 protected ModelClass locationTracker;
39
40 protected ModelClass sourceTracker;
41
42 protected boolean isLocationTracking() {
43 return false;
44 }
45
46 @Override
47 protected void initialize(Model model, Properties parameters) throws ModelloException {
48 super.initialize(model, parameters);
49
50 requiresDomSupport = false;
51 locationTracker = sourceTracker = null;
52
53 if (isLocationTracking()) {
54 locationTracker = model.getLocationTracker(getGeneratedVersion());
55 if (locationTracker == null) {
56 throw new ModelloException("No model class has been marked as location tracker"
57 + " via the attribute locationTracker=\"locations\", cannot generate extended reader.");
58 }
59
60 sourceTracker = model.getSourceTracker(getGeneratedVersion());
61 }
62 }
63 }