1
2
3
4
5
6 package dev.metaschema.databind.codegen;
7
8 import java.io.IOException;
9 import java.net.URI;
10 import java.nio.file.Path;
11
12 import dev.metaschema.databind.codegen.typeinfo.IMetaschemaClassFactory;
13 import edu.umd.cs.findbugs.annotations.NonNull;
14 import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
15
16
17
18
19
20 class PackageProductionImpl implements IPackageProduction {
21 @NonNull
22 private final URI xmlNamespace;
23 @NonNull
24 private final IGeneratedClass packageInfoClass;
25
26
27
28
29
30
31
32
33
34
35
36
37
38 @SuppressFBWarnings(value = "CT_CONSTRUCTOR_THROW", justification = "Use of final fields")
39 public PackageProductionImpl(
40 @NonNull PackageMetadata metadata,
41 @NonNull IMetaschemaClassFactory classFactory,
42 @NonNull Path targetDirectory)
43 throws IOException {
44 this.xmlNamespace = metadata.getXmlNamespace();
45 this.packageInfoClass = classFactory.generatePackageInfoClass(
46 metadata.getPackageName(),
47 this.xmlNamespace,
48 metadata.getModuleProductions(),
49 targetDirectory);
50 }
51
52 @Override
53 public URI getXmlNamespace() {
54 return xmlNamespace;
55 }
56
57
58
59
60
61
62 @Override
63 public IGeneratedClass getGeneratedClass() {
64 return packageInfoClass;
65 }
66 }