franta-hg@205: /** franta-hg@205: * SQL-DK franta-hg@205: * Copyright © 2015 František Kučera (frantovo.cz) franta-hg@205: * franta-hg@205: * This program is free software: you can redistribute it and/or modify franta-hg@205: * it under the terms of the GNU General Public License as published by franta-hg@250: * the Free Software Foundation, version 3 of the License. franta-hg@205: * franta-hg@205: * This program is distributed in the hope that it will be useful, franta-hg@205: * but WITHOUT ANY WARRANTY; without even the implied warranty of franta-hg@205: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the franta-hg@205: * GNU General Public License for more details. franta-hg@205: * franta-hg@205: * You should have received a copy of the GNU General Public License franta-hg@205: * along with this program. If not, see . franta-hg@205: */ franta-hg@205: package info.globalcode.sql.dk.configuration; franta-hg@205: franta-hg@205: import java.lang.annotation.ElementType; franta-hg@205: import java.lang.annotation.Repeatable; franta-hg@205: import java.lang.annotation.Retention; franta-hg@205: import static java.lang.annotation.RetentionPolicy.RUNTIME; franta-hg@205: import java.lang.annotation.Target; franta-hg@205: franta-hg@205: /** franta-hg@207: * Declaration of the (formatter) properties – for documentation purposes. franta-hg@207: * franta-hg@207: * TODO: automatically inject properties (configured, ad-hoc, default ones) to the formatters franta-hg@205: * franta-hg@205: * @author Ing. František Kučera (frantovo.cz) franta-hg@205: */ franta-hg@205: @Retention(RUNTIME) franta-hg@205: @Target({ElementType.TYPE}) franta-hg@205: @Repeatable(PropertyDeclarations.class) franta-hg@205: public @interface PropertyDeclaration { franta-hg@205: franta-hg@205: /** franta-hg@205: * @return name of the property franta-hg@205: */ franta-hg@205: String name(); franta-hg@205: franta-hg@205: /** franta-hg@205: * @return data type of the value: String, numbers, Boolean or Enum franta-hg@205: */ franta-hg@205: Class type(); franta-hg@212: franta-hg@205: /** franta-hg@205: * @return documentation for the users franta-hg@205: */ franta-hg@205: String description(); franta-hg@207: franta-hg@207: /** franta-hg@207: * @return default value of this property franta-hg@207: */ franta-hg@207: String defaultValue(); franta-hg@205: }