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


Java LinkLogic类代码示例

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


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

示例1: getLinkLogic

import jdk.nashorn.internal.objects.annotations.SpecializedFunction.LinkLogic; //导入依赖的package包/类
/**
 * Some receivers are primitive, in that case, according to the Spec we create a new
 * native object per callsite with the wrap filter. We can only apply optimistic builtins
 * if there is no per instance state saved for these wrapped objects (e.g. currently NativeStrings),
 * otherwise we can't create optimistic versions
 *
 * @param self            receiver
 * @param linkLogicClass  linkLogicClass, or null if no link logic exists
 * @return link logic instance, or null if one could not be constructed for this receiver
 */
private static LinkLogic getLinkLogic(final Object self, final Class<? extends LinkLogic> linkLogicClass) {
    if (linkLogicClass == null) {
        return LinkLogic.EMPTY_INSTANCE; //always OK to link this, specialization but without special linking logic
    }

    if (!Context.getContextTrusted().getEnv()._optimistic_types) {
        return null; //if optimistic types are off, optimistic builtins are too
    }

    final Object wrappedSelf = wrapFilter(self);
    if (wrappedSelf instanceof OptimisticBuiltins) {
        if (wrappedSelf != self && ((OptimisticBuiltins)wrappedSelf).hasPerInstanceAssumptions()) {
            return null; //pessimistic - we created a wrapped object different from the primitive, but the assumptions have instance state
        }
        return ((OptimisticBuiltins)wrappedSelf).getLinkLogic(linkLogicClass);
    }
    return null;
}
 
开发者ID:SunburstApps,项目名称:OpenJSharp,代码行数:29,代码来源:ScriptFunction.java

示例2: toString

import jdk.nashorn.internal.objects.annotations.SpecializedFunction.LinkLogic; //导入依赖的package包/类
@Override
public String toString() {
    final StringBuilder sb = new StringBuilder();
    final Class<? extends LinkLogic> linkLogicClass = getLinkLogicClass();

    sb.append("[invokerType=").
        append(invoker.type()).
        append(" ctor=").
        append(constructor).
        append(" weight=").
        append(weight()).
        append(" linkLogic=").
        append(linkLogicClass != null ? linkLogicClass.getSimpleName() : "none");

    return sb.toString();
}
 
开发者ID:SunburstApps,项目名称:OpenJSharp,代码行数:17,代码来源:CompiledFunction.java

示例3: getLinkLogic

import jdk.nashorn.internal.objects.annotations.SpecializedFunction.LinkLogic; //导入依赖的package包/类
/**
 * Some receivers are primitive, in that case, according to the Spec we
 * create a new native object per callsite with the wrap filter. We can only
 * apply optimistic builtins if there is no per instance state saved for
 * these wrapped objects (e.g. currently NativeStrings), otherwise we can't
 * create optimistic versions
 *
 * @param self receiver
 * @param linkLogicClass linkLogicClass, or null if no link logic exists
 * @return link logic instance, or null if one could not be constructed for
 * this receiver
 */
private static LinkLogic getLinkLogic(final Object self, final Class<? extends LinkLogic> linkLogicClass) {
    if (linkLogicClass == null) {
        return LinkLogic.EMPTY_INSTANCE; //always OK to link this, specialization but without special linking logic
    }

    if (!Context.getContextTrusted().getEnv()._optimistic_types) {
        return null; //if optimistic types are off, optimistic builtins are too
    }

    final Object wrappedSelf = wrapFilter(self);
    if (wrappedSelf instanceof OptimisticBuiltins) {
        if (wrappedSelf != self && ((OptimisticBuiltins) wrappedSelf).hasPerInstanceAssumptions()) {
            return null; //pessimistic - we created a wrapped object different from the primitive, but the assumptions have instance state
        }
        return ((OptimisticBuiltins) wrappedSelf).getLinkLogic(linkLogicClass);
    }
    return null;
}
 
开发者ID:AdoptOpenJDK,项目名称:openjdk-jdk10,代码行数:31,代码来源:ScriptFunction.java

示例4: getLinkLogic

import jdk.nashorn.internal.objects.annotations.SpecializedFunction.LinkLogic; //导入依赖的package包/类
@Override
public LinkLogic getLinkLogic(final Class<? extends LinkLogic> clazz) {
    if (clazz == CharCodeAtLinkLogic.class) {
        return CharCodeAtLinkLogic.INSTANCE;
    }
    return null;
}
 
