1 package org.nuiton.eugene.java;
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 com.google.common.collect.ImmutableSet;
26 import org.codehaus.plexus.component.annotations.Component;
27 import org.nuiton.eugene.ModelReader;
28 import org.nuiton.eugene.models.extension.tagvalue.TagValueMetadata;
29 import org.nuiton.eugene.models.extension.tagvalue.TagValueUtil;
30 import org.nuiton.eugene.models.extension.tagvalue.matcher.EqualsTagValueNameMatcher;
31 import org.nuiton.eugene.models.extension.tagvalue.provider.DefaultTagValueMetadatasProvider;
32 import org.nuiton.eugene.models.extension.tagvalue.provider.TagValueMetadatasProvider;
33 import org.nuiton.eugene.models.object.ObjectModel;
34 import org.nuiton.eugene.models.object.ObjectModelClassifier;
35 import org.nuiton.eugene.models.object.ObjectModelPackage;
36
37 import java.util.Set;
38
39 import static org.nuiton.i18n.I18n.n;
40 import static org.nuiton.i18n.I18n.t;
41
42
43
44
45
46
47
48 @Component(role = TagValueMetadatasProvider.class, hint = "eugene-java-templates")
49 public class EugeneJavaTagValues extends DefaultTagValueMetadatasProvider {
50
51 @Override
52 public String getDescription() {
53 return t("eugene.java.tagvalues");
54 }
55
56 public enum Store implements TagValueMetadata {
57
58
59
60
61
62
63
64 bean(n("eugene.java.stereotype.bean"), boolean.class, null, ObjectModelClassifier.class, ObjectModelPackage.class),
65
66
67
68
69
70
71
72
73
74 java8(n("eugene.java.tagvalue.java8"), boolean.class, "false", ObjectModel.class);
75
76 private final Set<Class<?>> targets;
77 private final Class<?> type;
78 private final String i18nDescriptionKey;
79 private final String defaultValue;
80
81 Store(String i18nDescriptionKey, Class<?> type, String defaultValue, Class<?>... targets) {
82 this.targets = ImmutableSet.copyOf(targets);
83 this.type = type;
84 this.i18nDescriptionKey = i18nDescriptionKey;
85 this.defaultValue = defaultValue;
86 }
87
88 @Override
89 public String getName() {
90 return name();
91 }
92
93 @Override
94 public Set<Class<?>> getTargets() {
95 return targets;
96 }
97
98 @Override
99 public Class<?> getType() {
100 return type;
101 }
102
103 @Override
104 public Class<EqualsTagValueNameMatcher> getMatcherClass() {
105 return EqualsTagValueNameMatcher.class;
106 }
107
108 @Override
109 public String getDescription() {
110 return t(i18nDescriptionKey);
111 }
112
113 @Override
114 public String getDefaultValue() {
115 return defaultValue;
116 }
117
118 @Override
119 public boolean isDeprecated() {
120 return false;
121 }
122
123 }
124
125 public EugeneJavaTagValues() {
126 super((TagValueMetadata[]) Store.values());
127 }
128
129
130
131
132
133
134
135
136
137 public boolean isUseJava8(ObjectModel model) {
138 return TagValueUtil.findBooleanTagValue(Store.java8, model);
139 }
140
141
142
143
144
145
146
147
148 public boolean isBean(ObjectModelClassifier classifier, ObjectModelPackage aPackage) {
149 return TagValueUtil.findBooleanTagValue(Store.bean, classifier, aPackage);
150 }
151
152 }