Package bsh
Class Primitive
- java.lang.Object
-
- bsh.Primitive
-
- All Implemented Interfaces:
ParserConstants
,java.io.Serializable
public class Primitive extends java.lang.Object implements ParserConstants, java.io.Serializable
Wrapper for primitive types in Bsh. This is package public because it is used in the implementation of some bsh commands. See the note in LHS.java about wrapping objects.- See Also:
- Serialized Form
-
-
Field Summary
Fields Modifier and Type Field Description static Primitive
NULL
static Primitive
VOID
VOID means "no type".-
Fields inherited from interface bsh.ParserConstants
_DEFAULT, ABSTRACT, ANDASSIGN, ANDASSIGNX, ASSIGN, BANG, BIT_AND, BIT_ANDX, BIT_OR, BIT_ORX, BOOL_AND, BOOL_ANDX, BOOL_OR, BOOL_ORX, BOOLEAN, BREAK, BYTE, CASE, CATCH, CHAR, CHARACTER_LITERAL, CLASS, COLON, COMMA, CONST, CONTINUE, DECIMAL_LITERAL, DECR, DEFAULT, DIGIT, DO, DOT, DOUBLE, ELSE, ENUM, EOF, EQ, EXPONENT, EXTENDS, FALSE, FINAL, FINALLY, FLOAT, FLOATING_POINT_LITERAL, FOR, FORMAL_COMMENT, GE, GEX, GOTO, GT, GTX, HASH_BANG_COMMENT, HEX_LITERAL, HOOK, IDENTIFIER, IF, IMPLEMENTS, IMPORT, INCR, INSTANCEOF, INT, INTEGER_LITERAL, INTERFACE, LBRACE, LBRACKET, LE, LETTER, LEX, LONG, LPAREN, LSHIFT, LSHIFTASSIGN, LSHIFTASSIGNX, LSHIFTX, LT, LTX, MINUS, MINUSASSIGN, MOD, MODASSIGN, MULTI_LINE_COMMENT, NATIVE, NE, NEW, NONPRINTABLE, OCTAL_LITERAL, ORASSIGN, ORASSIGNX, PACKAGE, PLUS, PLUSASSIGN, PRIVATE, PROTECTED, PUBLIC, RBRACE, RBRACKET, RETURN, RPAREN, RSIGNEDSHIFT, RSIGNEDSHIFTASSIGN, RSIGNEDSHIFTASSIGNX, RSIGNEDSHIFTX, RUNSIGNEDSHIFT, RUNSIGNEDSHIFTASSIGN, RUNSIGNEDSHIFTASSIGNX, RUNSIGNEDSHIFTX, SEMICOLON, SHORT, SINGLE_LINE_COMMENT, SLASH, SLASHASSIGN, STAR, STARASSIGN, STATIC, STRICTFP, STRING_LITERAL, SWITCH, SYNCHRONIZED, THROW, THROWS, TILDE, tokenImage, TRANSIENT, TRUE, TRY, VOLATILE, WHILE, XOR, XORASSIGN
-
-
Constructor Summary
Constructors Constructor Description Primitive(boolean value)
Primitive(byte value)
Primitive(char value)
Primitive(double value)
Primitive(float value)
Primitive(int value)
Primitive(long value)
Primitive(short value)
Primitive(java.lang.Boolean value)
Primitive(java.lang.Byte value)
Primitive(java.lang.Character value)
Primitive(java.lang.Double value)
Primitive(java.lang.Float value)
Primitive(java.lang.Integer value)
Primitive(java.lang.Long value)
Primitive(java.lang.Number number)
Primitive(java.lang.Short value)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static java.lang.Object
binaryOperation(java.lang.Object obj1, java.lang.Object obj2, int kind)
Perform a binary operation on two Primitives or wrapper types.boolean
booleanValue()
boolean
equals(java.lang.Object obj)
Primitives compare equal with other Primitives containing an equal wrapped value.static Primitive
getDefaultValue(java.lang.Class type)
Get the appropriate default value per JLS 4.5.4java.lang.Class
getType()
Get the corresponding primitive TYPE class for the Primitivejava.lang.Object
getValue()
Return the primitive value stored in its java.lang wrapper classint
hashCode()
The hash of the Primitive is tied to the hash of the wrapped value but shifted so that they are not the same.int
intValue()
boolean
isNumber()
Determine if this primitive is a numeric type.java.lang.Number
numberValue()
java.lang.String
toString()
static Primitive
unaryOperation(Primitive val, int kind)
static java.lang.Object
unwrap(java.lang.Object obj)
Unwrap primitive values and map voids to nulls.
-
-
-
Constructor Detail
-
Primitive
public Primitive(java.lang.Number number)
-
Primitive
public Primitive(java.lang.Boolean value)
-
Primitive
public Primitive(java.lang.Byte value)
-
Primitive
public Primitive(java.lang.Short value)
-
Primitive
public Primitive(java.lang.Character value)
-
Primitive
public Primitive(java.lang.Integer value)
-
Primitive
public Primitive(java.lang.Long value)
-
Primitive
public Primitive(java.lang.Float value)
-
Primitive
public Primitive(java.lang.Double value)
-
Primitive
public Primitive(boolean value)
-
Primitive
public Primitive(byte value)
-
Primitive
public Primitive(short value)
-
Primitive
public Primitive(char value)
-
Primitive
public Primitive(int value)
-
Primitive
public Primitive(long value)
-
Primitive
public Primitive(float value)
-
Primitive
public Primitive(double value)
-
-
Method Detail
-
getValue
public java.lang.Object getValue()
Return the primitive value stored in its java.lang wrapper class
-
toString
public java.lang.String toString()
- Overrides:
toString
in classjava.lang.Object
-
getType
public java.lang.Class getType()
Get the corresponding primitive TYPE class for the Primitive- Returns:
- the primitive TYPE class type of the value or Void.TYPE for Primitive.VOID or null value for type of Primitive.NULL
-
binaryOperation
public static java.lang.Object binaryOperation(java.lang.Object obj1, java.lang.Object obj2, int kind) throws UtilEvalError
Perform a binary operation on two Primitives or wrapper types. If both original args were Primitives return a Primitive result else it was mixed (wrapper/primitive) return the wrapper type. The exception is for boolean operations where we will return the primitive type eithe way.- Throws:
UtilEvalError
-
unaryOperation
public static Primitive unaryOperation(Primitive val, int kind) throws UtilEvalError
- Throws:
UtilEvalError
-
intValue
public int intValue() throws UtilEvalError
- Throws:
UtilEvalError
-
booleanValue
public boolean booleanValue() throws UtilEvalError
- Throws:
UtilEvalError
-
isNumber
public boolean isNumber()
Determine if this primitive is a numeric type. i.e. not boolean, null, or void (but including char)
-
numberValue
public java.lang.Number numberValue() throws UtilEvalError
- Throws:
UtilEvalError
-
equals
public boolean equals(java.lang.Object obj)
Primitives compare equal with other Primitives containing an equal wrapped value.- Overrides:
equals
in classjava.lang.Object
-
hashCode
public int hashCode()
The hash of the Primitive is tied to the hash of the wrapped value but shifted so that they are not the same.- Overrides:
hashCode
in classjava.lang.Object
-
unwrap
public static java.lang.Object unwrap(java.lang.Object obj)
Unwrap primitive values and map voids to nulls. Normal (non Primitive) types remain unchanged.- Parameters:
obj
- object type which may be bsh.Primitive- Returns:
- corresponding "normal" Java type, "unwrapping" any bsh.Primitive types to their wrapper types.
-
getDefaultValue
public static Primitive getDefaultValue(java.lang.Class type)
Get the appropriate default value per JLS 4.5.4
-
-