开发者ID:SunburstApps,项目名称:OpenJSharp,代码行数:8,代码来源:NativeString.java

示例5: getLinkLogic

import jdk.nashorn.internal.objects.annotations.SpecializedFunction.LinkLogic; //导入依赖的package包/类
@Override
public SpecializedFunction.LinkLogic getLinkLogic(final Class<? extends LinkLogic> clazz) {
    if (clazz == PushLinkLogic.class) {
        return PushLinkLogic.INSTANCE;
    } else if (clazz == PopLinkLogic.class) {
        return PopLinkLogic.INSTANCE;
    } else if (clazz == ConcatLinkLogic.class) {
        return ConcatLinkLogic.INSTANCE;
    }
    return null;
}
 
开发者ID:SunburstApps,项目名称:OpenJSharp,代码行数:12,代码来源:NativeArray.java

示例6: Specialization

import jdk.nashorn.internal.objects.annotations.SpecializedFunction.LinkLogic; //导入依赖的package包/类
/**
 * Constructor
 *
 * @param mh  invoker method handler
 * @param linkLogicClass extra link logic needed for this function. Instances of this class also contains logic for checking
 *  if this can be linked on its first encounter, which is needed as per our standard linker semantics
 * @param isOptimistic is this an optimistic native method, i.e. can it throw {@link UnwarrantedOptimismException}
 *   which would have to lead to a relink and return value processing
 */
public Specialization(final MethodHandle mh, final Class<? extends LinkLogic> linkLogicClass, final boolean isOptimistic) {
    this.mh             = mh;
    this.isOptimistic   = isOptimistic;
    if (linkLogicClass != null) {
        //null out the "empty" link logic class for optimization purposes
        //we only use the empty instance because we can't default class annotations
        //to null
        this.linkLogicClass = LinkLogic.isEmpty(linkLogicClass) ? null : linkLogicClass;
    } else {
        this.linkLogicClass = null;
    }
 }
 
开发者ID:SunburstApps,项目名称:OpenJSharp,代码行数:22,代码来源:Specialization.java

示例7: getLinkLogicClass

import jdk.nashorn.internal.objects.annotations.SpecializedFunction.LinkLogic; //导入依赖的package包/类
Class<? extends LinkLogic> getLinkLogicClass() {
    if (isSpecialization()) {
        final Class<? extends LinkLogic> linkLogicClass = specialization.getLinkLogicClass();
        assert !LinkLogic.isEmpty(linkLogicClass) : "empty link logic classes should have been removed by nasgen";
        return linkLogicClass;
    }
    return null;
}
 
开发者ID:SunburstApps,项目名称:OpenJSharp,代码行数:9,代码来源:CompiledFunction.java

示例8: Specialization

import jdk.nashorn.internal.objects.annotations.SpecializedFunction.LinkLogic; //导入依赖的package包/类
/**
 * Constructor
 *
 * @param mh  invoker method handler
 * @param linkLogicClass extra link logic needed for this function. Instances of this class also contains logic for checking
 *  if this can be linked on its first encounter, which is needed as per our standard linker semantics
 * @param isOptimistic is this an optimistic native method, i.e. can it throw {@link UnwarrantedOptimismException}
 *   which would have to lead to a relink and return value processing
 * @param convertsNumericArgs true if it is safe to convert arguments to numbers
 */
public Specialization(final MethodHandle mh, final Class<? extends LinkLogic> linkLogicClass,
                      final boolean isOptimistic, final boolean convertsNumericArgs) {
    this.mh             = mh;
    this.isOptimistic   = isOptimistic;
    this.convertsNumericArgs = convertsNumericArgs;
    if (linkLogicClass != null) {
        //null out the "empty" link logic class for optimization purposes
        //we only use the empty instance because we can't default class annotations
        //to null
        this.linkLogicClass = LinkLogic.isEmpty(linkLogicClass) ? null : linkLogicClass;
    } else {
        this.linkLogicClass = null;
    }
 }
 
开发者ID:AdoptOpenJDK,项目名称:openjdk-jdk10,代码行数:25,代码来源:Specialization.java


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