EnumGen

Generate Java Enums based on resources

Лицензия

Лицензия

Группа

Группа

io.github.jkrauze.enumgen
Идентификатор

Идентификатор

enumgen
Последняя версия

Последняя версия

0.1.0
Дата

Дата

Тип

Тип

pom
Описание

Описание

EnumGen
Generate Java Enums based on resources
Ссылка на сайт

Ссылка на сайт

https://github.com/jkrauze/bra
Система контроля версий

Система контроля версий

https://github.com/jkrauze/enumgen

Скачать enumgen

Имя Файла Размер
enumgen-0.1.0.pom 4 KB
Обзор

Как подключить последнюю версию

<!-- https://jarcasting.com/artifacts/io.github.jkrauze.enumgen/enumgen/ -->
<dependency>
    <groupId>io.github.jkrauze.enumgen</groupId>
    <artifactId>enumgen</artifactId>
    <version>0.1.0</version>
    <type>pom</type>
</dependency>
// https://jarcasting.com/artifacts/io.github.jkrauze.enumgen/enumgen/
implementation 'io.github.jkrauze.enumgen:enumgen:0.1.0'
// https://jarcasting.com/artifacts/io.github.jkrauze.enumgen/enumgen/
implementation ("io.github.jkrauze.enumgen:enumgen:0.1.0")
'io.github.jkrauze.enumgen:enumgen:pom:0.1.0'
<dependency org="io.github.jkrauze.enumgen" name="enumgen" rev="0.1.0">
  <artifact name="enumgen" type="pom" />
</dependency>
@Grapes(
@Grab(group='io.github.jkrauze.enumgen', module='enumgen', version='0.1.0')
)
libraryDependencies += "io.github.jkrauze.enumgen" % "enumgen" % "0.1.0"
[io.github.jkrauze.enumgen/enumgen "0.1.0"]

Зависимости

Библиотека не имеет зависимостей. Это самодостаточное приложение, которое не зависит ни от каких других библиотек.

Модули Проекта

  • core
  • plugin

EnumGen

Generate Java Enums based on resources.

Replace your manually built properties key enum or string constants with compile-time generated enum.

Example

Convert .properties file (TODO: .json and .yaml support)

application.properties

sample.key=Sample value
other.sample.key=Other sample value!

to Java enum

ApplicationKeys

public enum ApplicationKeys {

    OTHER_SAMPLE_KEY("other.sample.key", "Other sample value!"),
    SAMPLE_KEY("sample.key", "Sample value");

    private String key;
    private String defaultValue;

    ApplicationKeys(String key, String defaultValue) {
        this.key = key;
        this.defaultValue = defaultValue;
    }

    public String getKey() {
        return key;
    }

    public String getDefaultValue() {
        return defaultValue;
    }

}

on the compile time.

You'll be able to use the enum to ensure your string keys.

Instead of

System.getProperty("sample.key")
// or
System.getProperty("sample.key", "Sample value")

you could do

System.getProperty(ApplicationKeys.SAMPLE_KEY.getKey());
// or
System.getProperty(ApplicationKeys.SAMPLE_KEY.getKey(), ApplicationKeys.SAMPLE_KEY.getDefaultValue());

what would help you find out if you're using wrong key at the compile time!

How to run?

Add the build plugin to your Maven project.

    <build>
        <plugins>
            <plugin>
                <groupId>io.github.jkrauze.enumgen</groupId>
                <artifactId>enumgen-maven-plugin</artifactId>
                <version>0.1.0</version>
                <executions>
                    <execution>
                        <goals>
                            <goal>generate-enum</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
        </plugins>
    </build>

Configuration

TODO

            <plugin>
                ...
                <configuration>
                    <basePackageName>${project.groupId}.${project.artifactId}.resources</basePackageName>
                    <baseDir>src/main/resources</baseDir>
                    <recursive>true</recursive>
                    <outputBaseDir>target/generated-sources/enumgen</outputBaseDir>
                    <allowedExtensions>
                        <extension>properties</extension>
                        <!--TODO <extension>json</extension>-->
                        <!--TODO <extension>yaml</extension>-->
                    </allowedExtensions>
                    <enumClassNamePrefix></enumClassNamePrefix>
                    <enumClassNameSuffix>Keys</enumClassNameSuffix>
                </configuration>
            </plugin>

License

Licensed under the MIT License.

Версии библиотеки

Версия
0.1.0