Home | History | Annotate | Download | only in jdi
      1 /*
      2  * Copyright (c) 1998, 2013, 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.  Oracle designates this
      8  * particular file as subject to the "Classpath" exception as provided
      9  * by Oracle 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 Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
     22  * or visit www.oracle.com if you need additional information or have any
     23  * questions.
     24  */
     25 
     26 package 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  */
     38 @jdk.Exported
     39 public interface PrimitiveValue extends Value {
     40 
     41     /**
     42      * Converts this value to a BooleanValue and returns the result
     43      * as a boolean.
     44      *
     45      * @return <code>true</code> if this value is non-zero (or
     46      * <code>true</code> if already a BooleanValue); false otherwise.
     47      */
     48     boolean booleanValue();
     49 
     50     /**
     51      * Converts this value to a ByteValue and returns the result
     52      * as a byte. The value will be narrowed as
     53      * necessary, and magnitude or precision information
     54      * may be lost (as if the primitive had been cast to a byte).
     55      *
     56      * @return the value, converted to byte
     57      */
     58     byte byteValue();
     59 
     60     /**
     61      * Converts this value to a CharValue and returns the result
     62      * as a char. The value will be narrowed or widened as
     63      * necessary, and magnitude or precision information
     64      * may be lost (as if the primitive had been cast to a char,
     65      * in the narrowing case).
     66      *
     67      * @return the value, converted to char
     68      */
     69     char charValue();
     70 
     71     /**
     72      * Converts this value to a ShortValue and returns the result
     73      * as a short. The value will be narrowed or widened as
     74      * necessary, and magnitude or precision information
     75      * may be lost (as if the primitive had been cast to a short,
     76      * in the narrowing case).
     77      *
     78      * @return the value, converted to short
     79      */
     80     short shortValue();
     81 
     82     /**
     83      * Converts this value to an IntegerValue and returns the result
     84      * as an int. The value will be narrowed or widened as
     85      * necessary, and magnitude or precision information
     86      * may be lost (as if the primitive had been cast to an int,
     87      * in the narrowing case).
     88      *
     89      * @return the value, converted to int
     90      */
     91     int intValue();
     92 
     93     /**
     94      * Converts this value to a LongValue and returns the result
     95      * as a long. The value will be narrowed or widened as
     96      * necessary, and magnitude or precision information
     97      * may be lost (as if the primitive had been cast to a long,
     98      * in the narrowing case).
     99      *
    100      * @return the value, converted to long
    101      */
    102     long longValue();
    103 
    104     /**
    105      * Converts this value to a FloatValue and returns the result
    106      * as a float. The value will be narrowed or widened as
    107      * necessary, and magnitude or precision information
    108      * may be lost (as if the primitive had been cast to a float,
    109      * in the narrowing case).
    110      *
    111      * @return the value, converted to float
    112      */
    113     float floatValue();
    114 
    115     /**
    116      * Converts this value to a DoubleValue and returns the result
    117      * as a double. The value will be widened as
    118      * necessary, and precision information
    119      * may be lost.
    120      *
    121      * @return the value, converted to double
    122      */
    123     double doubleValue();
    124 }
    125