Package io.github.chrimle.classforge
Interface Builder<T extends Builder<T>>
- All Known Implementing Classes:
AbstractBuilder
,ClassBuilder
,EnumBuilder
@API(status=STABLE,
since="0.6.0")
public sealed interface Builder<T extends Builder<T>>
permits AbstractBuilder<T>
Builder of a Java class - which MAY generate a
class
, enum
or
record
.- Since:
- 0.1.0
- Author:
- Chrimle
-
Nested Class Summary
Nested ClassesModifier and TypeInterfaceDescriptionstatic enum
TheSemVer
format of a generated class.static enum
TheSemVer
placement in generated classes. -
Method Summary
Modifier and TypeMethodDescriptioncommit()
Commits the currently uncommitted changes as a new class.default T
commit
(io.github.chrimle.semver.Change change) Commits the currently uncommitted changes as a new class.commit
(io.github.chrimle.semver.SemVer semVer) Commits the currently uncommitted changes as a new class.io.github.chrimle.semver.SemVer
Gets thesemVer
of the currently uncommitted class.setSemVer
(io.github.chrimle.semver.SemVer semVer) Sets thesemVer
of the currently uncommitted class.setVersionFormat
(Builder.VersionFormat versionFormat) Sets theversionFormat
of the currently uncommitted class.setVersionPlacement
(Builder.VersionPlacement versionPlacement) Sets theversionPlacement
of the currently uncommitted class.updateClassName
(String className) Updates theclassName
of the currently uncommitted class.updateDirectory
(String directory) Updates thedirectory
of the currently uncommitted class.updatePackageName
(String packageName) Updates thepackageName
of the currently uncommitted class.
-
Method Details
-
setVersionFormat
Sets theversionFormat
of the currently uncommitted class.Default:
Builder.VersionFormat.COMPLETE
- Parameters:
versionFormat
- for the class.- Returns:
- this
Builder
. - Since:
- 0.9.0
-
setVersionPlacement
Sets theversionPlacement
of the currently uncommitted class.Default:
Builder.VersionPlacement.NONE
.- Parameters:
versionPlacement
- for the class.- Returns:
- this
Builder
. - Since:
- 0.3.0
-
getSemVer
io.github.chrimle.semver.SemVer getSemVer()Gets thesemVer
of the currently uncommitted class. NOTE: thesemVer
will be updated when committing the changes.- Returns:
- the
semVer
of the class. - Since:
- 0.6.0
-
setSemVer
Sets thesemVer
of the currently uncommitted class.NOTE: the
semVer
will be updated when committing the changes.- Parameters:
semVer
- for the class.- Returns:
- this
Builder
. - Since:
- 0.5.0
-
updateDirectory
Updates thedirectory
of the currently uncommitted class.- Parameters:
directory
- of the class.- Returns:
- this
Builder
. - Since:
- 0.1.0
-
updateClassName
Updates theclassName
of the currently uncommitted class.- Parameters:
className
- of the class.- Returns:
- this
Builder
. - Since:
- 0.1.0
-
updatePackageName
Updates thepackageName
of the currently uncommitted class.- Parameters:
packageName
- of the class.- Returns:
- this
Builder
. - Since:
- 0.1.0
-
commit
T commit()Commits the currently uncommitted changes as a new class. ThesemVer
of the new class will be set automatically.- Returns:
- this
Builder
. - Since:
- 0.1.0
-
commit
Commits the currently uncommitted changes as a new class. ThesemVer
of the new class will be set according to the givenchange
.- Parameters:
change
- for the newsemVer
.- Returns:
- this
Builder
- Throws:
IllegalArgumentException
- ifchange
isnull
.- Since:
- 0.6.0
-
commit
Commits the currently uncommitted changes as a new class. ThesemVer
of the new class will be set to the givensemVer
.- Parameters:
semVer
- for the new class.- Returns:
- this
Builder
. - Since:
- 0.6.0
-