public interface ShellCallback
The default ShellCallback that is very low function and does not support the merging of Java files. The default shell callback is appropriate for use in well controlled environments where no changes made to generated Java files.
Modifier and Type | Method and Description |
---|---|
File |
getDirectory(String targetProject,
String targetPackage)
This method is called to ask the shell to resolve a project/package combination into a directory on the file
system.
|
default boolean |
isMergeSupported()
Return true if the callback supports Java merging, otherwise false.
|
boolean |
isOverwriteEnabled()
Return true if the generator should overwrite an existing file if one exists.
|
default String |
mergeJavaFile(String newFileSource,
File existingFile,
String[] javadocTags,
String fileEncoding)
This method is called if a newly generated Java file would
overwrite an existing file.
|
default void |
refreshProject(String project)
After all files are saved to the file system, this method is called
once for each unique project that was affected by the generation
run.
|
File getDirectory(String targetProject, String targetPackage) throws ShellException
The returned java.io.File
object:
The default shell callback interprets both values as directories and simply concatenates the two values to generate the default directory.
targetProject
- the target projecttargetPackage
- the target packageShellException
- if the project/package cannot be resolved into a directory on the file system. In this case, the
generator will not save the file it is currently working on. The generator will add the exception
message to the list of warnings automatically.default String mergeJavaFile(String newFileSource, File existingFile, String[] javadocTags, String fileEncoding) throws ShellException
A merge typically follows these steps:
This method is called only if you return true
from
isMergeSupported()
.
newFileSource
- the source of the newly generated Java fileexistingFile
- the existing Java filejavadocTags
- the JavaDoc tags that denotes which methods and fields in the
old file to delete (if the Java element has any of these tags,
the element is eligible for merge)fileEncoding
- the file encoding for reading existing Java files. Can be null,
in which case the platform default encoding will be used.ShellException
- if the file cannot be merged for some reason. If this
exception is thrown, nothing will be saved and the
existing file will remain undisturbed. The generator will add the
exception message to the list of warnings automatically.default void refreshProject(String project)
project
- the project to be refresheddefault boolean isMergeSupported()
mergeJavaFile()
method will be called only if this
method returns true
.boolean isOverwriteEnabled()
isMergeSupported()
returns false
and a file exists that would be overwritten by
a generated file. If you return true
, then we will log a
warning specifying what file was overwritten.Copyright © 2006–2023 MyBatis.org. All rights reserved.