com.jogamp.gluegen.structgen

## Class CStructAnnotationProcessor

- java.lang.Object
- - javax.annotation.processing.AbstractProcessor
  - - com.jogamp.gluegen.structgen.CStructAnnotationProcessor

- All Implemented Interfaces:
    javax.annotation.processing.Processor

      @SupportedAnnotationTypes(value={"com.jogamp.gluegen.structgen.CStruct","com.jogamp.gluegen.structgen.CStructs"})
      @SupportedSourceVersion(value=RELEASE_6)
      public class CStructAnnotationProcessor
      extends javax.annotation.processing.AbstractProcessor

  If the header file is absolute, the root path is the parent folder of the folder containing the package source, i.e.:

        Header: /gluegen/src/junit/com/jogamp/test/structgen/TestStruct01.h
        Root:   /gluegen/src/junit/..
        Root:   /gluegen/src

  Otherwise the user.dir is being used as the root path and the relative header file is appended to it. The property `jogamp.gluegen.structgen.output` allows setting a default outputPath for the generated sources, if the `ProcessingEnvironment`'s `structgen.output` option is not set.

  If the outputPath is relative, it is appended to the root path, otherwise it is taken as-is.

  User can enable DEBUG while defining property `jogamp.gluegen.structgen.debug`.

  Author:
    Michael Bien, et al.

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Class and Description
    --- | ---
    `static class` | `CStructAnnotationProcessor.AnnotationProcessorJavaStructEmitter`

  - ### Field Summary

    - ### Fields inherited from class javax.annotation.processing.AbstractProcessor

      `processingEnv`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `CStructAnnotationProcessor()`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `init(javax.annotation.processing.ProcessingEnvironment processingEnv)`
    `boolean` | `process(Set<? extends javax.lang.model.element.TypeElement> annotations, javax.annotation.processing.RoundEnvironment env)`

    - ### Methods inherited from class javax.annotation.processing.AbstractProcessor

      `getCompletions, getSupportedAnnotationTypes, getSupportedOptions, getSupportedSourceVersion, isInitialized`

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### CStructAnnotationProcessor

          public CStructAnnotationProcessor()

  - ### Method Detail

    - #### init

          public void init(javax.annotation.processing.ProcessingEnvironment processingEnv)

      Specified by:
        `init` in interface `javax.annotation.processing.Processor`
      Overrides:
        `init` in class `javax.annotation.processing.AbstractProcessor`

    - #### process

          public boolean process(Set<? extends javax.lang.model.element.TypeElement> annotations,
                        javax.annotation.processing.RoundEnvironment env)

      Specified by:
        `process` in interface `javax.annotation.processing.Processor`
      Specified by:
        `process` in class `javax.annotation.processing.AbstractProcessor`