2 * Back 2 Browser Bytecode Translator
3 * Copyright (C) 2012 Jaroslav Tulach <jaroslav.tulach@apidesign.org>
5 * This program is free software: you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation, version 2 of the License.
9 * This program is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 * GNU General Public License for more details.
14 * You should have received a copy of the GNU General Public License
15 * along with this program. Look for COPYING file in the top folder.
16 * If not, see http://opensource.org/licenses/GPL-2.0.
18 package org.apidesign.bck2brwsr.core;
20 import java.lang.annotation.ElementType;
21 import java.lang.annotation.Retention;
22 import java.lang.annotation.RetentionPolicy;
23 import java.lang.annotation.Target;
25 /** Influence the inheritance of your class when converted to JavaScript.
26 * Sometimes one does not want
27 * to mimic the Java hierarchy, but modify it a bit. For example it makes
28 * sense to treat every (JavaScript) string literal as {@link String}.
29 * One can do it by making {@link String} subclass JavaScript <code>String</code>
30 * and use <code>String.prototype</code> as a container for all {@link String}
33 * @author Jaroslav Tulach <jtulach@netbeans.org>
35 @Retention(RetentionPolicy.CLASS)
36 @Target({ ElementType.TYPE })
37 public @interface JavaScriptPrototype {
38 /** Expression that identifies the function where all methods
39 * should be added into. If this attribute is unspecified
40 * all methods are added to the same object specified by
41 * {@link #prototype()}.
43 * @return name of function to contain methods found in given class
45 String container() default "";
46 /** Expression that defines the way to construct prototype for this
48 * @return expression to construct prototype