1   /*
2    * SPDX-FileCopyrightText: none
3    * SPDX-License-Identifier: CC0-1.0
4    */
5   
6   package dev.metaschema.databind.codegen.typeinfo;
7   
8   import com.squareup.javapoet.AnnotationSpec;
9   
10  import dev.metaschema.core.model.IAssemblyInstanceAbsolute;
11  import dev.metaschema.core.util.ObjectUtils;
12  import dev.metaschema.databind.codegen.typeinfo.def.IAssemblyDefinitionTypeInfo;
13  import dev.metaschema.databind.model.annotations.BoundAssembly;
14  import edu.umd.cs.findbugs.annotations.NonNull;
15  
16  public class AssemblyInstanceTypeInfoImpl
17      extends AbstractNamedModelInstanceTypeInfo<IAssemblyInstanceAbsolute>
18      implements IAssemblyInstanceTypeInfo {
19  
20    /**
21     * Constructs a new type information object for an assembly instance.
22     *
23     * @param instance
24     *          the assembly instance
25     * @param parentDefinition
26     *          the type information for the parent assembly definition containing
27     *          this instance
28     */
29    public AssemblyInstanceTypeInfoImpl(
30        @NonNull IAssemblyInstanceAbsolute instance,
31        @NonNull IAssemblyDefinitionTypeInfo parentDefinition) {
32      super(instance, parentDefinition);
33    }
34  
35    @Override
36    protected AnnotationSpec.Builder newBindingAnnotation() {
37      return ObjectUtils.notNull(AnnotationSpec.builder(BoundAssembly.class));
38    }
39  
40    // @Override
41    // public AnnotationSpec.Builder buildBindingAnnotation() {
42    // AnnotationSpec.Builder annotation = super.buildBindingAnnotation();
43    //
44    // IAssemblyInstance instance = getInstance();
45    //
46    // // IAssemblyDefinition definition = instance.getDefinition();
47    // // if (definition.isInline()) {
48    // // AnnotationGenerator.buildValueConstraints(annotation, definition);
49    // // AnnotationGenerator.buildAssemblyConstraints(annotation, definition);
50    // // }
51    //
52    // return annotation;
53    // }
54  }