java/sql-dk/src/info/globalcode/sql/dk/configuration/PropertyDeclaration.java
author František Kučera <franta-hg@frantovo.cz>
Tue, 26 Feb 2019 18:19:49 +0100
branchv_0
changeset 236 a3ec71fa8e17
parent 212 d154d6012cbe
permissions -rw-r--r--
Avoid reusing/rewriting the DB connection properties.
There was weird random errors while testing connection to multiple DB in parallel when one of them was meta connection to same DB connection.
Two kinds of exception: 1) missing password 2) „Passing DB password as CLI parameter is insecure!“
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
}