annotate graal/com.oracle.graal.lir/src/com/oracle/graal/lir/CompositeValueClass.java @ 15637:40f13c935d8b

mx: fix constructor call
author Bernhard Urban <bernhard.urban@jku.at>
date Wed, 14 May 2014 11:08:05 +0200
parents 21663230ba88
children f315b1c0a590
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
8165
a85ef330ffe7 Composite value.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff changeset
1 /*
a85ef330ffe7 Composite value.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff changeset
2 * Copyright (c) 2013, Oracle and/or its affiliates. All rights reserved.
a85ef330ffe7 Composite value.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff changeset
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
a85ef330ffe7 Composite value.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff changeset
4 *
a85ef330ffe7 Composite value.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff changeset
5 * This code is free software; you can redistribute it and/or modify it
a85ef330ffe7 Composite value.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff changeset
6 * under the terms of the GNU General Public License version 2 only, as
a85ef330ffe7 Composite value.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff changeset
7 * published by the Free Software Foundation.
a85ef330ffe7 Composite value.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff changeset
8 *
a85ef330ffe7 Composite value.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff changeset
9 * This code is distributed in the hope that it will be useful, but WITHOUT
a85ef330ffe7 Composite value.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff changeset
10 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
a85ef330ffe7 Composite value.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff changeset
11 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
a85ef330ffe7 Composite value.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff changeset
12 * version 2 for more details (a copy is included in the LICENSE file that
a85ef330ffe7 Composite value.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff changeset
13 * accompanied this code).
a85ef330ffe7 Composite value.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff changeset
14 *
a85ef330ffe7 Composite value.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff changeset
15 * You should have received a copy of the GNU General Public License version
a85ef330ffe7 Composite value.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff changeset
16 * 2 along with this work; if not, write to the Free Software Foundation,
a85ef330ffe7 Composite value.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff changeset
17 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
a85ef330ffe7 Composite value.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff changeset
18 *
a85ef330ffe7 Composite value.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff changeset
19 * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
a85ef330ffe7 Composite value.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff changeset
20 * or visit www.oracle.com if you need additional information or have any
a85ef330ffe7 Composite value.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff changeset
21 * questions.
a85ef330ffe7 Composite value.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff changeset
22 */
a85ef330ffe7 Composite value.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff changeset
23 package com.oracle.graal.lir;
a85ef330ffe7 Composite value.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff changeset
24
a85ef330ffe7 Composite value.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff changeset
25 import java.lang.reflect.*;
a85ef330ffe7 Composite value.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff changeset
26 import java.util.*;
a85ef330ffe7 Composite value.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff changeset
27
15193
96bb07a5d667 Spit up and move GraalInternalError.
Josef Eisl <josef.eisl@jku.at>
parents: 13127
diff changeset
28 import com.oracle.graal.compiler.common.*;
11404
aaf95ab77bf5 macro node for CompositeValue.get()
Doug Simon <doug.simon@oracle.com>
parents: 8165
diff changeset
29 import com.oracle.graal.lir.CompositeValue.Component;
8165
a85ef330ffe7 Composite value.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff changeset
30 import com.oracle.graal.lir.LIRInstruction.OperandFlag;
a85ef330ffe7 Composite value.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff changeset
31 import com.oracle.graal.lir.LIRInstruction.OperandMode;
a85ef330ffe7 Composite value.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff changeset
32 import com.oracle.graal.lir.LIRInstruction.ValueProcedure;
a85ef330ffe7 Composite value.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff changeset
33
11404
aaf95ab77bf5 macro node for CompositeValue.get()
Doug Simon <doug.simon@oracle.com>
parents: 8165
diff changeset
34 /**
aaf95ab77bf5 macro node for CompositeValue.get()
Doug Simon <doug.simon@oracle.com>
parents: 8165
diff changeset
35 * Lazily associated metadata for every {@link CompositeValue} type. The metadata includes:
aaf95ab77bf5 macro node for CompositeValue.get()
Doug Simon <doug.simon@oracle.com>
parents: 8165
diff changeset
36 * <ul>
aaf95ab77bf5 macro node for CompositeValue.get()
Doug Simon <doug.simon@oracle.com>
parents: 8165
diff changeset
37 * <li>The offsets of fields annotated with {@link Component} as well as methods for iterating over
aaf95ab77bf5 macro node for CompositeValue.get()
Doug Simon <doug.simon@oracle.com>
parents: 8165
diff changeset
38 * such fields.</li>
aaf95ab77bf5 macro node for CompositeValue.get()
Doug Simon <doug.simon@oracle.com>
parents: 8165
diff changeset
39 * </ul>
aaf95ab77bf5 macro node for CompositeValue.get()
Doug Simon <doug.simon@oracle.com>
parents: 8165
diff changeset
40 */
8165
a85ef330ffe7 Composite value.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff changeset
41 public class CompositeValueClass extends LIRIntrospection {
a85ef330ffe7 Composite value.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff changeset
42
a85ef330ffe7 Composite value.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff changeset
43 public static final CompositeValueClass get(Class<? extends CompositeValue> c) {
a85ef330ffe7 Composite value.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff changeset
44 CompositeValueClass clazz = (CompositeValueClass) allClasses.get(c);
a85ef330ffe7 Composite value.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff changeset
45 if (clazz != null) {
a85ef330ffe7 Composite value.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff changeset
46 return clazz;
a85ef330ffe7 Composite value.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff changeset
47 }
a85ef330ffe7 Composite value.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff changeset
48
a85ef330ffe7 Composite value.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff changeset
49 // We can have a race of multiple threads creating the LIRInstructionClass at the same time.
a85ef330ffe7 Composite value.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff changeset
50 // However, only one will be put into the map, and this is the one returned by all threads.
a85ef330ffe7 Composite value.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff changeset
51 clazz = new CompositeValueClass(c);
a85ef330ffe7 Composite value.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff changeset
52 CompositeValueClass oldClazz = (CompositeValueClass) allClasses.putIfAbsent(c, clazz);
a85ef330ffe7 Composite value.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff changeset
53 if (oldClazz != null) {
a85ef330ffe7 Composite value.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff changeset
54 return oldClazz;
a85ef330ffe7 Composite value.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff changeset
55 } else {
a85ef330ffe7 Composite value.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff changeset
56 return clazz;
a85ef330ffe7 Composite value.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff changeset
57 }
a85ef330ffe7 Composite value.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff changeset
58 }
a85ef330ffe7 Composite value.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff changeset
59
a85ef330ffe7 Composite value.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff changeset
60 private final int directComponentCount;
a85ef330ffe7 Composite value.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff changeset
61 private final long[] componentOffsets;
a85ef330ffe7 Composite value.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff changeset
62 private final EnumSet<OperandFlag>[] componentFlags;
a85ef330ffe7 Composite value.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff changeset
63
13127
f42f1f5d5ce0 Allow custom field offset providers
Christian Wimmer <christian.wimmer@oracle.com>
parents: 11404
diff changeset
64 public CompositeValueClass(Class<? extends CompositeValue> clazz) {
f42f1f5d5ce0 Allow custom field offset providers
Christian Wimmer <christian.wimmer@oracle.com>
parents: 11404
diff changeset
65 this(clazz, new DefaultCalcOffset());
f42f1f5d5ce0 Allow custom field offset providers
Christian Wimmer <christian.wimmer@oracle.com>
parents: 11404
diff changeset
66 }
f42f1f5d5ce0 Allow custom field offset providers
Christian Wimmer <christian.wimmer@oracle.com>
parents: 11404
diff changeset
67
8165
a85ef330ffe7 Composite value.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff changeset
68 @SuppressWarnings("unchecked")
13127
f42f1f5d5ce0 Allow custom field offset providers
Christian Wimmer <christian.wimmer@oracle.com>
parents: 11404
diff changeset
69 public CompositeValueClass(Class<? extends CompositeValue> clazz, CalcOffset calcOffset) {
8165
a85ef330ffe7 Composite value.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff changeset
70 super(clazz);
a85ef330ffe7 Composite value.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff changeset
71
13127
f42f1f5d5ce0 Allow custom field offset providers
Christian Wimmer <christian.wimmer@oracle.com>
parents: 11404
diff changeset
72 ValueFieldScanner scanner = new ValueFieldScanner(calcOffset);
8165
a85ef330ffe7 Composite value.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff changeset
73 scanner.scan(clazz);
a85ef330ffe7 Composite value.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff changeset
74
a85ef330ffe7 Composite value.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff changeset
75 OperandModeAnnotation mode = scanner.valueAnnotations.get(CompositeValue.Component.class);
a85ef330ffe7 Composite value.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff changeset
76 directComponentCount = mode.scalarOffsets.size();
a85ef330ffe7 Composite value.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff changeset
77 componentOffsets = sortedLongCopy(mode.scalarOffsets, mode.arrayOffsets);
a85ef330ffe7 Composite value.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff changeset
78 componentFlags = arrayUsingSortedOffsets(mode.flags, componentOffsets, new EnumSet[componentOffsets.length]);
a85ef330ffe7 Composite value.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff changeset
79
a85ef330ffe7 Composite value.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff changeset
80 dataOffsets = sortedLongCopy(scanner.dataOffsets);
a85ef330ffe7 Composite value.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff changeset
81
a85ef330ffe7 Composite value.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff changeset
82 fieldNames = scanner.fieldNames;
a85ef330ffe7 Composite value.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff changeset
83 fieldTypes = scanner.fieldTypes;
a85ef330ffe7 Composite value.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff changeset
84 }
a85ef330ffe7 Composite value.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff changeset
85
a85ef330ffe7 Composite value.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff changeset
86 @Override
a85ef330ffe7 Composite value.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff changeset
87 protected void rescanFieldOffsets(CalcOffset calc) {
a85ef330ffe7 Composite value.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff changeset
88 ValueFieldScanner scanner = new ValueFieldScanner(calc);
15295
21663230ba88 Move FieldIntrospection to graal.compiler.common.
Josef Eisl <josef.eisl@jku.at>
parents: 15193
diff changeset
89 scanner.scan(getClazz());
8165
a85ef330ffe7 Composite value.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff changeset
90
a85ef330ffe7 Composite value.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff changeset
91 OperandModeAnnotation mode = scanner.valueAnnotations.get(CompositeValue.Component.class);
a85ef330ffe7 Composite value.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff changeset
92 copyInto(componentOffsets, sortedLongCopy(mode.scalarOffsets, mode.arrayOffsets));
a85ef330ffe7 Composite value.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff changeset
93
a85ef330ffe7 Composite value.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff changeset
94 copyInto(dataOffsets, sortedLongCopy(scanner.dataOffsets));
a85ef330ffe7 Composite value.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff changeset
95
a85ef330ffe7 Composite value.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff changeset
96 fieldNames.clear();
a85ef330ffe7 Composite value.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff changeset
97 fieldNames.putAll(scanner.fieldNames);
a85ef330ffe7 Composite value.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff changeset
98 fieldTypes.clear();
a85ef330ffe7 Composite value.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff changeset
99 fieldTypes.putAll(scanner.fieldTypes);
a85ef330ffe7 Composite value.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff changeset
100 }
a85ef330ffe7 Composite value.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff changeset
101
a85ef330ffe7 Composite value.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff changeset
102 private static class ValueFieldScanner extends FieldScanner {
a85ef330ffe7 Composite value.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff changeset
103
a85ef330ffe7 Composite value.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff changeset
104 public ValueFieldScanner(CalcOffset calc) {
a85ef330ffe7 Composite value.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff changeset
105 super(calc);
a85ef330ffe7 Composite value.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff changeset
106
a85ef330ffe7 Composite value.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff changeset
107 valueAnnotations.put(CompositeValue.Component.class, new OperandModeAnnotation());
a85ef330ffe7 Composite value.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff changeset
108 }
a85ef330ffe7 Composite value.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff changeset
109
a85ef330ffe7 Composite value.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff changeset
110 @Override
15295
21663230ba88 Move FieldIntrospection to graal.compiler.common.
Josef Eisl <josef.eisl@jku.at>
parents: 15193
diff changeset
111 public void scan(Class<?> clazz) {
8165
a85ef330ffe7 Composite value.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff changeset
112 super.scan(clazz);
a85ef330ffe7 Composite value.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff changeset
113 }
a85ef330ffe7 Composite value.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff changeset
114
a85ef330ffe7 Composite value.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff changeset
115 @Override
a85ef330ffe7 Composite value.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff changeset
116 protected EnumSet<OperandFlag> getFlags(Field field) {
a85ef330ffe7 Composite value.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff changeset
117 EnumSet<OperandFlag> result = EnumSet.noneOf(OperandFlag.class);
a85ef330ffe7 Composite value.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff changeset
118 if (field.isAnnotationPresent(CompositeValue.Component.class)) {
a85ef330ffe7 Composite value.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff changeset
119 result.addAll(Arrays.asList(field.getAnnotation(CompositeValue.Component.class).value()));
a85ef330ffe7 Composite value.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff changeset
120 } else {
a85ef330ffe7 Composite value.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff changeset
121 GraalInternalError.shouldNotReachHere();
a85ef330ffe7 Composite value.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff changeset
122 }
a85ef330ffe7 Composite value.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff changeset
123 return result;
a85ef330ffe7 Composite value.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff changeset
124 }
a85ef330ffe7 Composite value.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff changeset
125 }
a85ef330ffe7 Composite value.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff changeset
126
a85ef330ffe7 Composite value.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff changeset
127 @Override
a85ef330ffe7 Composite value.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff changeset
128 public String toString() {
a85ef330ffe7 Composite value.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff changeset
129 StringBuilder str = new StringBuilder();
15295
21663230ba88 Move FieldIntrospection to graal.compiler.common.
Josef Eisl <josef.eisl@jku.at>
parents: 15193
diff changeset
130 str.append(getClass().getSimpleName()).append(" ").append(getClazz().getSimpleName()).append(" component[");
8165
a85ef330ffe7 Composite value.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff changeset
131 for (int i = 0; i < componentOffsets.length; i++) {
a85ef330ffe7 Composite value.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff changeset
132 str.append(i == 0 ? "" : ", ").append(componentOffsets[i]);
a85ef330ffe7 Composite value.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff changeset
133 }
a85ef330ffe7 Composite value.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff changeset
134 str.append("] data[");
a85ef330ffe7 Composite value.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff changeset
135 for (int i = 0; i < dataOffsets.length; i++) {
a85ef330ffe7 Composite value.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff changeset
136 str.append(i == 0 ? "" : ", ").append(dataOffsets[i]);
a85ef330ffe7 Composite value.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff changeset
137 }
a85ef330ffe7 Composite value.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff changeset
138 str.append("]");
a85ef330ffe7 Composite value.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff changeset
139 return str.toString();
a85ef330ffe7 Composite value.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff changeset
140 }
a85ef330ffe7 Composite value.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff changeset
141
a85ef330ffe7 Composite value.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff changeset
142 public final void forEachComponent(CompositeValue obj, OperandMode mode, ValueProcedure proc) {
a85ef330ffe7 Composite value.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff changeset
143 forEach(obj, directComponentCount, componentOffsets, mode, componentFlags, proc);
a85ef330ffe7 Composite value.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff changeset
144 }
a85ef330ffe7 Composite value.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff changeset
145
a85ef330ffe7 Composite value.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff changeset
146 public String toString(CompositeValue obj) {
a85ef330ffe7 Composite value.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff changeset
147 StringBuilder result = new StringBuilder();
a85ef330ffe7 Composite value.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff changeset
148
a85ef330ffe7 Composite value.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff changeset
149 appendValues(result, obj, "", "", "{", "}", new String[]{""}, componentOffsets);
a85ef330ffe7 Composite value.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff changeset
150
a85ef330ffe7 Composite value.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff changeset
151 for (int i = 0; i < dataOffsets.length; i++) {
a85ef330ffe7 Composite value.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff changeset
152 result.append(" ").append(fieldNames.get(dataOffsets[i])).append(": ").append(getFieldString(obj, dataOffsets[i]));
a85ef330ffe7 Composite value.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff changeset
153 }
a85ef330ffe7 Composite value.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff changeset
154
a85ef330ffe7 Composite value.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff changeset
155 return result.toString();
a85ef330ffe7 Composite value.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff changeset
156 }
a85ef330ffe7 Composite value.
Roland Schatz <roland.schatz@oracle.com>
parents:
diff changeset
157 }