/*
This file belongs to the Servoy development and deployment environment, Copyright (C) 1997-2010 Servoy BV
This program is free software; you can redistribute it and/or modify it under
the terms of the GNU Affero General Public License as published by the Free
Software Foundation; either version 3 of the License, or (at your option) any
later version.
This program is distributed in the hope that it will be useful, but WITHOUT
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details.
You should have received a copy of the GNU Affero General Public License along
with this program; if not, see http://www.gnu.org/licenses or write to the Free
Software Foundation,Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
*/
package com.servoy.j2db.documentation;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
/**
* Annotation that is used to mark the classes that should participate
* to the process of generating the documentation.
*
* @author gerzse
*/
@Retention(RetentionPolicy.RUNTIME)
public @interface ServoyDocumented
{
public static final String PLUGINS = "plugins"; //$NON-NLS-1$
public static final String BEANS = "beans"; //$NON-NLS-1$
public static final String RUNTIME = "runtime"; //$NON-NLS-1$
public static final String DESIGNTIME = "designtime"; //$NON-NLS-1$
public static final String JSLIB = "jslib"; //$NON-NLS-1$
public static final String MEMBER_KIND_EVENT = "event"; //$NON-NLS-1$
public static final String MEMBER_KIND_COMMAND = "command"; //$NON-NLS-1$
public static final String MEMBER_KIND_PROPERY = "property"; //$NON-NLS-1$
String category() default PLUGINS;
/**
* This is the name that appears in wiki documentation - in the left-hand-side tree. If scriptingName is not
* defined then publicName is used instead even for scriptingName.
*/
String publicName() default "";
/**
* Scripting name is the "JS type". It is what will be listed in wiki pages/solex/jseditor tooltips
* as a parameter type or as a return type. If scriptingName is null, the "JS type" is what publicName defines.<BR>
* If neither publicName or scriptingName are defined, then the "JS type" will be the class simple name.
*/
String scriptingName() default "";
/**
* The super-component.
*/
String extendsComponent() default "";
/**
* Override for member kind derived from method name.
* event, command, property
*/
String memberKind() default "";
/**
* See graphical component as button
*/
boolean isButton() default false;
/**
* Field display type
*/
int displayType() default -1;
/**
* for documenting class, which class is the real class
*/
Class< ? > realClass() default Object.class;
/**
* The type code of the element
*/
int typeCode() default -1;
}