• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

Java JsType类代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了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;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Java Mutation类代码示例发布时间:2022-05-21
下一篇:
Java EmptyPanel类代码示例发布时间:2022-05-21
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap