Coverage Report - com.sun.tools.javafx.comp.JavafxDefs
 
Classes in this File Line Coverage Branch Coverage Complexity
JavafxDefs
99%
73/74
100%
14/14
0
 
 1  
 /*
 2  
  * Copyright 2007 Sun Microsystems, Inc.  All Rights Reserved.
 3  
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
 4  
  *
 5  
  * This code is free software; you can redistribute it and/or modify it
 6  
  * under the terms of the GNU General Public License version 2 only, as
 7  
  * published by the Free Software Foundation.  Sun designates this
 8  
  * particular file as subject to the "Classpath" exception as provided
 9  
  * by Sun in the LICENSE file that accompanied this code.
 10  
  *
 11  
  * This code is distributed in the hope that it will be useful, but WITHOUT
 12  
  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
 13  
  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
 14  
  * version 2 for more details (a copy is included in the LICENSE file that
 15  
  * accompanied this code).
 16  
  *
 17  
  * You should have received a copy of the GNU General Public License version
 18  
  * 2 along with this work; if not, write to the Free Software Foundation,
 19  
  * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
 20  
  *
 21  
  * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
 22  
  * CA 95054 USA or visit www.sun.com if you need additional information or
 23  
  * have any questions.
 24  
  */
 25  
 
 26  
 package com.sun.tools.javafx.comp;
 27  
 
 28  
 import com.sun.javafx.runtime.Entry;
 29  
 import com.sun.tools.javac.code.Type;
 30  
 import com.sun.tools.javac.util.Context;
 31  
 import com.sun.tools.javac.util.Name;
 32  
 import com.sun.tools.javafx.code.JavafxSymtab;
 33  
 import com.sun.tools.javafx.code.JavafxVarSymbol;
 34  
 import static com.sun.tools.javafx.code.JavafxVarSymbol.*;
 35  
 
 36  
 /**
 37  
  * Shared definitions
 38  
  *
 39  
  * @author Robert Field
 40  
  */
 41  
 public class JavafxDefs {
 42  
 
 43  
     /**
 44  
      * static string definitions
 45  
      */
 46  
     public static final String boundFunctionDollarSuffix = "$$bound$";
 47  
     public static final String implFunctionSuffix = "$impl";
 48  
     public static final String attributeGetMethodNamePrefix = "get$";
 49  
     public static final String attributeApplyDefaultsMethodNamePrefix = "applyDefaults$";
 50  
     public static final String interfaceSuffix = "$Intf";
 51  
     public static final String equalsMethodString = "com.sun.javafx.runtime.Checks.equals";
 52  
     public static final String isNullMethodString = "com.sun.javafx.runtime.Checks.isNull";
 53  
     public static final String startMethodString = "com.sun.javafx.runtime.Entry.start";
 54  
     
 55  
     public static final String fxObjectString = "com.sun.javafx.runtime.FXObject";
 56  12
     public static final String runMethodString = Entry.entryMethodName();
 57  
     public static final String receiverNameString = "receiver$";
 58  
     public static final String initializeNameString ="initialize$";
 59  
     public static final String getMethodNameString = "get";
 60  
     public static final String setMethodNameString ="set";
 61  
     public static final String sizeMethodNameString ="size";
 62  
     public static final String addStaticDependentNameString = "addStaticDependent";
 63  
     public static final String addDynamicDependentNameString = "addDynamicDependent";
 64  
     public static final String clearDynamicDependenciesNameString = "clearDynamicDependencies";
 65  
     public static final String trySetFromLiteralMethodNameString = "needDefault";
 66  
     public static final String makeAttributeMethodNameString = "makeAttribute";
 67  
     public static final String makeMethodNameString = "make";
 68  
     public static final String makeBijectiveMethodNameString = "makeBijective";
 69  
     public static final String invokeNameString = "invoke";
 70  
     public static final String lambdaNameString = "lambda";
 71  
     
 72  
     public static final String javaLangPackageNameString = "java.lang";
 73  
     public static final String runtimePackageNameString = "com.sun.javafx.runtime";
 74  
     public static final String locationPackageNameString = "com.sun.javafx.runtime.location";
 75  
     public static final String sequencePackageNameString = "com.sun.javafx.runtime.sequence";
 76  
     public static final String functionsPackageNameString = "com.sun.javafx.functions";
 77  
 
 78  12
     static final String[] milieuNames = { "", "FromLiteral" };
 79  0
     public static String getMilieuName(int index) { return milieuNames[index]; }
 80  
     
 81  
     static final int VANILLA_MILIEU = 0;
 82  
     static final int FROM_DEFAULT_MILIEU = 0;  // for now, same as vanilla
 83  
     static final int FROM_LITERAL_MILIEU = 1;
 84  
     static final int MILIEU_COUNT = 2;
 85  
     
 86  399
     public char typeCharToEscape = '.';
 87  399
     public char escapeTypeChar = '_';
 88  
     
 89  
     /**
 90  
      * Name definitions
 91  
      */
 92  
     public final Name fxObjectName;
 93  
     public final Name interfaceSuffixName;
 94  
     final Name runMethodName;
 95  
     final Name receiverName;
 96  
     final Name initializeName;
 97  
     final Name getMethodName;
 98  
     final Name getSliceMethodName;
 99  
     final Name replaceSliceMethodName;
 100  
     final Name setMethodName;
 101  
     final Name sizeMethodName;
 102  
     final Name addStaticDependentName;
 103  
     final Name addDynamicDependentName;
 104  
     final Name clearDynamicDependenciesName;
 105  
     final Name needDefaultsMethodName;
 106  
     final Name makeAttributeMethodName;
 107  
     final Name makeMethodName;
 108  
     final Name makeBijectiveMethodName;
 109  
     final Name invokeName;
 110  
     final Name lambdaName;
 111  
     final Name computeValueName;
 112  
     final Name computeElementName;
 113  
     final Name initDefName;
 114  
     final Name postInitDefName;
 115  
     final Name valueName;
 116  
     final Name targetName;
 117  
     final Name interpolateName;
 118  
     final Name[] locationGetMethodName;
 119  
     final Name[] locationSetMethodName;
 120  
     final Name[][] locationSetMilieuMethodName;
 121  
     final Name[] locationBindMilieuMethodName;
 122  
     final Name[] locationBijectiveBindMilieuMethodName;
 123  
     
 124  
         public final Name runtimePackageName;
 125  
         public final Name locationPackageName;
 126  
         public final Name sequencePackageName;
 127  
         public final Name functionsPackageName;
 128  
         public final Name javaLangPackageName;
 129  
     public final Name[] locationVariableName;
 130  
     public final Name[] locationInterfaceName;
 131  
     
 132  
     public Type delocationize(Name flatname) {
 133  411155
         for (int kind = 0; kind < TYPE_KIND_COUNT; ++kind) {
 134  347334
             if (flatname == locationVariableName[kind] || flatname == locationInterfaceName[kind]) {
 135  18249
                 return realTypeByKind[kind];
 136  
             }
 137  
         }
 138  63821
         return null;
 139  
     }
 140  
 
 141  
     /**
 142  
      * Context set-up
 143  
      */
 144  12
     protected static final Context.Key<JavafxDefs> jfxDefsKey = new Context.Key<JavafxDefs>();
 145  
 
 146  
     private final Type[] realTypeByKind;
 147  
 
 148  
     public static JavafxDefs instance(Context context) {
 149  3192
         JavafxDefs instance = context.get(jfxDefsKey);
 150  3192
         if (instance == null) {
 151  399
             instance = new JavafxDefs(context);
 152  
         }
 153  3192
         return instance;
 154  
     }
 155  
 
 156  399
     protected JavafxDefs(Context context) {
 157  399
         context.put(jfxDefsKey, this);
 158  399
         final Name.Table names = Name.Table.instance(context);
 159  399
         final JavafxSymtab syms = (JavafxSymtab)(JavafxSymtab.instance(context));
 160  
 
 161  399
         fxObjectName = names.fromString(fxObjectString);
 162  399
         interfaceSuffixName = names.fromString(interfaceSuffix);
 163  399
         runMethodName = names.fromString(runMethodString);
 164  399
         receiverName = names.fromString(receiverNameString);
 165  399
         initializeName = names.fromString(initializeNameString);
 166  399
         getMethodName = Name.fromString(names, getMethodNameString);
 167  399
         getSliceMethodName = names.fromString("getSlice");
 168  399
         replaceSliceMethodName = names.fromString("replaceSlice");
 169  399
         setMethodName = Name.fromString(names, setMethodNameString);
 170  399
         sizeMethodName = Name.fromString(names, sizeMethodNameString);
 171  399
         addStaticDependentName = names.fromString(addStaticDependentNameString);
 172  399
         addDynamicDependentName = names.fromString(addDynamicDependentNameString);
 173  399
         clearDynamicDependenciesName = names.fromString(clearDynamicDependenciesNameString);
 174  399
         needDefaultsMethodName = names.fromString(trySetFromLiteralMethodNameString);
 175  399
         makeAttributeMethodName = Name.fromString(names, makeAttributeMethodNameString);
 176  399
         makeMethodName = Name.fromString(names, makeMethodNameString);
 177  399
         makeBijectiveMethodName = Name.fromString(names, makeBijectiveMethodNameString);
 178  399
         invokeName = names.fromString(invokeNameString);
 179  399
         lambdaName = names.fromString(lambdaNameString);
 180  399
         computeValueName = names.fromString("computeValue");
 181  399
         computeElementName = names.fromString("computeElement$");
 182  399
         initDefName = names.fromString("$init$def$name");
 183  399
         postInitDefName = names.fromString("$postinit$def$name");
 184  399
         targetName = names.fromString("target");
 185  399
         valueName = names.fromString("value");
 186  399
         interpolateName = names.fromString("interpolate");
 187  399
                 runtimePackageName = names.fromString(runtimePackageNameString);
 188  399
                 javaLangPackageName = names.fromString(javaLangPackageNameString);
 189  399
                 locationPackageName = names.fromString(locationPackageNameString);
 190  399
                 sequencePackageName = names.fromString(sequencePackageNameString);
 191  399
                 functionsPackageName = names.fromString(functionsPackageNameString);
 192  399
         locationGetMethodName = new Name[TYPE_KIND_COUNT];
 193  399
         locationSetMethodName = new Name[TYPE_KIND_COUNT];
 194  399
         locationSetMilieuMethodName = new Name[TYPE_KIND_COUNT][MILIEU_COUNT];
 195  399
         locationVariableName = new Name[TYPE_KIND_COUNT];
 196  399
         locationInterfaceName = new Name[TYPE_KIND_COUNT];
 197  2394
         for (int kind = 0; kind < TYPE_KIND_COUNT; kind++) {
 198  5985
             for (int m = 0; m < MILIEU_COUNT; ++m) {
 199  3990
                 locationSetMilieuMethodName[kind][m] = names.fromString("set" + JavafxVarSymbol.getAccessorSuffix(kind) + milieuNames[m]);
 200  
             }
 201  1995
             locationGetMethodName[kind] = names.fromString("get" + JavafxVarSymbol.getAccessorSuffix(kind));
 202  1995
             locationSetMethodName[kind] = locationSetMilieuMethodName[kind][VANILLA_MILIEU];
 203  
             
 204  1995
             String typePrefix = locationPackageNameString + "." + JavafxVarSymbol.getTypePrefix(kind);
 205  1995
             locationVariableName[kind] = names.fromString(typePrefix + "Variable");
 206  1995
             locationInterfaceName[kind] = names.fromString(typePrefix + "Location");
 207  
         }
 208  399
         locationBindMilieuMethodName = new Name[MILIEU_COUNT];
 209  399
         locationBijectiveBindMilieuMethodName = new Name[MILIEU_COUNT];
 210  1197
         for (int m = 0; m < MILIEU_COUNT; ++m) {
 211  798
             locationBindMilieuMethodName[m] = names.fromString("bind" + milieuNames[m]);
 212  798
             locationBijectiveBindMilieuMethodName[m] = names.fromString("bijectiveBind" + milieuNames[m]);
 213  
         }
 214  399
         realTypeByKind = new Type[TYPE_KIND_COUNT];
 215  399
         realTypeByKind[TYPE_KIND_OBJECT] = syms.objectType;
 216  399
         realTypeByKind[TYPE_KIND_DOUBLE] = syms.doubleType;
 217  399
         realTypeByKind[TYPE_KIND_BOOLEAN] = syms.booleanType;
 218  399
         realTypeByKind[TYPE_KIND_INT] = syms.intType;
 219  399
         realTypeByKind[TYPE_KIND_SEQUENCE] = syms.javafx_SequenceType;
 220  
 
 221  399
     }
 222  
 }