Files
EWF/json/json_number.e
jfiat 548a320448 Cosmetic + Optimization + Assertion + Void-safety
(no significant interface changes)
2009-03-18 15:29:41 +00:00

86 lines
1.6 KiB
Plaintext

indexing
description: "JSON Numbers, octal and hexadecimal formats are not used."
author: "Javier Velilla"
date: "2008/08/24"
revision: "Revision 0.1"
license:"MIT (see http://www.opensource.org/licenses/mit-license.php)"
class
JSON_NUMBER
inherit
JSON_VALUE
redefine
is_equal
end
create
make_integer,
make_real
feature {NONE} -- initialization
make_integer (an_argument: INTEGER) is
-- Initialize an instance of JSON_NUMBER as INTEGER
do
item := an_argument.out
numeric_type := INTEGER_TYPE
end
make_real (an_argument: DOUBLE) is
-- Initialize an instance of JSON_NUMBER as DOUBLE
do
item := an_argument.out
numeric_type := DOUBLE_TYPE
end
feature -- Access
item: STRING
-- Content
hash_code: INTEGER is
--Hash code value
do
Result := item.hash_code
end
feature -- Visitor pattern
accept (a_visitor: JSON_VISITOR) is
-- Accept `a_visitor'.
-- (Call `visit_json_number' procedure on `a_visitor'.)
do
a_visitor.visit_json_number (Current)
end
feature -- Status
is_equal (other: like Current): BOOLEAN is
-- Is `other' attached to an object of the same type
-- as current object and identical to it?
do
Result := item.is_equal (other.item)
end
feature -- Status report
debug_output: STRING
-- String that should be displayed in debugger to represent `Current'.
do
Result := item
end
feature -- Implementation
INTEGER_TYPE: INTEGER is 1
DOUBLE_TYPE: INTEGER is 2
numeric_type: INTEGER
invariant
item_not_void: item /= Void
end