comparison graal/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/model/TemplateMethod.java @ 19282:ae81dd154fb6

Truffle-DSL: remove old DSL layout; Make new layout the default.
author Christian Humer <christian.humer@gmail.com>
date Thu, 22 Jan 2015 20:44:24 +0100
parents a665483c3881
children 08aa0372dad4
comparison
equal deleted inserted replaced
19281:92880b0f7fed 19282:ae81dd154fb6
155 155
156 public List<Parameter> getParameters() { 156 public List<Parameter> getParameters() {
157 return parameters; 157 return parameters;
158 } 158 }
159 159
160 public List<Parameter> findParameters(ParameterSpec spec) {
161 List<Parameter> foundParameters = new ArrayList<>();
162 for (Parameter param : getReturnTypeAndParameters()) {
163 if (param.getSpecification().getName().equals(spec.getName())) {
164 foundParameters.add(param);
165 }
166 }
167 return foundParameters;
168 }
169
170 public Parameter findParameterOrDie(NodeExecutionData execution) { 160 public Parameter findParameterOrDie(NodeExecutionData execution) {
171 for (Parameter parameter : parameters) { 161 for (Parameter parameter : parameters) {
172 if (parameter.getSpecification().isSignature() && parameter.getSpecification().getExecution() == execution) { 162 if (parameter.getSpecification().isSignature() && parameter.getSpecification().getExecution() == execution) {
173 return parameter; 163 return parameter;
174 } 164 }
196 if (getReturnType() != null) { 186 if (getReturnType() != null) {
197 allParameters.add(getReturnType()); 187 allParameters.add(getReturnType());
198 } 188 }
199 allParameters.addAll(getParameters()); 189 allParameters.addAll(getParameters());
200 return Collections.unmodifiableList(allParameters); 190 return Collections.unmodifiableList(allParameters);
201 }
202
203 public boolean canBeAccessedByInstanceOf(TypeMirror type) {
204 TypeMirror methodType = ElementUtils.findNearestEnclosingType(getMethod()).asType();
205 return ElementUtils.isAssignable(type, methodType) || ElementUtils.isAssignable(methodType, type);
206 } 191 }
207 192
208 public ExecutableElement getMethod() { 193 public ExecutableElement getMethod() {
209 return method; 194 return method;
210 } 195 }
256 } 241 }
257 } 242 }
258 return signature; 243 return signature;
259 } 244 }
260 245
261 public Parameter getSignatureParameter(int searchIndex) {
262 int index = 0;
263 for (Parameter parameter : getParameters()) {
264 if (!parameter.getSpecification().isSignature()) {
265 continue;
266 }
267 if (index == searchIndex) {
268 return parameter;
269 }
270 index++;
271 }
272 return null;
273 }
274
275 public void updateSignature(TypeSignature signature) { 246 public void updateSignature(TypeSignature signature) {
276 // TODO(CH): fails in normal usage - output ok though 247 // TODO(CH): fails in normal usage - output ok though
277 // assert signature.size() >= 1; 248 // assert signature.size() >= 1;
278 249
279 int signatureIndex = 0; 250 int signatureIndex = 0;
307 TypeElement enclosingType1 = ElementUtils.findNearestEnclosingType(getMethod()); 278 TypeElement enclosingType1 = ElementUtils.findNearestEnclosingType(getMethod());
308 TypeElement enclosingType2 = ElementUtils.findNearestEnclosingType(o.getMethod()); 279 TypeElement enclosingType2 = ElementUtils.findNearestEnclosingType(o.getMethod());
309 compare = enclosingType1.getQualifiedName().toString().compareTo(enclosingType2.getQualifiedName().toString()); 280 compare = enclosingType1.getQualifiedName().toString().compareTo(enclosingType2.getQualifiedName().toString());
310 } 281 }
311 return compare; 282 return compare;
312 }
313
314 public List<Parameter> getParametersAfter(Parameter genericParameter) {
315 boolean found = false;
316 List<Parameter> foundParameters = new ArrayList<>();
317 for (Parameter param : getParameters()) {
318 if (param.getLocalName().equals(genericParameter.getLocalName())) {
319 found = true;
320 } else if (found) {
321 foundParameters.add(param);
322 }
323 }
324 return foundParameters;
325 } 283 }
326 284
327 public int compareBySignature(TemplateMethod compareMethod) { 285 public int compareBySignature(TemplateMethod compareMethod) {
328 final TypeSystemData typeSystem = getTemplate().getTypeSystem(); 286 final TypeSystemData typeSystem = getTemplate().getTypeSystem();
329 if (typeSystem != compareMethod.getTemplate().getTypeSystem()) { 287 if (typeSystem != compareMethod.getTemplate().getTypeSystem()) {