comparison graal/com.oracle.truffle.codegen.processor/src/com/oracle/truffle/codegen/processor/template/ParameterSpec.java @ 7794:b891ec348f8a

Made the usage of generic types more flexible for short circuits and generic specializations.
author Christian Humer <christian.humer@gmail.com>
date Fri, 15 Feb 2013 19:32:58 +0100
parents c17ee8823d72
children 6b74ffe38183
comparison
equal deleted inserted replaced
7793:8b48c8ebdff4 7794:b891ec348f8a
36 ONE, MULTIPLE; 36 ONE, MULTIPLE;
37 } 37 }
38 38
39 private final String name; 39 private final String name;
40 private final TypeMirror[] allowedTypes; 40 private final TypeMirror[] allowedTypes;
41 private final TypeMirror valueType;
42 private final boolean optional; 41 private final boolean optional;
43 private final Cardinality cardinality; 42 private final Cardinality cardinality;
44 43
45 public ParameterSpec(String name, TypeMirror[] allowedTypes, TypeMirror valueType, boolean optional, Cardinality cardinality) { 44 public ParameterSpec(String name, TypeMirror[] allowedTypes, boolean optional, Cardinality cardinality) {
46 this.valueType = valueType;
47 this.allowedTypes = allowedTypes; 45 this.allowedTypes = allowedTypes;
48 this.name = name; 46 this.name = name;
49 this.optional = optional; 47 this.optional = optional;
50 this.cardinality = cardinality; 48 this.cardinality = cardinality;
51 } 49 }
52 50
53 /** Type constructor. */ 51 /** Type constructor. */
54 public ParameterSpec(String name, TypeMirror singleFixedType, boolean optional) { 52 public ParameterSpec(String name, TypeMirror singleFixedType, boolean optional) {
55 this(name, new TypeMirror[]{singleFixedType}, singleFixedType, optional, Cardinality.ONE); 53 this(name, new TypeMirror[]{singleFixedType}, optional, Cardinality.ONE);
56 } 54 }
57 55
58 /** Type system value constructor. */ 56 /** Type system value constructor. */
59 public ParameterSpec(String name, TypeSystemData typeSystem, boolean optional, Cardinality cardinality) { 57 public ParameterSpec(String name, TypeSystemData typeSystem, boolean optional, Cardinality cardinality) {
60 this(name, typeSystem.getPrimitiveTypeMirrors(), typeSystem.getGenericType(), optional, cardinality); 58 this(name, typeSystem.getPrimitiveTypeMirrors(), optional, cardinality);
61 } 59 }
62 60
63 /** Node value constructor. */ 61 /** Node value constructor. */
64 public ParameterSpec(String name, NodeData nodeData, boolean optional, Cardinality cardinality) { 62 public ParameterSpec(String name, NodeData nodeData, boolean optional, Cardinality cardinality) {
65 this(name, nodeTypeMirrors(nodeData), nodeData.getTypeSystem().getGenericType(), optional, cardinality); 63 this(name, nodeTypeMirrors(nodeData), optional, cardinality);
66 } 64 }
67 65
68 private static TypeMirror[] nodeTypeMirrors(NodeData nodeData) { 66 private static TypeMirror[] nodeTypeMirrors(NodeData nodeData) {
69 Set<TypeMirror> typeMirrors = new LinkedHashSet<>(); 67 Set<TypeMirror> typeMirrors = new LinkedHashSet<>();
70 68
101 } 99 }
102 } 100 }
103 return false; 101 return false;
104 } 102 }
105 103
106 public TypeMirror getValueType() {
107 return valueType;
108 }
109 } 104 }