annotate graal/com.oracle.truffle.api.dsl/src/com/oracle/truffle/api/dsl/internal/NodeFactoryBase.java @ 16763:e6d15134ca86

Truffle-DSL: fixed formatting problems.
author Christian Humer <christian.humer@gmail.com>
date Mon, 11 Aug 2014 16:21:54 +0200
parents 4f589fa69b9c
children 90984ae0eaa8
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
16763
e6d15134ca86 Truffle-DSL: fixed formatting problems.
Christian Humer <christian.humer@gmail.com>
parents: 16751
diff changeset
1 package com.oracle.truffle.api.dsl.internal;
e6d15134ca86 Truffle-DSL: fixed formatting problems.
Christian Humer <christian.humer@gmail.com>
parents: 16751
diff changeset
2
e6d15134ca86 Truffle-DSL: fixed formatting problems.
Christian Humer <christian.humer@gmail.com>
parents: 16751
diff changeset
3 import java.util.*;
e6d15134ca86 Truffle-DSL: fixed formatting problems.
Christian Humer <christian.humer@gmail.com>
parents: 16751
diff changeset
4
e6d15134ca86 Truffle-DSL: fixed formatting problems.
Christian Humer <christian.humer@gmail.com>
parents: 16751
diff changeset
5 import com.oracle.truffle.api.dsl.*;
e6d15134ca86 Truffle-DSL: fixed formatting problems.
Christian Humer <christian.humer@gmail.com>
parents: 16751
diff changeset
6 import com.oracle.truffle.api.nodes.*;
e6d15134ca86 Truffle-DSL: fixed formatting problems.
Christian Humer <christian.humer@gmail.com>
parents: 16751
diff changeset
7
e6d15134ca86 Truffle-DSL: fixed formatting problems.
Christian Humer <christian.humer@gmail.com>
parents: 16751
diff changeset
8 /**
e6d15134ca86 Truffle-DSL: fixed formatting problems.
Christian Humer <christian.humer@gmail.com>
parents: 16751
diff changeset
9 * This is NOT public API. Do not use directly. This code may change without notice.
e6d15134ca86 Truffle-DSL: fixed formatting problems.
Christian Humer <christian.humer@gmail.com>
parents: 16751
diff changeset
10 */
e6d15134ca86 Truffle-DSL: fixed formatting problems.
Christian Humer <christian.humer@gmail.com>
parents: 16751
diff changeset
11 public abstract class NodeFactoryBase<T> implements NodeFactory<T> {
e6d15134ca86 Truffle-DSL: fixed formatting problems.
Christian Humer <christian.humer@gmail.com>
parents: 16751
diff changeset
12
e6d15134ca86 Truffle-DSL: fixed formatting problems.
Christian Humer <christian.humer@gmail.com>
parents: 16751
diff changeset
13 private final Class<T> nodeClass;
e6d15134ca86 Truffle-DSL: fixed formatting problems.
Christian Humer <christian.humer@gmail.com>
parents: 16751
diff changeset
14 private final Class<?>[][] nodeSignatures;
e6d15134ca86 Truffle-DSL: fixed formatting problems.
Christian Humer <christian.humer@gmail.com>
parents: 16751
diff changeset
15 private final Class<? extends Node>[] executionSignatures;
e6d15134ca86 Truffle-DSL: fixed formatting problems.
Christian Humer <christian.humer@gmail.com>
parents: 16751
diff changeset
16
e6d15134ca86 Truffle-DSL: fixed formatting problems.
Christian Humer <christian.humer@gmail.com>
parents: 16751
diff changeset
17 @SuppressWarnings("unchecked")
e6d15134ca86 Truffle-DSL: fixed formatting problems.
Christian Humer <christian.humer@gmail.com>
parents: 16751
diff changeset
18 public NodeFactoryBase(Class<T> nodeClass, Class<?>[] executionSignatures, Class<?>[][] nodeSignatures) {
e6d15134ca86 Truffle-DSL: fixed formatting problems.
Christian Humer <christian.humer@gmail.com>
parents: 16751
diff changeset
19 this.nodeClass = nodeClass;
e6d15134ca86 Truffle-DSL: fixed formatting problems.
Christian Humer <christian.humer@gmail.com>
parents: 16751
diff changeset
20 this.nodeSignatures = nodeSignatures;
e6d15134ca86 Truffle-DSL: fixed formatting problems.
Christian Humer <christian.humer@gmail.com>
parents: 16751
diff changeset
21 this.executionSignatures = (Class<? extends Node>[]) executionSignatures;
e6d15134ca86 Truffle-DSL: fixed formatting problems.
Christian Humer <christian.humer@gmail.com>
parents: 16751
diff changeset
22 }
e6d15134ca86 Truffle-DSL: fixed formatting problems.
Christian Humer <christian.humer@gmail.com>
parents: 16751
diff changeset
23
e6d15134ca86 Truffle-DSL: fixed formatting problems.
Christian Humer <christian.humer@gmail.com>
parents: 16751
diff changeset
24 public abstract T createNode(Object... arguments);
e6d15134ca86 Truffle-DSL: fixed formatting problems.
Christian Humer <christian.humer@gmail.com>
parents: 16751
diff changeset
25
e6d15134ca86 Truffle-DSL: fixed formatting problems.
Christian Humer <christian.humer@gmail.com>
parents: 16751
diff changeset
26 public final Class<T> getNodeClass() {
e6d15134ca86 Truffle-DSL: fixed formatting problems.
Christian Humer <christian.humer@gmail.com>
parents: 16751
diff changeset
27 return nodeClass;
e6d15134ca86 Truffle-DSL: fixed formatting problems.
Christian Humer <christian.humer@gmail.com>
parents: 16751
diff changeset
28 }
e6d15134ca86 Truffle-DSL: fixed formatting problems.
Christian Humer <christian.humer@gmail.com>
parents: 16751
diff changeset
29
e6d15134ca86 Truffle-DSL: fixed formatting problems.
Christian Humer <christian.humer@gmail.com>
parents: 16751
diff changeset
30 public final List<List<Class<?>>> getNodeSignatures() {
e6d15134ca86 Truffle-DSL: fixed formatting problems.
Christian Humer <christian.humer@gmail.com>
parents: 16751
diff changeset
31 List<List<Class<?>>> signatures = new ArrayList<>();
e6d15134ca86 Truffle-DSL: fixed formatting problems.
Christian Humer <christian.humer@gmail.com>
parents: 16751
diff changeset
32 for (int i = 0; i < nodeSignatures.length; i++) {
e6d15134ca86 Truffle-DSL: fixed formatting problems.
Christian Humer <christian.humer@gmail.com>
parents: 16751
diff changeset
33 signatures.add(Arrays.asList(nodeSignatures[i]));
e6d15134ca86 Truffle-DSL: fixed formatting problems.
Christian Humer <christian.humer@gmail.com>
parents: 16751
diff changeset
34 }
e6d15134ca86 Truffle-DSL: fixed formatting problems.
Christian Humer <christian.humer@gmail.com>
parents: 16751
diff changeset
35 return signatures;
e6d15134ca86 Truffle-DSL: fixed formatting problems.
Christian Humer <christian.humer@gmail.com>
parents: 16751
diff changeset
36 }
e6d15134ca86 Truffle-DSL: fixed formatting problems.
Christian Humer <christian.humer@gmail.com>
parents: 16751
diff changeset
37
e6d15134ca86 Truffle-DSL: fixed formatting problems.
Christian Humer <christian.humer@gmail.com>
parents: 16751
diff changeset
38 public final List<Class<? extends Node>> getExecutionSignature() {
e6d15134ca86 Truffle-DSL: fixed formatting problems.
Christian Humer <christian.humer@gmail.com>
parents: 16751
diff changeset
39 return Arrays.asList(executionSignatures);
e6d15134ca86 Truffle-DSL: fixed formatting problems.
Christian Humer <christian.humer@gmail.com>
parents: 16751
diff changeset
40 }
e6d15134ca86 Truffle-DSL: fixed formatting problems.
Christian Humer <christian.humer@gmail.com>
parents: 16751
diff changeset
41
e6d15134ca86 Truffle-DSL: fixed formatting problems.
Christian Humer <christian.humer@gmail.com>
parents: 16751
diff changeset
42 }