/**
* The contents of this file are subject to the OpenMRS Public License
* Version 1.0 (the "License"); you may not use this file except in
* compliance with the License. You may obtain a copy of the License at
* http://license.openmrs.org
*
* Software distributed under the License is distributed on an "AS IS"
* basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
* License for the specific language governing rights and limitations
* under the License.
*
* Copyright (C) OpenMRS, LLC. All Rights Reserved.
*/
package org.openmrs.annotation;
import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Inherited;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
/**
* Annotation used to describe constants in the PrivilegeConstants or RoleConstants class.
* Constant`s description or/and it`s belonging to core constants can be marked with this
* annotation. If you want constant to be put into a database at app startup, just mark it:
*
* <pre>
* @AddOnStartup(description = "Constant description")
* public static final String MANAGE_SMTH = "Manage smth";
* </pre>
*
* Or if you want to add only a constant`s description, mark it as "not core":
*
* <pre>
* @AddOnStartup(description = "Constant description", core = false)
* public static final String CONSTANT_SMTH = "Manage smth";
* </pre>
*
* @see org.openmrs.util.RoleConstants
* @see org.openmrs.util.PrivilegeConstants
* @see org.openmrs.util.OpenmrsConstants
*/
@Target( { ElementType.FIELD })
@Retention(RetentionPolicy.RUNTIME)
@Inherited
@Documented
public @interface AddOnStartup {
public String description() default "";
public boolean core() default true;
}