1
2
3
4
5
6 package gov.nist.secauto.metaschema.databind;
7
8 import gov.nist.secauto.metaschema.core.model.IBoundObject;
9 import gov.nist.secauto.metaschema.databind.IBindingContext.IBindingMatcher;
10 import gov.nist.secauto.metaschema.databind.model.IBoundDefinitionModelAssembly;
11
12 import javax.xml.namespace.QName;
13
14 import edu.umd.cs.findbugs.annotations.NonNull;
15
16 class RootAssemblyBindingMatcher implements IBindingMatcher {
17 @NonNull
18 private final IBoundDefinitionModelAssembly definition;
19
20 public RootAssemblyBindingMatcher(
21 @NonNull IBoundDefinitionModelAssembly definition) {
22 this.definition = definition;
23 }
24
25 protected IBoundDefinitionModelAssembly getDefinition() {
26 return definition;
27 }
28
29 protected Class<? extends IBoundObject> getClazz() {
30 return getDefinition().getBoundClass();
31 }
32
33 @SuppressWarnings("null")
34 @NonNull
35 protected QName getRootQName() {
36 return getDefinition().getRootXmlQName();
37 }
38
39 @SuppressWarnings("null")
40 @NonNull
41 protected String getRootJsonName() {
42 return getDefinition().getRootJsonName();
43 }
44
45 @Override
46 public Class<? extends IBoundObject> getBoundClassForXmlQName(QName rootQName) {
47 return getRootQName().equals(rootQName) ? getClazz() : null;
48 }
49
50 @Override
51 public Class<? extends IBoundObject> getBoundClassForJsonName(String rootName) {
52 return getRootJsonName().equals(rootName) ? getClazz() : null;
53 }
54
55 @Override
56 public String toString() {
57 return getDefinition().getRootXmlQName().toString();
58 }
59 }