annotate graal/com.oracle.truffle.codegen.processor/src/com/oracle/truffle/codegen/processor/template/MessageContainer.java @ 10091:51b8585a1d70

more restrictive condition in ForeignCallNode.setStateAfter
author Lukas Stadler <lukas.stadler@jku.at>
date Wed, 19 Jun 2013 16:46:41 +0200
parents 8e3a1635cc9e
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
8255
1384c39e2c53 Added missing class MessageContainer.
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
1 /*
1384c39e2c53 Added missing class MessageContainer.
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
2 * Copyright (c) 2012, Oracle and/or its affiliates. All rights reserved.
1384c39e2c53 Added missing class MessageContainer.
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
1384c39e2c53 Added missing class MessageContainer.
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
4 *
1384c39e2c53 Added missing class MessageContainer.
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
5 * This code is free software; you can redistribute it and/or modify it
1384c39e2c53 Added missing class MessageContainer.
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
6 * under the terms of the GNU General Public License version 2 only, as
1384c39e2c53 Added missing class MessageContainer.
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
7 * published by the Free Software Foundation.
1384c39e2c53 Added missing class MessageContainer.
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
8 *
1384c39e2c53 Added missing class MessageContainer.
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
9 * This code is distributed in the hope that it will be useful, but WITHOUT
1384c39e2c53 Added missing class MessageContainer.
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
1384c39e2c53 Added missing class MessageContainer.
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
1384c39e2c53 Added missing class MessageContainer.
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
12 * version 2 for more details (a copy is included in the LICENSE file that
1384c39e2c53 Added missing class MessageContainer.
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
13 * accompanied this code).
1384c39e2c53 Added missing class MessageContainer.
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
14 *
1384c39e2c53 Added missing class MessageContainer.
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
15 * You should have received a copy of the GNU General Public License version
1384c39e2c53 Added missing class MessageContainer.
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
16 * 2 along with this work; if not, write to the Free Software Foundation,
1384c39e2c53 Added missing class MessageContainer.
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
1384c39e2c53 Added missing class MessageContainer.
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
18 *
1384c39e2c53 Added missing class MessageContainer.
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
1384c39e2c53 Added missing class MessageContainer.
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
20 * or visit www.oracle.com if you need additional information or have any
1384c39e2c53 Added missing class MessageContainer.
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
21 * questions.
1384c39e2c53 Added missing class MessageContainer.
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
22 */
1384c39e2c53 Added missing class MessageContainer.
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
23 package com.oracle.truffle.codegen.processor.template;
1384c39e2c53 Added missing class MessageContainer.
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
24
1384c39e2c53 Added missing class MessageContainer.
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
25 import java.util.*;
1384c39e2c53 Added missing class MessageContainer.
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
26
1384c39e2c53 Added missing class MessageContainer.
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
27 import javax.lang.model.element.*;
1384c39e2c53 Added missing class MessageContainer.
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
28 import javax.tools.Diagnostic.Kind;
1384c39e2c53 Added missing class MessageContainer.
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
29
1384c39e2c53 Added missing class MessageContainer.
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
30 import com.oracle.truffle.codegen.processor.*;
1384c39e2c53 Added missing class MessageContainer.
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
31
1384c39e2c53 Added missing class MessageContainer.
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
32 public abstract class MessageContainer {
1384c39e2c53 Added missing class MessageContainer.
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
33
1384c39e2c53 Added missing class MessageContainer.
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
34 private final List<Message> messages = new ArrayList<>();
1384c39e2c53 Added missing class MessageContainer.
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
35
1384c39e2c53 Added missing class MessageContainer.
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
36 public final void addWarning(String text, Object... params) {
9287
8e3a1635cc9e Implemented @NodeChild(executeWith={...}).
Christian Humer <christian.humer@gmail.com>
parents: 8313
diff changeset
37 getMessages().add(new Message(null, this, String.format(text, params), Kind.WARNING));
8255
1384c39e2c53 Added missing class MessageContainer.
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
38 }
1384c39e2c53 Added missing class MessageContainer.
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
39
1384c39e2c53 Added missing class MessageContainer.
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
40 public final void addError(String text, Object... params) {
9287
8e3a1635cc9e Implemented @NodeChild(executeWith={...}).
Christian Humer <christian.humer@gmail.com>
parents: 8313
diff changeset
41 addError(null, text, params);
8e3a1635cc9e Implemented @NodeChild(executeWith={...}).
Christian Humer <christian.humer@gmail.com>
parents: 8313
diff changeset
42 }
8e3a1635cc9e Implemented @NodeChild(executeWith={...}).
Christian Humer <christian.humer@gmail.com>
parents: 8313
diff changeset
43
8e3a1635cc9e Implemented @NodeChild(executeWith={...}).
Christian Humer <christian.humer@gmail.com>
parents: 8313
diff changeset
44 public final void addError(AnnotationValue value, String text, Object... params) {
8e3a1635cc9e Implemented @NodeChild(executeWith={...}).
Christian Humer <christian.humer@gmail.com>
parents: 8313
diff changeset
45 getMessages().add(new Message(value, this, String.format(text, params), Kind.ERROR));
8255
1384c39e2c53 Added missing class MessageContainer.
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
46 }
1384c39e2c53 Added missing class MessageContainer.
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
47
1384c39e2c53 Added missing class MessageContainer.
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
48 protected List<MessageContainer> findChildContainers() {
1384c39e2c53 Added missing class MessageContainer.
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
49 return Collections.emptyList();
1384c39e2c53 Added missing class MessageContainer.
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
50 }
1384c39e2c53 Added missing class MessageContainer.
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
51
1384c39e2c53 Added missing class MessageContainer.
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
52 public abstract Element getMessageElement();
1384c39e2c53 Added missing class MessageContainer.
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
53
1384c39e2c53 Added missing class MessageContainer.
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
54 public final void emitMessages(TypeElement baseElement, Log log) {
1384c39e2c53 Added missing class MessageContainer.
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
55 emitMessagesImpl(baseElement, log, new HashSet<MessageContainer>());
1384c39e2c53 Added missing class MessageContainer.
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
56 }
1384c39e2c53 Added missing class MessageContainer.
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
57
1384c39e2c53 Added missing class MessageContainer.
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
58 private void emitMessagesImpl(TypeElement baseElement, Log log, Set<MessageContainer> visitedSinks) {
1384c39e2c53 Added missing class MessageContainer.
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
59 for (Message message : getMessages()) {
1384c39e2c53 Added missing class MessageContainer.
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
60 emitDefault(baseElement, log, message);
1384c39e2c53 Added missing class MessageContainer.
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
61 }
1384c39e2c53 Added missing class MessageContainer.
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
62
1384c39e2c53 Added missing class MessageContainer.
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
63 for (MessageContainer sink : findChildContainers()) {
1384c39e2c53 Added missing class MessageContainer.
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
64 if (visitedSinks.contains(sink)) {
8313
88e3893dc0a8 Fixed messages were sometimes not shown in sourcegen.
Christian Humer <christian.humer@gmail.com>
parents: 8310
diff changeset
65 continue;
8255
1384c39e2c53 Added missing class MessageContainer.
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
66 }
1384c39e2c53 Added missing class MessageContainer.
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
67
1384c39e2c53 Added missing class MessageContainer.
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
68 visitedSinks.add(sink);
1384c39e2c53 Added missing class MessageContainer.
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
69 sink.emitMessagesImpl(baseElement, log, visitedSinks);
1384c39e2c53 Added missing class MessageContainer.
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
70 }
1384c39e2c53 Added missing class MessageContainer.
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
71 }
1384c39e2c53 Added missing class MessageContainer.
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
72
1384c39e2c53 Added missing class MessageContainer.
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
73 private void emitDefault(TypeElement baseType, Log log, Message message) {
8310
89006c76f737 Final fields of base node can be optionally passed to builtin specialization method. And a few fixes.
Christian Humer <christian.humer@gmail.com>
parents: 8256
diff changeset
74 TypeElement rootEnclosing = Utils.findRootEnclosingType(getMessageElement());
89006c76f737 Final fields of base node can be optionally passed to builtin specialization method. And a few fixes.
Christian Humer <christian.humer@gmail.com>
parents: 8256
diff changeset
75 if (rootEnclosing != null && Utils.typeEquals(baseType.asType(), rootEnclosing.asType()) && this == message.getOriginalContainer()) {
8255
1384c39e2c53 Added missing class MessageContainer.
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
76 log.message(message.getKind(), getMessageElement(), getMessageAnnotation(), getMessageAnnotationValue(), message.getText());
1384c39e2c53 Added missing class MessageContainer.
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
77 } else {
1384c39e2c53 Added missing class MessageContainer.
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
78 MessageContainer original = message.getOriginalContainer();
1384c39e2c53 Added missing class MessageContainer.
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
79 log.message(message.getKind(), baseType, null, null, wrapText(original.getMessageElement(), original.getMessageAnnotation(), message.getText()));
1384c39e2c53 Added missing class MessageContainer.
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
80 }
1384c39e2c53 Added missing class MessageContainer.
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
81 }
1384c39e2c53 Added missing class MessageContainer.
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
82
1384c39e2c53 Added missing class MessageContainer.
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
83 private static String wrapText(Element element, AnnotationMirror mirror, String text) {
1384c39e2c53 Added missing class MessageContainer.
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
84 StringBuilder b = new StringBuilder();
1384c39e2c53 Added missing class MessageContainer.
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
85 if (element != null) {
1384c39e2c53 Added missing class MessageContainer.
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
86 b.append("Element " + element.toString());
1384c39e2c53 Added missing class MessageContainer.
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
87 }
1384c39e2c53 Added missing class MessageContainer.
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
88 if (mirror != null) {
1384c39e2c53 Added missing class MessageContainer.
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
89 b.append(" at annotation @" + Utils.getSimpleName(mirror.getAnnotationType()));
1384c39e2c53 Added missing class MessageContainer.
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
90 }
1384c39e2c53 Added missing class MessageContainer.
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
91
1384c39e2c53 Added missing class MessageContainer.
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
92 if (b.length() > 0) {
1384c39e2c53 Added missing class MessageContainer.
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
93 b.append(" is erroneous: ").append(text);
1384c39e2c53 Added missing class MessageContainer.
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
94 return b.toString();
1384c39e2c53 Added missing class MessageContainer.
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
95 } else {
1384c39e2c53 Added missing class MessageContainer.
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
96 return text;
1384c39e2c53 Added missing class MessageContainer.
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
97 }
1384c39e2c53 Added missing class MessageContainer.
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
98 }
1384c39e2c53 Added missing class MessageContainer.
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
99
1384c39e2c53 Added missing class MessageContainer.
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
100 public AnnotationMirror getMessageAnnotation() {
1384c39e2c53 Added missing class MessageContainer.
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
101 return null;
1384c39e2c53 Added missing class MessageContainer.
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
102 }
1384c39e2c53 Added missing class MessageContainer.
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
103
1384c39e2c53 Added missing class MessageContainer.
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
104 public AnnotationValue getMessageAnnotationValue() {
1384c39e2c53 Added missing class MessageContainer.
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
105 return null;
1384c39e2c53 Added missing class MessageContainer.
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
106 }
1384c39e2c53 Added missing class MessageContainer.
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
107
1384c39e2c53 Added missing class MessageContainer.
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
108 public final boolean hasErrors() {
1384c39e2c53 Added missing class MessageContainer.
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
109 return hasErrorsImpl(new HashSet<MessageContainer>());
1384c39e2c53 Added missing class MessageContainer.
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
110 }
1384c39e2c53 Added missing class MessageContainer.
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
111
1384c39e2c53 Added missing class MessageContainer.
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
112 public final List<Message> collectMessages() {
1384c39e2c53 Added missing class MessageContainer.
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
113 List<Message> collectedMessages = new ArrayList<>();
1384c39e2c53 Added missing class MessageContainer.
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
114 collectMessagesImpl(collectedMessages, new HashSet<MessageContainer>());
1384c39e2c53 Added missing class MessageContainer.
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
115 return collectedMessages;
1384c39e2c53 Added missing class MessageContainer.
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
116 }
1384c39e2c53 Added missing class MessageContainer.
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
117
1384c39e2c53 Added missing class MessageContainer.
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
118 private void collectMessagesImpl(List<Message> collectedMessages, Set<MessageContainer> visitedSinks) {
1384c39e2c53 Added missing class MessageContainer.
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
119 collectedMessages.addAll(getMessages());
1384c39e2c53 Added missing class MessageContainer.
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
120 for (MessageContainer sink : findChildContainers()) {
1384c39e2c53 Added missing class MessageContainer.
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
121 if (visitedSinks.contains(sink)) {
1384c39e2c53 Added missing class MessageContainer.
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
122 return;
1384c39e2c53 Added missing class MessageContainer.
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
123 }
1384c39e2c53 Added missing class MessageContainer.
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
124
1384c39e2c53 Added missing class MessageContainer.
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
125 visitedSinks.add(sink);
1384c39e2c53 Added missing class MessageContainer.
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
126 sink.collectMessagesImpl(collectedMessages, visitedSinks);
1384c39e2c53 Added missing class MessageContainer.
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
127 }
1384c39e2c53 Added missing class MessageContainer.
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
128 }
1384c39e2c53 Added missing class MessageContainer.
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
129
1384c39e2c53 Added missing class MessageContainer.
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
130 private boolean hasErrorsImpl(Set<MessageContainer> visitedSinks) {
1384c39e2c53 Added missing class MessageContainer.
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
131 for (Message msg : getMessages()) {
1384c39e2c53 Added missing class MessageContainer.
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
132 if (msg.getKind() == Kind.ERROR) {
1384c39e2c53 Added missing class MessageContainer.
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
133 return true;
1384c39e2c53 Added missing class MessageContainer.
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
134 }
1384c39e2c53 Added missing class MessageContainer.
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
135 }
1384c39e2c53 Added missing class MessageContainer.
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
136 for (MessageContainer sink : findChildContainers()) {
1384c39e2c53 Added missing class MessageContainer.
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
137 if (visitedSinks.contains(sink)) {
1384c39e2c53 Added missing class MessageContainer.
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
138 return false;
1384c39e2c53 Added missing class MessageContainer.
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
139 }
1384c39e2c53 Added missing class MessageContainer.
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
140
1384c39e2c53 Added missing class MessageContainer.
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
141 visitedSinks.add(sink);
1384c39e2c53 Added missing class MessageContainer.
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
142
1384c39e2c53 Added missing class MessageContainer.
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
143 if (sink.hasErrorsImpl(visitedSinks)) {
1384c39e2c53 Added missing class MessageContainer.
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
144 return true;
1384c39e2c53 Added missing class MessageContainer.
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
145 }
1384c39e2c53 Added missing class MessageContainer.
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
146 }
1384c39e2c53 Added missing class MessageContainer.
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
147 return false;
1384c39e2c53 Added missing class MessageContainer.
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
148 }
1384c39e2c53 Added missing class MessageContainer.
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
149
1384c39e2c53 Added missing class MessageContainer.
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
150 public List<Message> getMessages() {
1384c39e2c53 Added missing class MessageContainer.
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
151 return messages;
1384c39e2c53 Added missing class MessageContainer.
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
152 }
1384c39e2c53 Added missing class MessageContainer.
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
153
8256
4dc7034317ec Cleanup.
Christian Humer <christian.humer@gmail.com>
parents: 8255
diff changeset
154 public static final class Message {
8255
1384c39e2c53 Added missing class MessageContainer.
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
155
1384c39e2c53 Added missing class MessageContainer.
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
156 private final MessageContainer originalContainer;
9287
8e3a1635cc9e Implemented @NodeChild(executeWith={...}).
Christian Humer <christian.humer@gmail.com>
parents: 8313
diff changeset
157 private final AnnotationValue annotationValue;
8255
1384c39e2c53 Added missing class MessageContainer.
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
158 private final String text;
1384c39e2c53 Added missing class MessageContainer.
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
159 private final Kind kind;
1384c39e2c53 Added missing class MessageContainer.
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
160
9287
8e3a1635cc9e Implemented @NodeChild(executeWith={...}).
Christian Humer <christian.humer@gmail.com>
parents: 8313
diff changeset
161 public Message(AnnotationValue annotationValue, MessageContainer originalContainer, String text, Kind kind) {
8e3a1635cc9e Implemented @NodeChild(executeWith={...}).
Christian Humer <christian.humer@gmail.com>
parents: 8313
diff changeset
162 this.annotationValue = annotationValue;
8255
1384c39e2c53 Added missing class MessageContainer.
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
163 this.originalContainer = originalContainer;
1384c39e2c53 Added missing class MessageContainer.
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
164 this.text = text;
1384c39e2c53 Added missing class MessageContainer.
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
165 this.kind = kind;
1384c39e2c53 Added missing class MessageContainer.
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
166 }
1384c39e2c53 Added missing class MessageContainer.
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
167
9287
8e3a1635cc9e Implemented @NodeChild(executeWith={...}).
Christian Humer <christian.humer@gmail.com>
parents: 8313
diff changeset
168 public AnnotationValue getAnnotationValue() {
8e3a1635cc9e Implemented @NodeChild(executeWith={...}).
Christian Humer <christian.humer@gmail.com>
parents: 8313
diff changeset
169 return annotationValue;
8e3a1635cc9e Implemented @NodeChild(executeWith={...}).
Christian Humer <christian.humer@gmail.com>
parents: 8313
diff changeset
170 }
8e3a1635cc9e Implemented @NodeChild(executeWith={...}).
Christian Humer <christian.humer@gmail.com>
parents: 8313
diff changeset
171
8255
1384c39e2c53 Added missing class MessageContainer.
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
172 public MessageContainer getOriginalContainer() {
1384c39e2c53 Added missing class MessageContainer.
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
173 return originalContainer;
1384c39e2c53 Added missing class MessageContainer.
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
174 }
1384c39e2c53 Added missing class MessageContainer.
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
175
1384c39e2c53 Added missing class MessageContainer.
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
176 public String getText() {
1384c39e2c53 Added missing class MessageContainer.
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
177 return text;
1384c39e2c53 Added missing class MessageContainer.
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
178 }
1384c39e2c53 Added missing class MessageContainer.
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
179
1384c39e2c53 Added missing class MessageContainer.
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
180 public Kind getKind() {
1384c39e2c53 Added missing class MessageContainer.
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
181 return kind;
1384c39e2c53 Added missing class MessageContainer.
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
182 }
1384c39e2c53 Added missing class MessageContainer.
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
183
1384c39e2c53 Added missing class MessageContainer.
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
184 @Override
1384c39e2c53 Added missing class MessageContainer.
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
185 public String toString() {
1384c39e2c53 Added missing class MessageContainer.
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
186 return kind + ": " + text;
1384c39e2c53 Added missing class MessageContainer.
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
187 }
1384c39e2c53 Added missing class MessageContainer.
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
188
1384c39e2c53 Added missing class MessageContainer.
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
189 }
1384c39e2c53 Added missing class MessageContainer.
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
190
1384c39e2c53 Added missing class MessageContainer.
Christian Humer <christian.humer@gmail.com>
parents:
diff changeset
191 }