/* * Copyright 2008-2009 Sun Microsystems, Inc. All Rights Reserved. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. * * This code is free software; you can redistribute it and/or modify it * under the terms of the GNU General Public License version 2 only, as * published by the Free Software Foundation. * * This code is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License * version 2 for more details (a copy is included in the LICENSE file that * accompanied this code). * * You should have received a copy of the GNU General Public License version * 2 along with this work; if not, write to the Free Software Foundation, * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. * * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, * CA 95054 USA or visit www.sun.com if you need additional information or * have any questions. */ package org.visage.tools.comp; import org.visage.runtime.Entry; import com.sun.tools.mjavac.util.Context; import com.sun.tools.mjavac.util.Name; import org.visage.tools.code.VisageTypeRepresentation; import com.sun.tools.mjavac.code.Symbol; import java.util.regex.Pattern; /** * Shared definitions * * @author Robert Field */ public class VisageDefs { /** * Method prefix strings for attributes * * Format: <name>_AttributeMethodPrefix */ public static final String applyDefaults_AttributeMethodPrefix = "applyDefaults$"; public static final String seq_AttributeMethodPrefix = "seq$"; public static final String get_AttributeMethodPrefix = "get$"; public static final String getMixin_AttributeMethodPrefix = "getMixin$"; public static final String getVOFF_AttributeMethodPrefix = "getVOFF$"; public static final String initVars_AttributeMethodPrefix = "initVars$"; public static final String invalidate_AttributeMethodPrefix = "invalidate$"; public static final String getFlags_AttributeMethodPrefix = "getFlags$"; public static final String setFlags_AttributeMethodPrefix = "setFlags$"; public static final String onReplace_AttributeMethodPrefix = "onReplace$"; public static final String set_AttributeMethodPrefix = "set$"; public static final String setMixin_AttributeMethodPrefix = "setMixin$"; public static final String size_AttributeMethodPrefix = "size$"; public static final String getElement_AttributeMethodPrefix = "elem$"; public static final String makeForPart_AttributeMethodPrefix = "makeForPart$"; /** * Field prefix strings for attributes * * Format: *_AttributeFieldNamePrefix */ public static final String value_AttributeFieldPrefix = "$"; public static final String saved_AttributeFieldPrefix = "saved$"; public static final String offset_AttributeFieldPrefix = "VOFF$"; public static final String flags_AttributeFieldPrefix = "VFLG$"; /** * Prefixes and name strings of generated VisageObject fields * * Format: *_VisageObjectFieldNameString */ public static final String count_VisageObjectFieldString = "VCNT$"; public static final String varFlags_VisageObjectFieldPrefix = "VFLGS$"; public static final String varMap_VisageObjectFieldPrefix = "MAP$"; public static final String depCount_VisageObjectFieldString = "DCNT$"; public static final String dep_VisageObjectFieldString = "DEP$"; public static final String funcCount_VisageObjectFieldString = "FCNT$"; public static final String scriptLevelAccess_VisageObjectFieldString = "$script$"; /** * Class suffixes */ public static final String mixinClassSuffix = "$Mixin"; public static final String deprecatedInterfaceSuffix = "$Intf"; public static final String scriptClassSuffix = "$Script"; /** * Class prefixes */ public static final String boundFunctionClassPrefix = "BFunc$"; public static final String boundForPartClassPrefix = "ForPart$"; public static final String localContextClassPrefix = "Local$"; public static final String anonFunctionClassPrefix = "AnonFunc$"; /** * Class name infixes */ public static final String objectLiteralClassInfix = "$ObjLit$"; /** * Package name strings * * Format: <name>_PackageNameString */ public static final String javaLang_PackageString = "java.lang"; public static final String runtime_PackageString = "org.visage.runtime"; public static final String runtimeUtil_PackageString = "org.visage.runtime.util"; public static final String annotation_PackageString = "org.visage.runtime.annotation"; public static final String functions_PackageString = "org.visage.functions"; public static final String sequence_PackageString = "org.visage.runtime.sequence"; public static final String visageLang_PackageString = "visage.lang"; public static final String visageAnimation_PackageString = "visage.animation"; /** * Class name strings * * Format: c<className> */ // in sequence package public static final String cSequences = sequence_PackageString + ".Sequences"; public static final String cSequence = sequence_PackageString + ".Sequence"; public static final String cSequenceRef = sequence_PackageString + ".SequenceRef"; public static final String cSequenceProxy = sequence_PackageString + ".SequenceProxy"; public static final String cArraySequence = sequence_PackageString + ".ArraySequence"; public static final String cBoundForOverSequence = sequence_PackageString + ".BoundForOverSequence"; public static final String cBoundForOverNullableSingleton = sequence_PackageString + ".BoundForOverNullableSingleton"; public static final String cBoundForOverSingleton = sequence_PackageString + ".BoundForOverSingleton"; public static final String cBoundForPartI = sequence_PackageString + ".BoundFor$VisageForPart"; public static final String cObjectArraySequence = sequence_PackageString + ".ObjectArraySequence"; // in runtime package -- public public static final String cBase = runtime_PackageString + ".VisageBase"; public static final String cObject = runtime_PackageString + ".VisageObject"; public static final String cErrorHandler = runtime_PackageString + ".ErrorHandler"; public static final String cMixin = runtime_PackageString + ".VisageMixin"; public static final String cTypeInfo = runtime_PackageString + ".TypeInfo"; public static final String cNonLocalReturnException = runtime_PackageString + ".NonLocalReturnException"; public static final String cNonLocalBreakException = runtime_PackageString + ".NonLocalBreakException"; public static final String cNonLocalContinueException = runtime_PackageString + ".NonLocalContinueException"; // in runtime package private static final String cUtil = runtime_PackageString + ".Util"; private static final String cChecks = runtime_PackageString + ".Checks"; private static final String cConstant = runtime_PackageString + ".VisageConstant"; private static final String cPointer = runtime_PackageString + ".Pointer"; // in runtime.util package private static final String cStringLocalization = runtimeUtil_PackageString + ".StringLocalization"; private static final String cFormatter = runtimeUtil_PackageString + ".VisageFormatter"; // in java.lang package private static final String cMath = javaLang_PackageString + ".Math"; private static final String cString = javaLang_PackageString + ".String"; // in visage.lang package private static final String cDuration = visageLang_PackageString + ".Duration"; private static final String cLength = visageLang_PackageString + ".Length"; private static final String cAngle = visageLang_PackageString + ".Angle"; private static final String cColor = visageLang_PackageString + ".Color"; // in visage.animation package public static final String cKeyValueTargetType = visageAnimation_PackageString + ".KeyValueTarget.Type"; /** * Misc strings */ public static final String internalString = "\u03A7"; // (Chi = X) public static final String boundFunctionDollarSuffix = "$bFunc$"; public static final String boundFunctionResult = "$bFuncRes$"; public static final String boundFunctionObjectParamPrefix = "$bInst$"; public static final String boundFunctionVarNumParamPrefix = "$bVarNum$"; public static final String implFunctionSuffix = "$impl"; public static final String internalRunFunctionString = Entry.entryMethodName(); public static final String varGetMapString = "GETMAP$"; public static final String zero_DurationFieldName = cDuration + ".$ZERO"; public static final String zero_LengthFieldName = cLength + ".$ZERO"; public static final String zero_AngleFieldName = cAngle + ".$ZERO"; public static final String black_ColorFieldName = cColor + ".$BLACK"; public static final String synthForLabelPrefix = "synth_for$"; public static final Pattern DATETIME_FORMAT_PATTERN = Pattern.compile("%[<$0-9]*[tT]"); public static final char typeCharToEscape = '.'; public static final char escapeTypeChar = '_'; // Must match org.visage.runtime.sequence.Sequences.UNDEFINED_MARKER_INT public static final int UNDEFINED_MARKER_INT = -1000; /** * RuntimeMethod */ static class RuntimeMethod { final String classString; final Name methodName; private RuntimeMethod(Name.Table names, String classString, String methodString) { this.classString = classString; this.methodName = names.fromString(methodString); } } /** * RuntimeMethod definitions * * Format: <className>_<methodName> */ final RuntimeMethod TypeInfo_getTypeInfo; final RuntimeMethod Sequences_calculateIntRangeSize; final RuntimeMethod Sequences_calculateFloatRangeSize; final RuntimeMethod Sequences_convertCharToNumberSequence; final RuntimeMethod Sequences_convertNumberSequence; final RuntimeMethod Sequences_convertNumberToCharSequence; final RuntimeMethod Sequences_convertObjectToSequence; final RuntimeMethod Sequences_copy; final RuntimeMethod Sequences_deleteIndexed; final RuntimeMethod Sequences_deleteSlice; final RuntimeMethod Sequences_deleteValue; final RuntimeMethod Sequences_deleteAll; final RuntimeMethod Sequences_forceNonNull; final RuntimeMethod Sequences_fromArray; final RuntimeMethod Sequences_getSingleValue; final RuntimeMethod Sequences_getNewElements; final RuntimeMethod Sequences_incrementSharing; final RuntimeMethod Sequences_insert; final RuntimeMethod Sequences_insertBefore; final RuntimeMethod Sequences_range; final RuntimeMethod Sequences_rangeExclusive; final RuntimeMethod Sequences_replaceSlice; final RuntimeMethod Sequences_reverse; final RuntimeMethod Sequences_set; final RuntimeMethod Sequences_singleton; final RuntimeMethod Sequences_size; final RuntimeMethod Sequences_sizeOfNewElements; final RuntimeMethod Sequences_getAsFromNewElements[]; final RuntimeMethod Sequences_toArray[]; final RuntimeMethod Util_objectTo[]; final RuntimeMethod Checks_equals; final RuntimeMethod Checks_isNull; final RuntimeMethod Math_min; final RuntimeMethod Math_max; final RuntimeMethod ErrorHandler_bindException; final RuntimeMethod VisageBase_switchDependence; final RuntimeMethod VisageBase_removeDependent; final RuntimeMethod VisageBase_addDependent; final RuntimeMethod VisageBase_makeInitMap; final RuntimeMethod VisageConstant_make; final RuntimeMethod Pointer_make; final RuntimeMethod Pointer_switchDependence; final RuntimeMethod Duration_valueOf; final RuntimeMethod Length_valueOf; final RuntimeMethod Angle_valueOf; final RuntimeMethod Color_valueOf; final RuntimeMethod StringLocalization_getLocalizedString; final RuntimeMethod VisageFormatter_sprintf; final RuntimeMethod String_format; /** * Classes as Name */ final Name cObjectName; final Name cMixinName; final Name cJavaLangThreadName; /** * VisageObject method Names */ final Name applyDefaults_VisageObjectMethodName; final Name invoke_VisageObjectMethodName; final Name count_VisageObjectMethodName; final Name get_VisageObjectMethodName; final Name set_VisageObjectMethodName; final Name invalidate_VisageObjectMethodName; final Name getFlags_VisageObjectMethodName; final Name setFlags_VisageObjectMethodName; final Name notifyDependents_VisageObjectMethodName; final Name getElement_VisageObjectMethodName; final Name size_VisageObjectMethodName; final Name update_VisageObjectMethodName; final Name complete_VisageObjectMethodName; final Name initialize_VisageObjectMethodName; final Name userInit_VisageObjectMethodName; final Name postInit_VisageObjectMethodName; final Name initVars_VisageObjectMethodName; final Name restrictSet_VisageObjectMethodName; Name getAs_VisageObjectMethodName[]; /** * Duration method Names */ final Name add_DurationMethodName; final Name sub_DurationMethodName; final Name mul_DurationMethodName; final Name div_DurationMethodName; final Name le_DurationMethodName; final Name lt_DurationMethodName; final Name ge_DurationMethodName; final Name gt_DurationMethodName; final Name toMillis_DurationMethodName; final Name negate_DurationMethodName; /** * Length method Names */ final Name add_LengthMethodName; final Name sub_LengthMethodName; final Name mul_LengthMethodName; final Name div_LengthMethodName; final Name le_LengthMethodName; final Name lt_LengthMethodName; final Name ge_LengthMethodName; final Name gt_LengthMethodName; final Name negate_LengthMethodName; /** * Angle method Names */ final Name add_AngleMethodName; final Name sub_AngleMethodName; final Name mul_AngleMethodName; final Name div_AngleMethodName; final Name le_AngleMethodName; final Name lt_AngleMethodName; final Name ge_AngleMethodName; final Name gt_AngleMethodName; final Name negate_AngleMethodName; /** * Color method Names */ final Name add_ColorMethodName; final Name sub_ColorMethodName; final Name mul_ColorMethodName; final Name div_ColorMethodName; final Name le_ColorMethodName; final Name lt_ColorMethodName; final Name ge_ColorMethodName; final Name gt_ColorMethodName; final Name negate_ColorMethodName; /** * Sequence method Names */ final Name get_SequenceMethodName; final Name getSlice_SequenceMethodName; final Name size_SequenceMethodName; final Name toArray_SequenceMethodName; final Name incrementSharing_SequenceMethodName; final Name replaceParts_BoundForMethodName; /** * Interpolate method Names */ final Name interpolate_InterpolateMethodName; final Name value_InterpolateMethodName; final Name target_InterpolateMethodName; /** * Misc method Names */ final Name get_PointerMethodName; final Name make_PointerMethodName; final Name getVarNum_PointerMethodName; final Name getVisageObject_PointerMethodName; final Name size_PointerMethodName; final Name values_KeyFrameMethodName; final Name time_KeyFrameMethodName; final Name getIndex_BoundForPartMethodName; final Name adjustIndex_BoundForPartMethodName; final Name setInductionVar_BoundForPartMethodName; final Name lambda_MethodName; final Name isInitialized_MethodName; final Name isReadOnly_MethodName; final Name start_ThreadMethodName; final Name outerAccessor_MethodName; final Name main_MethodName; final Name[] typedGet_SequenceMethodName; final Name[] typedSet_SequenceMethodName; /** * Method prefixes for attributes as Names * mostly for Name comparison */ final Name applyDefaults_AttributeMethodPrefixName; final Name getMixin_AttributeMethodPrefixName; final Name getVOFF_AttributeMethodPrefixName; final Name initVarsAttributeMethodPrefixName; final Name onReplaceAttributeMethodPrefixName; final Name setMixin_AttributeMethodPrefixName; /** * Field Names */ final Name count_VisageObjectFieldName; final Name depCount_VisageObjectFieldName; final Name funcCount_VisageObjectFieldName; final Name outerAccessor_VisageObjectFieldName; final Name scriptLevelAccess_VisageObjectFieldName; final Name value_NonLocalReturnExceptionFieldName; final Name length_ArrayFieldName; final Name defaultingTypeInfo_FieldName; final Name emptySequence_FieldName; final Name partResultVarNum_BoundForHelper; // fields of the enum visage.animation.KeyValueTarget.Type final Name BYTE_KeyValueTargetTypeFieldName; final Name SHORT_KeyValueTargetTypeFieldName; final Name INTEGER_KeyValueTargetTypeFieldName; final Name LONG_KeyValueTargetTypeFieldName; final Name FLOAT_KeyValueTargetTypeFieldName; final Name DOUBLE_KeyValueTargetTypeFieldName; final Name BOOLEAN_KeyValueTargetTypeFieldName; final Name SEQUENCE_KeyValueTargetTypeFieldName; final Name OBJECT_KeyValueTargetTypeFieldName; /** * Argument Names */ final Name startPos_ArgName; final Name endPos_ArgName; final Name newLength_ArgName; final Name phase_ArgName; final Name varNewValue_ArgName; final Name oldValue_ArgName; final Name newValue_ArgName; final Name pos_ArgName; final Name varNum_ArgName; final Name depNum_ArgName; final Name clearBits_ArgName; final Name setBits_ArgName; final Name updateInstance_ArgName; final Name obj_ArgName; final Name value_ArgName; final Name number_ArgName; final Name arg1_ArgName; final Name arg2_ArgName; final Name args_ArgName; /** * Method prefixes for attributes as Name * * Format: *_AttributeMethodPrefixName */ final Name get_AttributeMethodPrefixName; final Name set_AttributeMethodPrefixName; final Name seq_AttributeMethodPrefixName; /** * Field prefixes for attributes as Name * * Format: *_AttributeFieldPrefixName */ final Name offset_AttributeFieldPrefixName; final Name flags_AttributeFieldPrefixName; /** * Names of flags in VisageObject */ final Name varFlagActionTest; final Name varFlagActionChange; final Name varFlagRESTING_STATE_BIT; final Name varFlagBE_STATE_BIT; final Name varFlagINVALID_STATE_BIT; final Name varFlagDEFAULT_STATE_BIT; final Name varFlagINITIALIZED_STATE_BIT; final Name varFlagIS_EAGER; final Name varFlagSEQUENCE_LIVE; final Name varFlagIS_BOUND; final Name varFlagIS_READONLY; final Name varFlagFORWARD_ACCESS; final Name varFlagSTATE_MASK; final Name varFlagSTATE_VALID; final Name varFlagSTATE_CASCADE_INVALID; final Name varFlagSTATE_BE_INVALID; final Name varFlagSTATE_TRIGGERED; final Name varFlagINIT_MASK; final Name varFlagINIT_WITH_AWAIT_MASK; final Name varFlagINIT_PENDING; final Name varFlagINIT_AWAIT_VARINIT; final Name varFlagINIT_READY; final Name varFlagINIT_INITIALIZED; final Name varFlagINIT_INITIALIZED_DEFAULT; final Name varFlagINIT_BOUND_MASK; final Name varFlagINIT_STATE_MASK; final Name varFlagIS_BOUND_READONLY; final Name varFlagIS_BOUND_INVALID; final Name varFlagVALID_DEFAULT_APPLIED; final Name varFlagINIT_INITIALIZED_DEFAULT_READONLY; final Name varFlagINIT_OBJ_LIT; final Name varFlagINIT_OBJ_LIT_SEQUENCE; final Name varFlagALL_FLAGS; /** * Names of phase transitions */ final Name phaseTransitionBE_INVALIDATE; final Name phaseTransitionBE_TRIGGER; final Name phaseTransitionCASCADE_INVALIDATE; final Name phaseTransitionCASCADE_TRIGGER; final Name phaseTransitionCLEAR_BE; final Name phaseTransitionNEXT_STATE_SHIFT; final Name phaseTransitionPHASE; final Name phaseINVALIDATE; final Name phaseTRIGGER; /** * Packages as Name */ public final Name runtime_PackageName; public final Name annotation_PackageName; public final Name sequence_PackageName; public final Name functions_PackageName; public final Name javaLang_PackageName; public final Name boundFunctionResultName; /** * Misc Names */ public final Name scriptClassSuffixName; final Name mixinClassSuffixName; final Name lengthSuffixName; final Name deprecatedInterfaceSuffixName; final Name userRunFunctionName; final Name internalRunFunctionName; final Name receiverName; final Name typeParameterName; final Name varState_LocalVarName; final Name varOldValue_LocalVarName; final Name varFlags_LocalVarName; final Name wasInvalid_LocalVarName; final Name internalSuffixName; final Name internalNameMarker; final Name init_MethodSymbolName; final Name postinit_MethodSymbolName; final Name varOFF$valueName; final Name boundForPartName; static final String[] typePrefixes = new String[]{"Object", "Boolean", "Char", "Byte", "Short", "Int", "Long", "Float", "Double", "Sequence"}; static final String[] accessorSuffixes = new String[]{"", "AsBoolean", "AsChar", "AsByte", "AsShort", "AsInt", "AsLong", "AsFloat", "AsDouble", "AsSequence"}; /** * Accessor prefixes. */ public final Name[] accessorPrefixes; /** * Context set-up */ public static final Context.Key<VisageDefs> visageDefsKey = new Context.Key<VisageDefs>(); public static VisageDefs instance(Context context) { VisageDefs instance = context.get(visageDefsKey); if (instance == null) { instance = new VisageDefs(context); } return instance; } protected VisageDefs(Context context) { context.put(visageDefsKey, this); final Name.Table names = Name.Table.instance(context); // Initialize Duration method names add_DurationMethodName = names.fromString("add"); sub_DurationMethodName = names.fromString("sub"); mul_DurationMethodName = names.fromString("mul"); div_DurationMethodName = names.fromString("div"); le_DurationMethodName = names.fromString("le"); lt_DurationMethodName = names.fromString("lt"); ge_DurationMethodName = names.fromString("ge"); gt_DurationMethodName = names.fromString("gt"); toMillis_DurationMethodName = names.fromString("toMillis"); negate_DurationMethodName = names.fromString("negate"); // Initialize Length method names add_LengthMethodName = names.fromString("add"); sub_LengthMethodName = names.fromString("sub"); mul_LengthMethodName = names.fromString("mul"); div_LengthMethodName = names.fromString("div"); le_LengthMethodName = names.fromString("le"); lt_LengthMethodName = names.fromString("lt"); ge_LengthMethodName = names.fromString("ge"); gt_LengthMethodName = names.fromString("gt"); negate_LengthMethodName = names.fromString("negate"); // Initialize Angle method names add_AngleMethodName = names.fromString("add"); sub_AngleMethodName = names.fromString("sub"); mul_AngleMethodName = names.fromString("mul"); div_AngleMethodName = names.fromString("div"); le_AngleMethodName = names.fromString("le"); lt_AngleMethodName = names.fromString("lt"); ge_AngleMethodName = names.fromString("ge"); gt_AngleMethodName = names.fromString("gt"); negate_AngleMethodName = names.fromString("negate"); // Initialize Color method names add_ColorMethodName = names.fromString("add"); sub_ColorMethodName = names.fromString("sub"); mul_ColorMethodName = names.fromString("mul"); div_ColorMethodName = names.fromString("div"); le_ColorMethodName = names.fromString("le"); lt_ColorMethodName = names.fromString("lt"); ge_ColorMethodName = names.fromString("ge"); gt_ColorMethodName = names.fromString("gt"); negate_ColorMethodName = names.fromString("negate"); cObjectName = names.fromString(cObject); cMixinName = names.fromString(cMixin); mixinClassSuffixName = names.fromString(mixinClassSuffix); lengthSuffixName = names.fromString("$length"); deprecatedInterfaceSuffixName = names.fromString(deprecatedInterfaceSuffix); userRunFunctionName = names.fromString("run"); internalRunFunctionName = names.fromString(internalRunFunctionString); main_MethodName = names.fromString("main"); receiverName = names.fromString("receiver$"); initialize_VisageObjectMethodName = names.fromString("initialize$"); notifyDependents_VisageObjectMethodName = names.fromString("notifyDependents$"); complete_VisageObjectMethodName = names.fromString("complete$"); outerAccessor_MethodName = names.fromString("accessOuter$"); getIndex_BoundForPartMethodName = names.fromString("getIndex$"); adjustIndex_BoundForPartMethodName = names.fromString("adjustIndex$"); setInductionVar_BoundForPartMethodName = names.fromString("setInductionVar$"); get_PointerMethodName = names.fromString("get"); get_SequenceMethodName = names.fromString("get"); getSlice_SequenceMethodName = names.fromString("getSlice"); size_SequenceMethodName = names.fromString("size"); defaultingTypeInfo_FieldName = names.fromString("$TYPE_INFO"); toArray_SequenceMethodName = names.fromString("toArray"); make_PointerMethodName = names.fromString("make"); getVarNum_PointerMethodName = names.fromString("getVarNum"); getVisageObject_PointerMethodName = names.fromString("getVisageObject"); size_PointerMethodName = size_SequenceMethodName; lambda_MethodName = names.fromString("lambda"); length_ArrayFieldName = names.fromString("length"); emptySequence_FieldName = names.fromString("emptySequence"); partResultVarNum_BoundForHelper = names.fromString("partResultVarNum"); isInitialized_MethodName = names.fromString("isInitialized"); isReadOnly_MethodName = names.fromString("isReadOnly"); offset_AttributeFieldPrefixName = names.fromString(offset_AttributeFieldPrefix); flags_AttributeFieldPrefixName = names.fromString(flags_AttributeFieldPrefix); count_VisageObjectFieldName = names.fromString(count_VisageObjectFieldString); depCount_VisageObjectFieldName = names.fromString(depCount_VisageObjectFieldString); funcCount_VisageObjectFieldName = names.fromString(funcCount_VisageObjectFieldString); typeParameterName = names.fromString("T"); init_MethodSymbolName = names.fromString("$init$def$name"); postinit_MethodSymbolName = names.fromString("$postinit$def$name"); time_KeyFrameMethodName = names.fromString("time"); cJavaLangThreadName = names.fromString("java.lang.Thread"); start_ThreadMethodName = names.fromString("start"); values_KeyFrameMethodName = names.fromString("values"); target_InterpolateMethodName = names.fromString("target"); value_InterpolateMethodName = names.fromString("value"); interpolate_InterpolateMethodName = names.fromString("interpolate"); userInit_VisageObjectMethodName = names.fromString("userInit$"); postInit_VisageObjectMethodName = names.fromString("postInit$"); incrementSharing_SequenceMethodName = names.fromString("incrementSharing"); oldValue_ArgName = names.fromString("oldValue$"); newValue_ArgName = names.fromString("newValue$"); startPos_ArgName = names.fromString("startPos$"); endPos_ArgName = names.fromString("endPos$"); newLength_ArgName = names.fromString("newLength$"); pos_ArgName = names.fromString("pos$"); phase_ArgName = names.fromString("phase$"); internalSuffixName = names.fromString("$internal$"); internalNameMarker = names.fromString(internalString); boundFunctionResultName = names.fromString(boundFunctionResult); get_AttributeMethodPrefixName = names.fromString(get_AttributeMethodPrefix); get_VisageObjectMethodName = get_AttributeMethodPrefixName; set_AttributeMethodPrefixName = names.fromString(set_AttributeMethodPrefix); set_VisageObjectMethodName = set_AttributeMethodPrefixName; seq_AttributeMethodPrefixName = names.fromString(seq_AttributeMethodPrefix); replaceParts_BoundForMethodName = names.fromString("replaceParts"); invalidate_VisageObjectMethodName = names.fromString(invalidate_AttributeMethodPrefix); getFlags_VisageObjectMethodName = names.fromString(getFlags_AttributeMethodPrefix); setFlags_VisageObjectMethodName = names.fromString(setFlags_AttributeMethodPrefix); onReplaceAttributeMethodPrefixName = names.fromString(onReplace_AttributeMethodPrefix); getMixin_AttributeMethodPrefixName = names.fromString(getMixin_AttributeMethodPrefix); getVOFF_AttributeMethodPrefixName = names.fromString(getVOFF_AttributeMethodPrefix); setMixin_AttributeMethodPrefixName = names.fromString(setMixin_AttributeMethodPrefix); initVarsAttributeMethodPrefixName = names.fromString(initVars_AttributeMethodPrefix); initVars_VisageObjectMethodName = initVarsAttributeMethodPrefixName; applyDefaults_VisageObjectMethodName = names.fromString(applyDefaults_AttributeMethodPrefix); invoke_VisageObjectMethodName = names.fromString("invoke$"); applyDefaults_AttributeMethodPrefixName = names.fromString(applyDefaults_AttributeMethodPrefix); update_VisageObjectMethodName = names.fromString("update$"); getElement_VisageObjectMethodName = names.fromString(getElement_AttributeMethodPrefix); size_VisageObjectMethodName = names.fromString(size_AttributeMethodPrefix); count_VisageObjectMethodName = names.fromString("count$"); restrictSet_VisageObjectMethodName = names.fromString("restrictSet$"); varState_LocalVarName = names.fromString("varState$"); varOldValue_LocalVarName = names.fromString("varOldValue$"); varFlags_LocalVarName = names.fromString("varFlags$"); wasInvalid_LocalVarName = names.fromString("wasInvalid$"); varNewValue_ArgName = names.fromString("varNewValue$"); value_NonLocalReturnExceptionFieldName = names.fromString("value"); outerAccessor_VisageObjectFieldName = names.fromString("accessOuterField$"); updateInstance_ArgName = names.fromString("instance$"); obj_ArgName = names.fromString("object$"); value_ArgName = names.fromString("value$"); number_ArgName = names.fromString("number$"); arg1_ArgName = names.fromString("arg1$"); arg2_ArgName = names.fromString("arg2$"); args_ArgName = names.fromString("args$"); varNum_ArgName = names.fromString("varNum$"); depNum_ArgName = names.fromString("depNum$"); clearBits_ArgName = names.fromString("clearBits$"); setBits_ArgName = names.fromString("setBits$"); scriptClassSuffixName = names.fromString(scriptClassSuffix); scriptLevelAccess_VisageObjectFieldName = names.fromString(scriptLevelAccess_VisageObjectFieldString); // KeyValueTarget.Type field names BYTE_KeyValueTargetTypeFieldName = names.fromString("BYTE"); SHORT_KeyValueTargetTypeFieldName = names.fromString("SHORT"); INTEGER_KeyValueTargetTypeFieldName = names.fromString("INTEGER"); LONG_KeyValueTargetTypeFieldName = names.fromString("LONG"); FLOAT_KeyValueTargetTypeFieldName = names.fromString("FLOAT"); DOUBLE_KeyValueTargetTypeFieldName = names.fromString("DOUBLE"); BOOLEAN_KeyValueTargetTypeFieldName = names.fromString("BOOLEAN"); SEQUENCE_KeyValueTargetTypeFieldName = names.fromString("SEQUENCE"); OBJECT_KeyValueTargetTypeFieldName = names.fromString("OBJECT"); varFlagActionTest = names.fromString("varTestBits$"); varFlagActionChange = names.fromString("varChangeBits$"); // Initialize VFLG Names varFlagRESTING_STATE_BIT = names.fromString("VFLGS$RESTING_STATE_BIT"); varFlagBE_STATE_BIT = names.fromString("VFLGS$BE_STATE_BIT"); varFlagINVALID_STATE_BIT = names.fromString("VFLGS$INVALID_STATE_BIT"); varFlagDEFAULT_STATE_BIT = names.fromString("VFLGS$DEFAULT_STATE_BIT"); varFlagINITIALIZED_STATE_BIT = names.fromString("VFLGS$INITIALIZED_STATE_BIT"); varFlagIS_EAGER = names.fromString("VFLGS$IS_EAGER"); varFlagSEQUENCE_LIVE = names.fromString("VFLGS$SEQUENCE_LIVE"); varFlagIS_BOUND = names.fromString("VFLGS$IS_BOUND"); varFlagIS_READONLY = names.fromString("VFLGS$IS_READONLY"); varFlagFORWARD_ACCESS = names.fromString("VFLGS$FORWARD_ACCESS"); varFlagSTATE_MASK = names.fromString("VFLGS$STATE_MASK"); varFlagSTATE_VALID = names.fromString("VFLGS$STATE$VALID"); varFlagSTATE_CASCADE_INVALID = names.fromString("VFLGS$STATE$CASCADE_INVALID"); varFlagSTATE_BE_INVALID = names.fromString("VFLGS$STATE$BE_INVALID"); varFlagSTATE_TRIGGERED = names.fromString("VFLGS$STATE$TRIGGERED"); varFlagINIT_MASK = names.fromString("VFLGS$INIT$MASK"); varFlagINIT_WITH_AWAIT_MASK = names.fromString("VFLGS$INIT_WITH_AWAIT$MASK"); varFlagINIT_PENDING = names.fromString("VFLGS$INIT$PENDING"); varFlagINIT_AWAIT_VARINIT = names.fromString("VFLGS$INIT$AWAIT_VARINIT"); varFlagINIT_READY = names.fromString("VFLGS$INIT$READY"); varFlagINIT_INITIALIZED = names.fromString("VFLGS$INIT$INITIALIZED"); varFlagINIT_INITIALIZED_DEFAULT = names.fromString("VFLGS$INIT$INITIALIZED_DEFAULT"); varFlagINIT_BOUND_MASK = names.fromString("VFLGS$INIT$BOUND_MASK"); varFlagINIT_STATE_MASK = names.fromString("VFLGS$INIT$STATE$MASK"); varFlagIS_BOUND_READONLY = names.fromString("VFLGS$IS_BOUND_READONLY"); varFlagIS_BOUND_INVALID = names.fromString("VFLGS$IS_BOUND_INVALID"); varFlagVALID_DEFAULT_APPLIED = names.fromString("VFLGS$VALID_DEFAULT_APPLIED"); varFlagINIT_INITIALIZED_DEFAULT_READONLY = names.fromString("VFLGS$INIT$INITIALIZED_DEFAULT_READONLY"); varFlagINIT_OBJ_LIT = names.fromString("VFLGS$INIT_OBJ_LIT"); varFlagINIT_OBJ_LIT_SEQUENCE = names.fromString("VFLGS$INIT_OBJ_LIT_SEQUENCE"); varFlagALL_FLAGS = names.fromString("VFLGS$ALL_FLAGS"); phaseTransitionBE_INVALIDATE = names.fromString("PHASE_TRANS$BE_INVALIDATE"); phaseTransitionBE_TRIGGER = names.fromString("PHASE_TRANS$BE_TRIGGER"); phaseTransitionCASCADE_INVALIDATE = names.fromString("PHASE_TRANS$CASCADE_INVALIDATE"); phaseTransitionCASCADE_TRIGGER = names.fromString("PHASE_TRANS$CASCADE_TRIGGER"); phaseTransitionCLEAR_BE = names.fromString("PHASE_TRANS$CLEAR_BE"); phaseTransitionNEXT_STATE_SHIFT = names.fromString("PHASE_TRANS$NEXT_STATE_SHIFT"); phaseTransitionPHASE = names.fromString("PHASE_TRANS$PHASE"); phaseINVALIDATE = names.fromString("PHASE$INVALIDATE"); phaseTRIGGER = names.fromString("PHASE$TRIGGER"); varOFF$valueName = names.fromString("VOFF$value"); boundForPartName = names.fromString(boundForPartClassPrefix); runtime_PackageName = names.fromString(runtime_PackageString); annotation_PackageName = names.fromString(annotation_PackageString); javaLang_PackageName = names.fromString(javaLang_PackageString); sequence_PackageName = names.fromString(sequence_PackageString); functions_PackageName = names.fromString(functions_PackageString); // Initialize RuntimeMethods TypeInfo_getTypeInfo = new RuntimeMethod(names, cTypeInfo, "getTypeInfo"); Sequences_convertNumberSequence = new RuntimeMethod(names, cSequences, "convertNumberSequence"); Sequences_convertCharToNumberSequence = new RuntimeMethod(names, cSequences, "convertCharToNumberSequence"); Sequences_convertNumberToCharSequence = new RuntimeMethod(names, cSequences, "convertNumberToCharSequence"); Sequences_convertObjectToSequence = new RuntimeMethod(names, cSequences, "convertObjectToSequence"); Sequences_copy = new RuntimeMethod(names, cSequences, "copy"); Sequences_forceNonNull = new RuntimeMethod(names, cSequences, "forceNonNull"); Sequences_fromArray = new RuntimeMethod(names, cSequences, "fromArray"); Sequences_sizeOfNewElements = new RuntimeMethod(names, cSequences, "sizeOfNewElements"); Sequences_getNewElements = new RuntimeMethod(names, cSequences, "getNewElements"); Sequences_getSingleValue = new RuntimeMethod(names, cSequences, "getSingleValue"); Sequences_range = new RuntimeMethod(names, cSequences, "range"); Sequences_rangeExclusive = new RuntimeMethod(names, cSequences, "rangeExclusive"); Sequences_singleton = new RuntimeMethod(names, cSequences, "singleton"); Sequences_size = new RuntimeMethod(names, cSequences, "size"); Sequences_replaceSlice = new RuntimeMethod(names, cSequences, "replaceSlice"); Sequences_reverse = new RuntimeMethod(names, cSequences, "reverse"); Sequences_set = new RuntimeMethod(names, cSequences, "set"); Sequences_incrementSharing = new RuntimeMethod(names, cSequences, "incrementSharing"); Sequences_insert = new RuntimeMethod(names, cSequences, "insert"); Sequences_insertBefore = new RuntimeMethod(names, cSequences, "insertBefore"); Sequences_deleteIndexed = new RuntimeMethod(names, cSequences, "deleteIndexed"); Sequences_deleteSlice = new RuntimeMethod(names, cSequences, "deleteSlice"); Sequences_deleteValue = new RuntimeMethod(names, cSequences, "deleteValue"); Sequences_deleteAll = new RuntimeMethod(names, cSequences, "deleteAll"); Sequences_calculateIntRangeSize = new RuntimeMethod(names, cSequences, "calculateIntRangeSize"); Sequences_calculateFloatRangeSize = new RuntimeMethod(names, cSequences, "calculateFloatRangeSize"); int typeRepCnt = VisageTypeRepresentation.values().length; Sequences_getAsFromNewElements = new RuntimeMethod[typeRepCnt]; Sequences_toArray = new RuntimeMethod[typeRepCnt]; getAs_VisageObjectMethodName = new Name[typeRepCnt]; for (int kind = 0; kind < typeRepCnt; kind++) { Sequences_getAsFromNewElements[kind] = new RuntimeMethod(names, cSequences, "get" + accessorSuffixes[kind] + "FromNewElements"); Sequences_toArray[kind] = new RuntimeMethod(names, cSequences, "to" + typePrefixes[kind] + "Array"); getAs_VisageObjectMethodName[kind] = names.fromString("get" + accessorSuffixes[kind] + "$"); } Util_objectTo = new RuntimeMethod[typeRepCnt]; for (int kind = 0; kind < typeRepCnt; kind++) { Util_objectTo[kind] = new RuntimeMethod(names, cUtil, "objectTo" + typePrefixes[kind]); } Checks_equals = new RuntimeMethod(names, cChecks, "equals"); Checks_isNull = new RuntimeMethod(names, cChecks, "isNull"); Math_min = new RuntimeMethod(names, cMath, "min"); Math_max = new RuntimeMethod(names, cMath, "max"); ErrorHandler_bindException = new RuntimeMethod(names, cErrorHandler, "bindException"); VisageBase_switchDependence = new RuntimeMethod(names, cBase, "switchDependence$"); VisageBase_removeDependent = new RuntimeMethod(names, cBase, "removeDependent$"); VisageBase_addDependent = new RuntimeMethod(names, cBase, "addDependent$"); VisageBase_makeInitMap = new RuntimeMethod(names, cBase, "makeInitMap$"); VisageConstant_make = new RuntimeMethod(names, cConstant, "make"); Pointer_make = new RuntimeMethod(names, cPointer, "make"); Pointer_switchDependence = new RuntimeMethod(names, cPointer, "switchDependence"); Duration_valueOf = new RuntimeMethod(names, cDuration, "valueOf"); Length_valueOf = new RuntimeMethod(names, cLength, "valueOf"); Angle_valueOf = new RuntimeMethod(names, cAngle, "valueOf"); Color_valueOf = new RuntimeMethod(names, cColor, "valueOf"); StringLocalization_getLocalizedString = new RuntimeMethod(names, cStringLocalization, "getLocalizedString"); VisageFormatter_sprintf = new RuntimeMethod(names, cFormatter, "sprintf"); String_format = new RuntimeMethod(names, cString, "format"); accessorPrefixes = new Name[] { get_AttributeMethodPrefixName, set_AttributeMethodPrefixName, seq_AttributeMethodPrefixName, invalidate_VisageObjectMethodName, getFlags_VisageObjectMethodName, setFlags_VisageObjectMethodName, onReplaceAttributeMethodPrefixName, getElement_VisageObjectMethodName, size_VisageObjectMethodName, count_VisageObjectFieldName, depCount_VisageObjectFieldName, funcCount_VisageObjectFieldName }; // Initialize per Kind names and types typedGet_SequenceMethodName = new Name[typeRepCnt]; typedSet_SequenceMethodName = new Name[typeRepCnt]; for (int kind = 0; kind < typeRepCnt; kind++) { typedGet_SequenceMethodName[kind] = names.fromString("get" + accessorSuffixes[kind]); typedSet_SequenceMethodName[kind] = names.fromString("set" + accessorSuffixes[kind]); } } public static String getTypePrefix(int index) { return typePrefixes[index]; } public Name scriptLevelAccessField(Name.Table names, Symbol clazz) { return names.fromString(scriptLevelAccess_VisageObjectFieldString + mangleClassName(clazz, true) + "$"); } public String mangleClassName(Symbol clazz, boolean useFull) { if (useFull) { return clazz.getQualifiedName().toString().replace('.', '$'); } else { return clazz.name.toString(); } } // Name prefixes used for synthetic variable names. public String itemNamePrefix() { return "item"; } public String valueNamePrefix() { return "value"; } public String ignoreNamePrefix() { return "ignore"; } public String saveNamePrefix() { return "save"; } public String sizeNamePrefix() { return "size"; } public String lengthNamePrefix() { return "length"; } public String lowNamePrefix() { return "lowestInvalid"; } public String highNamePrefix() { return "highestInvalid"; } public String pendingNamePrefix() { return "pending"; } public String deltaNamePrefix() { return "delta"; } public String cngStartNamePrefix() { return "changeStart"; } public String cngEndNamePrefix() { return "changeEnd"; } public String lowerNamePrefix() { return "lower"; } public String upperNamePrefix() { return "upper"; } public String stepNamePrefix() { return "step"; } public String functionResultNamePrefix() { return "functionResult"; } public String helperDollarNamePrefix() { return "helper$"; } public String condNamePrefix() { return "cond"; } public String thenNamePrefix() { return "then"; } public String elseNamePrefix() { return "else"; } public String doitDollarNamePrefix() { return "doit$$"; } public String resDollarNamePrefix() { return "res$"; } public String exceptionDollarNamePrefix() { return "expt$"; } public String dollarIndexNamePrefix() { return "$index$"; } public String resultDollarNamePrefix() { return "$result$"; } public String posNamePrefix() { return "pos"; } public String indexNamePrefix() { return "index"; } public String exprNamePrefix() { return "expr"; } public String oldValueNamePrefix() { return "oldValue"; } public String resNamePrefix() { return "res"; } }