java/sql-dk/src/main/java/info/globalcode/sql/dk/configuration/PropertyDeclaration.java
author František Kučera <franta-hg@frantovo.cz>
Sun, 04 Feb 2024 16:10:37 +0100
branchv_0
changeset 255 099bb96f8d8d
parent 250 aae5009bd0af
permissions -rw-r--r--
tabular formatter: new option 'separateBy' to print horizontal separator on each change of given column
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@250
     7
 * the Free Software Foundation, version 3 of the License.
franta-hg@205
     8
 *
franta-hg@205
     9
 * This program is distributed in the hope that it will be useful,
franta-hg@205
    10
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
franta-hg@205
    11
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
franta-hg@205
    12
 * GNU General Public License for more details.
franta-hg@205
    13
 *
franta-hg@205
    14
 * You should have received a copy of the GNU General Public License
franta-hg@205
    15
 * along with this program. If not, see <http://www.gnu.org/licenses/>.
franta-hg@205
    16
 */
franta-hg@205
    17
package info.globalcode.sql.dk.configuration;
franta-hg@205
    18
franta-hg@205
    19
import java.lang.annotation.ElementType;
franta-hg@205
    20
import java.lang.annotation.Repeatable;
franta-hg@205
    21
import java.lang.annotation.Retention;
franta-hg@205
    22
import static java.lang.annotation.RetentionPolicy.RUNTIME;
franta-hg@205
    23
import java.lang.annotation.Target;
franta-hg@205
    24
franta-hg@205
    25
/**
franta-hg@207
    26
 * Declaration of the (formatter) properties – for documentation purposes.
franta-hg@207
    27
 *
franta-hg@207
    28
 * TODO: automatically inject properties (configured, ad-hoc, default ones) to the formatters
franta-hg@205
    29
 *
franta-hg@205
    30
 * @author Ing. František Kučera (frantovo.cz)
franta-hg@205
    31
 */
franta-hg@205
    32
@Retention(RUNTIME)
franta-hg@205
    33
@Target({ElementType.TYPE})
franta-hg@205
    34
@Repeatable(PropertyDeclarations.class)
franta-hg@205
    35
public @interface PropertyDeclaration {
franta-hg@205
    36
franta-hg@205
    37
	/**
franta-hg@205
    38
	 * @return name of the property
franta-hg@205
    39
	 */
franta-hg@205
    40
	String name();
franta-hg@205
    41
franta-hg@205
    42
	/**
franta-hg@205
    43
	 * @return data type of the value: String, numbers, Boolean or Enum
franta-hg@205
    44
	 */
franta-hg@205
    45
	Class type();
franta-hg@212
    46
	
franta-hg@205
    47
	/**
franta-hg@205
    48
	 * @return documentation for the users
franta-hg@205
    49
	 */
franta-hg@205
    50
	String description();
franta-hg@207
    51
franta-hg@207
    52
	/**
franta-hg@207
    53
	 * @return default value of this property
franta-hg@207
    54
	 */
franta-hg@207
    55
	String defaultValue();
franta-hg@205
    56
}