Mercurial > hg > truffle
comparison truffle/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/model/Parameter.java @ 21951:9c8c0937da41
Moving all sources into truffle subdirectory
author | Jaroslav Tulach <jaroslav.tulach@oracle.com> |
---|---|
date | Wed, 17 Jun 2015 10:58:08 +0200 |
parents | graal/com.oracle.truffle.dsl.processor/src/com/oracle/truffle/dsl/processor/model/Parameter.java@18c0f02fa4d2 |
children | dc83cc1f94f2 |
comparison
equal
deleted
inserted
replaced
21950:2a5011c7e641 | 21951:9c8c0937da41 |
---|---|
1 /* | |
2 * Copyright (c) 2012, Oracle and/or its affiliates. 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. | |
8 * | |
9 * This code is distributed in the hope that it will be useful, but WITHOUT | |
10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or | |
11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License | |
12 * version 2 for more details (a copy is included in the LICENSE file that | |
13 * accompanied this code). | |
14 * | |
15 * You should have received a copy of the GNU General Public License version | |
16 * 2 along with this work; if not, write to the Free Software Foundation, | |
17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. | |
18 * | |
19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA | |
20 * or visit www.oracle.com if you need additional information or have any | |
21 * questions. | |
22 */ | |
23 package com.oracle.truffle.dsl.processor.model; | |
24 | |
25 import javax.lang.model.element.*; | |
26 import javax.lang.model.type.*; | |
27 | |
28 public final class Parameter { | |
29 | |
30 private final ParameterSpec specification; | |
31 private TemplateMethod method; | |
32 private String localName; | |
33 private final int specificationVarArgsIndex; | |
34 private final int typeVarArgsIndex; | |
35 private final VariableElement variableElement; | |
36 private final TypeMirror type; | |
37 | |
38 public Parameter(ParameterSpec specification, VariableElement variableElement, int specificationVarArgsIndex, int typeVarArgsIndex) { | |
39 this.specification = specification; | |
40 this.variableElement = variableElement; | |
41 this.type = variableElement.asType(); | |
42 this.specificationVarArgsIndex = specificationVarArgsIndex; | |
43 | |
44 String valueName = specification.getName() + "Value"; | |
45 if (specificationVarArgsIndex > -1) { | |
46 valueName += specificationVarArgsIndex; | |
47 } | |
48 this.typeVarArgsIndex = typeVarArgsIndex; | |
49 this.localName = valueName; | |
50 } | |
51 | |
52 public Parameter(Parameter parameter) { | |
53 this.specification = parameter.specification; | |
54 this.specificationVarArgsIndex = parameter.specificationVarArgsIndex; | |
55 this.localName = parameter.localName; | |
56 this.typeVarArgsIndex = parameter.typeVarArgsIndex; | |
57 this.variableElement = parameter.variableElement; | |
58 this.type = parameter.type; | |
59 } | |
60 | |
61 public Parameter(Parameter parameter, TypeMirror newType) { | |
62 this.specification = parameter.specification; | |
63 this.specificationVarArgsIndex = parameter.specificationVarArgsIndex; | |
64 this.localName = parameter.localName; | |
65 this.typeVarArgsIndex = parameter.typeVarArgsIndex; | |
66 this.variableElement = parameter.variableElement; | |
67 this.type = newType; | |
68 } | |
69 | |
70 public void setLocalName(String localName) { | |
71 this.localName = localName; | |
72 } | |
73 | |
74 public VariableElement getVariableElement() { | |
75 return variableElement; | |
76 } | |
77 | |
78 public int getTypeVarArgsIndex() { | |
79 return typeVarArgsIndex; | |
80 } | |
81 | |
82 public int getSpecificationVarArgsIndex() { | |
83 return specificationVarArgsIndex; | |
84 } | |
85 | |
86 public String getLocalName() { | |
87 return localName; | |
88 } | |
89 | |
90 void setMethod(TemplateMethod method) { | |
91 this.method = method; | |
92 } | |
93 | |
94 public ParameterSpec getSpecification() { | |
95 return specification; | |
96 } | |
97 | |
98 public TemplateMethod getMethod() { | |
99 return method; | |
100 } | |
101 | |
102 public TypeMirror getType() { | |
103 return type; | |
104 } | |
105 | |
106 public boolean isTypeVarArgs() { | |
107 return typeVarArgsIndex >= 0; | |
108 } | |
109 | |
110 public Parameter getPreviousParameter() { | |
111 return method.getPreviousParam(this); | |
112 } | |
113 | |
114 @Override | |
115 public String toString() { | |
116 return "Parameter [localName=" + localName + ", type=" + getType() + ", variableElement=" + variableElement + "]"; | |
117 } | |
118 | |
119 } |