1
2
3
4
5
6 package dev.metaschema.databind.codegen.config;
7
8 import dev.metaschema.databind.config.binding.MetaschemaBindings;
9 import edu.umd.cs.findbugs.annotations.NonNull;
10 import edu.umd.cs.findbugs.annotations.Nullable;
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30 public class DefaultChoiceGroupBindingConfiguration implements IChoiceGroupBindingConfiguration {
31 @NonNull
32 private final String groupAsName;
33 @Nullable
34 private final String itemTypeName;
35 private final boolean useWildcard;
36
37
38
39
40
41
42
43
44
45 public DefaultChoiceGroupBindingConfiguration(
46 @NonNull MetaschemaBindings.MetaschemaBinding.DefineAssemblyBinding.ChoiceGroupBinding binding) {
47 this.groupAsName = binding.getName();
48
49 MetaschemaBindings.MetaschemaBinding.DefineAssemblyBinding.ChoiceGroupBinding.ItemType itemType
50 = binding.getItemType();
51 if (itemType != null) {
52 this.itemTypeName = itemType.getValue();
53
54 Boolean useWildcardFlag = itemType.getUseWildcard();
55 this.useWildcard = useWildcardFlag == null || useWildcardFlag;
56 } else {
57 this.itemTypeName = null;
58 this.useWildcard = true;
59 }
60 }
61
62 @Override
63 @NonNull
64 public String getGroupAsName() {
65 return groupAsName;
66 }
67
68 @Override
69 @Nullable
70 public String getItemTypeName() {
71 return itemTypeName;
72 }
73
74 @Override
75 public boolean isUseWildcard() {
76 return useWildcard;
77 }
78 }