blob: dc430ace6d1e9c5c9d2972715f8eac6a864505b7 [file] [log] [blame]
J. Duke319a3b92007-12-01 00:00:00 +00001/*
2 * Copyright 1998-2000 Sun Microsystems, Inc. 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. Sun designates this
8 * particular file as subject to the "Classpath" exception as provided
9 * by Sun in the LICENSE file that accompanied this code.
10 *
11 * This code is distributed in the hope that it will be useful, but WITHOUT
12 * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
13 * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
14 * version 2 for more details (a copy is included in the LICENSE file that
15 * accompanied this code).
16 *
17 * You should have received a copy of the GNU General Public License version
18 * 2 along with this work; if not, write to the Free Software Foundation,
19 * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
20 *
21 * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
22 * CA 95054 USA or visit www.sun.com if you need additional information or
23 * have any questions.
24 */
25
26package com.sun.jdi;
27
28/**
29 * The value assigned to a field or variable of primitive type in a
30 * target VM. Each primitive values is accessed through a subinterface
31 * of this interface.
32 *
33 * @author Robert Field
34 * @author Gordon Hirsch
35 * @author James McIlree
36 * @since 1.3
37 */
38public interface PrimitiveValue extends Value
39{
40 /**
41 * Converts this value to a BooleanValue and returns the result
42 * as a boolean.
43 *
44 * @return <code>true</code> if this value is non-zero (or
45 * <code>true</code> if already a BooleanValue); false otherwise.
46 */
47 boolean booleanValue();
48
49 /**
50 * Converts this value to a ByteValue and returns the result
51 * as a byte. The value will be narrowed as
52 * necessary, and magnitude or precision information
53 * may be lost (as if the primitive had been cast to a byte).
54 *
55 * @return the value, converted to byte
56 */
57 byte byteValue();
58
59 /**
60 * Converts this value to a CharValue and returns the result
61 * as a char. The value will be narrowed or widened as
62 * necessary, and magnitude or precision information
63 * may be lost (as if the primitive had been cast to a char,
64 * in the narrowing case).
65 *
66 * @return the value, converted to char
67 */
68 char charValue();
69
70 /**
71 * Converts this value to a ShortValue and returns the result
72 * as a short. The value will be narrowed or widened as
73 * necessary, and magnitude or precision information
74 * may be lost (as if the primitive had been cast to a short,
75 * in the narrowing case).
76 *
77 * @return the value, converted to short
78 */
79 short shortValue();
80
81 /**
82 * Converts this value to an IntegerValue and returns the result
83 * as an int. The value will be narrowed or widened as
84 * necessary, and magnitude or precision information
85 * may be lost (as if the primitive had been cast to an int,
86 * in the narrowing case).
87 *
88 * @return the value, converted to int
89 */
90 int intValue();
91
92 /**
93 * Converts this value to a LongValue and returns the result
94 * as a long. The value will be narrowed or widened as
95 * necessary, and magnitude or precision information
96 * may be lost (as if the primitive had been cast to a long,
97 * in the narrowing case).
98 *
99 * @return the value, converted to long
100 */
101 long longValue();
102
103 /**
104 * Converts this value to a FloatValue and returns the result
105 * as a float. The value will be narrowed or widened as
106 * necessary, and magnitude or precision information
107 * may be lost (as if the primitive had been cast to a float,
108 * in the narrowing case).
109 *
110 * @return the value, converted to float
111 */
112 float floatValue();
113
114 /**
115 * Converts this value to a DoubleValue and returns the result
116 * as a double. The value will be widened as
117 * necessary, and precision information
118 * may be lost.
119 *
120 * @return the value, converted to double
121 */
122 double doubleValue();
123}