Lines Matching defs:SpeciesData

70                 return (BoundMethodHandle) SpeciesData.EMPTY.extendWithType('L').constructor[0].invokeBasic(type, form, x);
72 return (BoundMethodHandle) SpeciesData.EMPTY.extendWithType('I').constructor[0].invokeBasic(type, form, ValueConversions.widenSubword(x));
74 return (BoundMethodHandle) SpeciesData.EMPTY.extendWithType('J').constructor[0].invokeBasic(type, form, (long) x);
76 return (BoundMethodHandle) SpeciesData.EMPTY.extendWithType('F').constructor[0].invokeBasic(type, form, (float) x);
78 return (BoundMethodHandle) SpeciesData.EMPTY.extendWithType('D').constructor[0].invokeBasic(type, form, (double) x);
140 * Return the {@link SpeciesData} instance representing this BMH species. All subclasses must provide a
143 protected abstract SpeciesData speciesData();
213 public SpeciesData speciesData() {
216 public static final SpeciesData SPECIES_DATA = SpeciesData.getForClass("L", Species_L.class);
253 public SpeciesData speciesData() {
256 public static final SpeciesData SPECIES_DATA = SpeciesData.getForClass("LL", Species_LL.class);
292 public SpeciesData speciesData() {
295 public static final SpeciesData SPECIES_DATA = SpeciesData.getForClass("JL", Species_JL.class);
332 static class SpeciesData {
335 // Bootstrapping requires circular relations MH -> BMH -> SpeciesData -> MH
339 final SpeciesData[] extensions;
349 return "SpeciesData["+(isPlaceholder() ? "<placeholder>" : clazz.getSimpleName())+":"+types+"]";
363 static final SpeciesData EMPTY = new SpeciesData("", BoundMethodHandle.class);
365 private SpeciesData(String types, Class<? extends BoundMethodHandle> clazz) {
375 this.extensions = new SpeciesData[EXTENSION_TYPES.length()];
386 private SpeciesData(String types) {
396 private static final HashMap<String, SpeciesData> CACHE = new HashMap<>();
399 SpeciesData extendWithType(char type) {
401 SpeciesData d = extensions[i];
407 SpeciesData extendWithIndex(byte index) {
408 SpeciesData d = extensions[index];
414 private static SpeciesData get(String types) {
416 SpeciesData d = lookupCache(types);
431 static SpeciesData getForClass(String types, Class<? extends BoundMethodHandle> clazz) {
433 return updateCache(types, new SpeciesData(types, clazz));
435 private static synchronized SpeciesData lookupCache(String types) {
436 SpeciesData d = CACHE.get(types);
438 d = new SpeciesData(types);
443 private static synchronized SpeciesData updateCache(String types, SpeciesData d) {
444 SpeciesData d2;
454 SpeciesData d0 = BoundMethodHandle.SPECIES_DATA; // trigger class init
460 SpeciesData d = Factory.speciesDataFromConcreteBMHClass(cbmh);
470 for (SpeciesData d : CACHE.values()) {
479 static SpeciesData getSpeciesData(String types) {
480 return SpeciesData.get(types);
504 static final String SPECIES_DATA = "java/lang/invoke/BoundMethodHandle$SpeciesData";
529 * final SpeciesData speciesData() { return SpeciesData.get("<<types>>"); }
555 * public final SpeciesData speciesData() { return SPECIES_DATA; }
556 * public static final SpeciesData SPECIES_DATA = SpeciesData.getForClass("LLI", Species_LLI.class);
774 static SpeciesData speciesDataFromConcreteBMHClass(Class<? extends BoundMethodHandle> cbmh) {
777 return (SpeciesData) F_SPECIES_DATA.get(null);
856 static final SpeciesData SPECIES_DATA = SpeciesData.EMPTY;