1
2
3
4
5
6 package dev.metaschema.databind.codegen.config;
7
8 import java.util.LinkedHashMap;
9 import java.util.LinkedList;
10 import java.util.List;
11 import java.util.Map;
12
13 import dev.metaschema.core.util.CollectionUtil;
14 import edu.umd.cs.findbugs.annotations.NonNull;
15 import edu.umd.cs.findbugs.annotations.Nullable;
16
17
18
19
20
21 public class DefaultDefinitionBindingConfiguration implements IMutableDefinitionBindingConfiguration {
22 @Nullable
23 private String className;
24 @Nullable
25 private String baseClassName;
26 @NonNull
27 private final List<String> interfacesToImplement = new LinkedList<>();
28 @NonNull
29 private final Map<String, IChoiceGroupBindingConfiguration> choiceGroupBindings = new LinkedHashMap<>();
30
31
32
33
34 public DefaultDefinitionBindingConfiguration() {
35
36 }
37
38
39
40
41
42
43
44
45 public DefaultDefinitionBindingConfiguration(@NonNull IDefinitionBindingConfiguration config) {
46 this.className = config.getClassName();
47 this.baseClassName = config.getQualifiedBaseClassName();
48 this.interfacesToImplement.addAll(config.getInterfacesToImplement());
49 this.choiceGroupBindings.putAll(config.getChoiceGroupBindings());
50 }
51
52 @Override
53 public String getClassName() {
54 return className;
55 }
56
57 @Override
58 public void setClassName(String name) {
59 this.className = name;
60 }
61
62 @Override
63 public String getQualifiedBaseClassName() {
64 return baseClassName;
65 }
66
67 @Override
68 public void setQualifiedBaseClassName(String name) {
69 this.baseClassName = name;
70 }
71
72 @Override
73 public List<String> getInterfacesToImplement() {
74 return interfacesToImplement;
75 }
76
77 @Override
78 public void addInterfaceToImplement(String interfaceName) {
79 this.interfacesToImplement.add(interfaceName);
80 }
81
82 @Override
83 public Map<String, IChoiceGroupBindingConfiguration> getChoiceGroupBindings() {
84 return CollectionUtil.unmodifiableMap(choiceGroupBindings);
85 }
86
87
88
89
90
91
92
93
94
95 public void addChoiceGroupBinding(@NonNull String groupAsName, @NonNull IChoiceGroupBindingConfiguration config) {
96 this.choiceGroupBindings.put(groupAsName, config);
97 }
98 }