jaroslav@26: /** jaroslav@106: * Back 2 Browser Bytecode Translator jaroslav@106: * Copyright (C) 2012 Jaroslav Tulach jaroslav@26: * jaroslav@26: * This program is free software: you can redistribute it and/or modify jaroslav@26: * it under the terms of the GNU General Public License as published by jaroslav@26: * the Free Software Foundation, version 2 of the License. jaroslav@26: * jaroslav@26: * This program is distributed in the hope that it will be useful, jaroslav@26: * but WITHOUT ANY WARRANTY; without even the implied warranty of jaroslav@26: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the jaroslav@26: * GNU General Public License for more details. jaroslav@26: * jaroslav@26: * You should have received a copy of the GNU General Public License jaroslav@26: * along with this program. Look for COPYING file in the top folder. jaroslav@26: * If not, see http://opensource.org/licenses/GPL-2.0. jaroslav@26: */ jaroslav@26: package org.apidesign.bck2brwsr.htmlpage.api; jaroslav@26: jaroslav@26: import java.lang.annotation.ElementType; jaroslav@26: import java.lang.annotation.Retention; jaroslav@26: import java.lang.annotation.RetentionPolicy; jaroslav@26: import java.lang.annotation.Target; jaroslav@26: jaroslav@770: /** Defines a model class named {@link #className()} which contains jaroslav@770: * defined {@link #properties()}. This class can have methods jaroslav@770: * annotated by {@link ComputedProperty} which define derived jaroslav@770: * properties in the model class. jaroslav@770: *

jaroslav@770: * The {@link #className() generated class} will have methods jaroslav@770: * to convert the object toJSON and fromJSON. jaroslav@26: * jaroslav@26: * @author Jaroslav Tulach jaroslav@26: */ jaroslav@26: @Retention(RetentionPolicy.SOURCE) jaroslav@100: @Target(ElementType.TYPE) jaroslav@770: public @interface Model { jaroslav@770: /** Name of the model class */ jaroslav@770: String className(); jaroslav@770: /** List of properties in the model. jaroslav@26: */ jaroslav@770: Property[] properties(); jaroslav@26: }