Documentation
¶
Overview ¶
Package generator provides tools to generate ObjectBox entity bindings between GO structs & ObjectBox schema
Index ¶
Constants ¶
const Version = "4.0.0-alpha2"
Version specifies the current generator version.
const VersionId = 6
VersionId specifies the current generator version identifier. It is used to validate generated code compatibility and is increased when there are changes in the generated code. This validation seems to be limited to Go: the generated code "knows" its version, and thus we can check at runtime if the generated code matches the lib version. Internal generator changes that don't change the output (in an incompatible way) do not cause an increase.
Variables ¶
This section is empty.
Functions ¶
func Clean ¶
func Clean(codeGenerator CodeGenerator, path string) error
Clean removes generated files in the given path. Removes *.obx.* and objectbox-model.[go|h|...] but keeps objectbox-model.json
func ModelInfoFile ¶
ModelInfoFile returns the model info JSON file name in the given directory
func PathIsDirOrPattern ¶ added in v0.12.0
PathIsDirOrPattern checks whether the given path is a path pattern, a directory or a single file.
Types ¶
type CodeGenerator ¶
type CodeGenerator interface {
// BindingFiles returns names of binding files for the given entity file.
BindingFiles(forFile string, options Options) []string
// ModelFile returns the model GO file for the given JSON info file path
ModelFile(forFile string, options Options) string
// IsGeneratedFile returns true if the given path is recognized as a file generated by this generator
IsGeneratedFile(file string) bool
// IsSourceFile returns true if the given path is recognized as a source file by this generator
IsSourceFile(file string) bool
// ParseSource reads the source file and creates a model representation
ParseSource(sourceFile string) (*model.ModelInfo, error)
// WriteBindingFiles generates and writes binding source code files
WriteBindingFiles(sourceFile string, options Options, mergedModel *model.ModelInfo) error
// WriteBindingFiles generates and writes binding source code file for model setup
WriteModelBindingFile(options Options, mergedModel *model.ModelInfo) error
}
CodeGenerator interface is used to abstract per-language generators, e.g. for Go, C, C++, etc