当前位置: 首页>>代码示例>>Java>>正文


Java JsType类代码示例

本文整理汇总了Java中jsinterop.annotations.JsType的典型用法代码示例。如果您正苦于以下问题:Java JsType类的具体用法?Java JsType怎么用?Java JsType使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。


JsType类属于jsinterop.annotations包,在下文中一共展示了JsType类的6个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: isJsObject

import jsinterop.annotations.JsType; //导入依赖的package包/类
@GwtIncompatible
private static final boolean isJsObject(Class<?> type) {
    JsType jsType = type.getAnnotation(JsType.class);
    if (jsType == null) {
        return false;
    }
    if (!jsType.isNative()) {
        return false;
    }
    if (!JsPackage.GLOBAL.equals(jsType.namespace())) {
        return false;
    }
    if (!"Object".equals(jsType.name())) {
        return false;
    }
    return true;
}
 
开发者ID:codegen-io,项目名称:jso-builder,代码行数:18,代码来源:PrimitivesJSOJSOBuilder.java

示例2: generate

import jsinterop.annotations.JsType; //导入依赖的package包/类
/**
 * Generate and save the Java file for the typeElement passed to the constructor
 * @param directiveTypeElement The {@link VueDirective} class to
 * generate {@link VueDirectiveOptions} from
 */
public void generate(TypeElement directiveTypeElement)
{
    ClassName optionsClassName = GenerationNameUtil.directiveOptionsName(directiveTypeElement);

    Builder componentClassBuilder = TypeSpec
        .classBuilder(optionsClassName)
        .addModifiers(Modifier.PUBLIC, Modifier.FINAL)
        .superclass(VueDirectiveOptions.class)
        .addAnnotation(JsType.class)
        .addJavadoc("VueComponent Directive Options for directive {@link $S}",
            directiveTypeElement.getQualifiedName().toString());

    // Initialize constructor
    MethodSpec.Builder constructorBuilder =
        MethodSpec.constructorBuilder().addModifiers(Modifier.PUBLIC);

    // Add the Java Component Instance initialization
    constructorBuilder.addStatement("this.$L = new $T()",
        "vuegwt$javaDirectiveInstance",
        TypeName.get(directiveTypeElement.asType()));

    // Call the method to copy hooks functions
    constructorBuilder.addStatement("this.copyHooks()");

    // Finish building the constructor
    componentClassBuilder.addMethod(constructorBuilder.build());

    // Build the DirectiveOptions class
    GenerationUtil.toJavaFile(filer,
        componentClassBuilder,
        optionsClassName,
        directiveTypeElement);
}
 
开发者ID:Axellience,项目名称:vue-gwt,代码行数:39,代码来源:VueDirectiveOptionsGenerator.java

示例3: getComponentJsTypeBuilder

import jsinterop.annotations.JsType; //导入依赖的package包/类
/**
 * Create and return the builder for the JsType of our {@link VueComponent}.
 * @param component The {@link VueComponent} we are generating for
 * @param jsTypeClassName The name of the generated JsType class
 * @return A Builder to build the class
 */
private Builder getComponentJsTypeBuilder(TypeElement component, ClassName jsTypeClassName)
{
    Builder componentJsTypeBuilder = TypeSpec
        .classBuilder(jsTypeClassName)
        .addModifiers(Modifier.PUBLIC)
        .superclass(TypeName.get(component.asType()));

    // Add @JsType annotation. This ensure this class is included.
    // As we use a class reference to use our Components, this class would be removed by GWT
    // tree shaking.
    componentJsTypeBuilder.addAnnotation(AnnotationSpec
        .builder(JsType.class)
        .addMember("namespace", "\"VueGWT.javaComponentConstructors\"")
        .addMember("name", "$S", component.getQualifiedName().toString().replaceAll("\\.", "_"))
        .build());

    // Add a block that registers the VueFactory for the VueComponent
    componentJsTypeBuilder.addStaticBlock(CodeBlock
        .builder()
        .addStatement("$T.onReady(() -> $T.register($S, () -> $T.get()))",
            VueGWT.class,
            VueGWT.class,
            component.getQualifiedName(),
            componentFactoryName(component))
        .build());

    return componentJsTypeBuilder;
}
 
开发者ID:Axellience,项目名称:vue-gwt,代码行数:35,代码来源:ComponentJsTypeGenerator.java

示例4: createInitMethod

import jsinterop.annotations.JsType; //导入依赖的package包/类
@Override
protected List<CodeBlock> createInitMethod(TypeElement component, Builder vueFactoryBuilder)
{
    JsType jsType = component.getAnnotation(JsType.class);
    if (jsType == null || !jsType.isNative())
    {
        messager.printMessage(Kind.ERROR,
            component.asType().toString()
                + " @JsComponent must have a @JsType annotation with isNative to true");
        return null;
    }
    if (!JsPackage.GLOBAL.equals(jsType.namespace()))
    {
        messager.printMessage(Kind.ERROR,
            component.asType().toString()
                + " @JsType annotation on @JsComponent must have namespace set to JsPackage.GLOBAL");
        return null;
    }

    JsComponent jsComponent = component.getAnnotation(JsComponent.class);

    MethodSpec.Builder initBuilder =
        MethodSpec.methodBuilder("init").addModifiers(Modifier.PRIVATE);

    if ("Function".equals(jsType.name()))
    {
        initForComponentConstructor(jsComponent, initBuilder);
    }
    else if ("Object".equals(jsType.name()))
    {
        initForComponentOptions(jsComponent, initBuilder);
    }
    else
    {
        messager.printMessage(Kind.ERROR,
            component.asType().toString()
                + " @JsType annotation on @JsComponent must have name set to either Function or Object.");
    }

    vueFactoryBuilder.addMethod(initBuilder.build());
    return new LinkedList<>();
}
 
开发者ID:Axellience,项目名称:vue-gwt,代码行数:43,代码来源:VueJsComponentFactoryGenerator.java

示例5: isFieldVisibleInJS

import jsinterop.annotations.JsType; //导入依赖的package包/类
/**
 * Return weather a given field is visible in JS (JsInterop).
 * It will be the case if it's public and it's class has the {@link JsType} annotation, or
 * if it has the {@link JsProperty} annotation.
 * @param field The field to check
 * @return true if it is visible (JsInterop), false otherwise
 */
public static boolean isFieldVisibleInJS(VariableElement field)
{
    return (hasAnnotation(field.getEnclosingElement(), JsType.class) && field
        .getModifiers()
        .contains(Modifier.PUBLIC)) || hasAnnotation(field, JsProperty.class);
}
 
开发者ID:Axellience,项目名称:vue-gwt,代码行数:14,代码来源:ComponentGenerationUtil.java

示例6: isMethodVisibleInJS

import jsinterop.annotations.JsType; //导入依赖的package包/类
/**
 * Return weather a given method is visible in JS (JsInterop).
 * It will be the case if it's public and it's class/interface has the {@link JsType}
 * annotation, or
 * if it has the {@link JsMethod} annotation.
 * @param method The method to check
 * @return true if it is visible (JsInterop), false otherwise
 */
public static boolean isMethodVisibleInJS(ExecutableElement method)
{
    return (hasAnnotation(method.getEnclosingElement(), JsType.class) && method
        .getModifiers()
        .contains(Modifier.PUBLIC)) || hasAnnotation(method, JsMethod.class);
}
 
开发者ID:Axellience,项目名称:vue-gwt,代码行数:15,代码来源:ComponentGenerationUtil.java


注:本文中的jsinterop.annotations.JsType类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。