java/sql-dk/src/main/java/info/globalcode/sql/dk/configuration/PropertyDeclaration.java
author František Kučera <franta-hg@frantovo.cz>
Mon, 04 Mar 2019 20:15:24 +0100
branchv_0
changeset 238 4a1864c3e867
parent 212 java/sql-dk/src/info/globalcode/sql/dk/configuration/PropertyDeclaration.java@d154d6012cbe
child 250 aae5009bd0af
permissions -rw-r--r--
mavenized: sql-dk
franta-hg@205
     1
/**
franta-hg@205
     2
 * SQL-DK
franta-hg@205
     3
 * Copyright © 2015 František Kučera (frantovo.cz)
franta-hg@205
     4
 *
franta-hg@205
     5
 * This program is free software: you can redistribute it and/or modify
franta-hg@205
     6
 * it under the terms of the GNU General Public License as published by
franta-hg@205
     7
 * the Free Software Foundation, either version 3 of the License, or
franta-hg@205
     8
 * (at your option) any later version.
franta-hg@205
     9
 *
franta-hg@205
    10
 * This program is distributed in the hope that it will be useful,
franta-hg@205
    11
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
franta-hg@205
    12
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
franta-hg@205
    13
 * GNU General Public License for more details.
franta-hg@205
    14
 *
franta-hg@205
    15
 * You should have received a copy of the GNU General Public License
franta-hg@205
    16
 * along with this program. If not, see <http://www.gnu.org/licenses/>.
franta-hg@205
    17
 */
franta-hg@205
    18
package info.globalcode.sql.dk.configuration;
franta-hg@205
    19
franta-hg@205
    20
import java.lang.annotation.ElementType;
franta-hg@205
    21
import java.lang.annotation.Repeatable;
franta-hg@205
    22
import java.lang.annotation.Retention;
franta-hg@205
    23
import static java.lang.annotation.RetentionPolicy.RUNTIME;
franta-hg@205
    24
import java.lang.annotation.Target;
franta-hg@205
    25
franta-hg@205
    26
/**
franta-hg@207
    27
 * Declaration of the (formatter) properties – for documentation purposes.
franta-hg@207
    28
 *
franta-hg@207
    29
 * TODO: automatically inject properties (configured, ad-hoc, default ones) to the formatters
franta-hg@205
    30
 *
franta-hg@205
    31
 * @author Ing. František Kučera (frantovo.cz)
franta-hg@205
    32
 */
franta-hg@205
    33
@Retention(RUNTIME)
franta-hg@205
    34
@Target({ElementType.TYPE})
franta-hg@205
    35
@Repeatable(PropertyDeclarations.class)
franta-hg@205
    36
public @interface PropertyDeclaration {
franta-hg@205
    37
franta-hg@205
    38
	/**
franta-hg@205
    39
	 * @return name of the property
franta-hg@205
    40
	 */
franta-hg@205
    41
	String name();
franta-hg@205
    42
franta-hg@205
    43
	/**
franta-hg@205
    44
	 * @return data type of the value: String, numbers, Boolean or Enum
franta-hg@205
    45
	 */
franta-hg@205
    46
	Class type();
franta-hg@212
    47
	
franta-hg@205
    48
	/**
franta-hg@205
    49
	 * @return documentation for the users
franta-hg@205
    50
	 */
franta-hg@205
    51
	String description();
franta-hg@207
    52
franta-hg@207
    53
	/**
franta-hg@207
    54
	 * @return default value of this property
franta-hg@207
    55
	 */
franta-hg@207
    56
	String defaultValue();
franta-hg@205
    57
}