Automatic generation produced by ISE Eiffel
indexing
description: "Objects that represent a event"
author: "Marco Piccioni, Peizhu Li"
date: "$Date$"
revision: "$0.6$"
class
EVENT
create
make
feature {NONE} -- Initialization
default_create
-- Process instances of classes with no creation clause.
-- (Default: do nothing.)
-- (from ANY)
do
end
feature -- Access
additional_deadline_1: DATE
additional_deadline_2: DATE
additional_deadline_3: DATE
additional_deadline_specification_1: STRING_8
additional_deadline_specification_2: STRING_8
additional_deadline_specification_3: STRING_8
additional_notes: STRING_8
additional_sponsors: ARRAYED_LIST [STRING_8]
city: STRING_8
conference_chair_1: STRING_8
conference_chair_2: STRING_8
contact_email: STRING_8
contact_name: STRING_8
contact_role: STRING_8
country: STRING_8
ending_date: DATE
event_status: INTEGER_32
-- See the State Pattern (GoF) for a more flexible and complex solution, in this case not needed in my opinion
generating_type: STRING_8
-- Name of current object's generating type
-- (type of which it is a direct instance)
-- (from ANY)
external
"built_in"
ensure -- from ANY
generating_type_not_void: Result /= Void
generating_type_not_empty: not Result.is_empty
end
generator: STRING_8
-- Name of current object's generating class
-- (base class of the type of which it is a direct instance)
-- (from ANY)
external
"built_in"
ensure -- from ANY
generator_not_void: Result /= Void
generator_not_empty: not Result.is_empty
end
id: NATURAL_64
--conference unique id
keywords: ARRAYED_LIST [STRING_8]
main_sponsor: STRING_8
name: STRING_8
organizing_chair: STRING_8
papers_submission_deadline: DATE
proceeding_type: STRING_8
proceedings_publisher: STRING_8
program_committee_chair_1: STRING_8
program_committee_chair_2: STRING_8
short_description: STRING_8
starting_date: DATE
submitted_by: STRING_8
url: STRING_8
feature -- Comparison
frozen deep_equal (some: ANY; other: like arg #1): BOOLEAN
-- Are `some' and `other' either both void
-- or attached to isomorphic object structures?
-- (from ANY)
do
if some = Void then
Result := other = Void
else
Result := other /= Void and then some.is_deep_equal (other)
end
ensure -- from ANY
shallow_implies_deep: standard_equal (some, other) implies Result
both_or_none_void: (some = Void) implies (Result = (other = Void))
same_type: (Result and (some /= Void)) implies some.same_type (other)
symmetric: Result implies deep_equal (other, some)
end
frozen equal (some: ANY; other: like arg #1): BOOLEAN
-- Are `some' and `other' either both void or attached
-- to objects considered equal?
-- (from ANY)
do
if some = Void then
Result := other = Void
else
Result := other /= Void and then some.is_equal (other)
end
ensure -- from ANY
definition: Result = (some = Void and other = Void) or else ((some /= Void and other /= Void) and then some.is_equal (other))
end
frozen is_deep_equal (other: like Current): BOOLEAN
-- Are `Current' and `other' attached to isomorphic object structures?
-- (from ANY)
require -- from ANY
other_not_void: other /= Void
external
"built_in"
ensure -- from ANY
shallow_implies_deep: standard_is_equal (other) implies Result
same_type: Result implies same_type (other)
symmetric: Result implies other.is_deep_equal (Current)
end
frozen standard_equal (some: ANY; other: like arg #1): BOOLEAN
-- Are `some' and `other' either both void or attached to
-- field-by-field identical objects of the same type?
-- Always uses default object comparison criterion.
-- (from ANY)
do
if some = Void then
Result := other = Void
else
Result := other /= Void and then some.standard_is_equal (other)
end
ensure -- from ANY
definition: Result = (some = Void and other = Void) or else ((some /= Void and other /= Void) and then some.standard_is_equal (other))
end
frozen standard_is_equal (other: like Current): BOOLEAN
-- Is `other' attached to an object of the same type
-- as current object, and field-by-field identical to it?
-- (from ANY)
require -- from ANY
other_not_void: other /= Void
external
"built_in"
ensure -- from ANY
same_type: Result implies same_type (other)
symmetric: Result implies other.standard_is_equal (Current)
end
feature -- Status report
conforms_to (other: ANY): BOOLEAN
-- Does type of current object conform to type
-- of `other' (as per Eiffel: The Language, chapter 13)?
-- (from ANY)
require -- from ANY
other_not_void: other /= Void
external
"built_in"
end
same_type (other: ANY): BOOLEAN
-- Is type of current object identical to type of `other'?
-- (from ANY)
require -- from ANY
other_not_void: other /= Void
external
"built_in"
ensure -- from ANY
definition: Result = (conforms_to (other) and other.conforms_to (Current))
end
feature -- Status setting
set_additional_deadline_1 (an_additional_deadline: DATE)
--sets event first additional deadline
do
additional_deadline_1 := an_additional_deadline
ensure
additional_deadline_1_is_set: additional_deadline_1 = an_additional_deadline
end
set_additional_deadline_2 (an_additional_deadline: DATE)
--sets event second additional deadline
do
additional_deadline_2 := an_additional_deadline
ensure
additional_deadline_2_is_set: additional_deadline_2 = an_additional_deadline
end
set_additional_deadline_3 (an_additional_deadline: DATE)
--sets event third additional deadline
do
additional_deadline_3 := an_additional_deadline
ensure
additional_deadline_3_is_set: additional_deadline_3 = an_additional_deadline
end
set_additional_deadline_specification_1 (an_additional_deadline_specification: STRING_8)
--sets first additional_deadline_specification
do
additional_deadline_specification_1 := an_additional_deadline_specification
ensure
additional_deadline_specification_1_is_set: additional_deadline_specification_1 = an_additional_deadline_specification
end
set_additional_deadline_specification_2 (an_additional_deadline_specification: STRING_8)
--sets second additional_deadline_specification
do
additional_deadline_specification_2 := an_additional_deadline_specification
ensure
additional_deadline_specification_2_is_set: additional_deadline_specification_2 = an_additional_deadline_specification
end
set_additional_deadline_specification_3 (an_additional_deadline_specification: STRING_8)
--sets third additional_deadline_specification
do
additional_deadline_specification_3 := an_additional_deadline_specification
ensure
additional_deadline_specification_3_is_set: additional_deadline_specification_3 = an_additional_deadline_specification
end
set_additional_notes (some_additional_notes: STRING_8)
--sets third additional_deadline_specification
do
additional_notes := some_additional_notes
ensure
additional_notes_are_set: additional_notes = some_additional_notes
end
set_additional_sponsors (some_other_sponsors: ARRAYED_LIST [STRING_8])
--sets event additional_sponsors
do
additional_sponsors := some_other_sponsors
ensure
additional_sponsors_are_set: additional_sponsors = some_other_sponsors
end
set_city (a_city: STRING_8)
--sets event city
require
city_has_meaning: a_city /= Void and then (not a_city.is_empty)
do
city := a_city
ensure
city_is_set: city = a_city
end
set_conference_chair_1 (a_conference_chair: STRING_8)
--sets conference_chair_1
do
conference_chair_1 := a_conference_chair
ensure
conference_chair_1_is_set: conference_chair_1 = a_conference_chair
end
set_conference_chair_2 (a_conference_chair: STRING_8)
--sets conference_chair_2
do
conference_chair_2 := a_conference_chair
ensure
conference_chair_2_is_set: conference_chair_2 = a_conference_chair
end
set_contact_email (an_email: STRING_8)
--sets event contact email
require
contact_email_has_meaning: an_email /= Void and then (not an_email.is_empty)
do
contact_email := an_email
ensure
contact_email_is_set: contact_email = an_email
end
set_contact_name (a_contact_name: STRING_8)
--sets event contact_name
require
contact_name_has_meaning: a_contact_name /= Void and then (not a_contact_name.is_empty)
do
contact_name := a_contact_name
ensure
contact_name_is_set: contact_name = a_contact_name
end
set_contact_role (a_contact_role: STRING_8)
--sets event contact_role
require
contact_role_has_meaning: a_contact_role /= Void and then (not a_contact_role.is_empty)
do
contact_role := a_contact_role
ensure
contact_role_is_set: contact_role = a_contact_role
end
set_country (a_country: STRING_8)
--sets event country
require
country_has_meaning: a_country /= Void and then (not a_country.is_empty)
do
country := a_country
ensure
country_is_set: country = a_country
end
set_ending_date (an_ending_date: DATE)
--sets event ending date
require
ending_date_has_meaning: an_ending_date /= Void
do
ending_date := an_ending_date
ensure
ending_date_is_set: ending_date = an_ending_date
end
set_id (an_id: NATURAL_64)
--sets event id
require
an_id_has_meaning: an_id > 0
do
id := an_id
ensure
id_is_set: id = an_id
end
set_keywords (some_keywords: ARRAYED_LIST [STRING_8])
--sets event keywords
do
keywords := some_keywords
ensure
keywords_are_set: keywords = some_keywords
end
set_main_sponsor (the_main_sponsor: STRING_8)
--sets event main sponsor
require
main_sponsor_has_meaning: the_main_sponsor /= Void and then (not the_main_sponsor.is_empty)
do
main_sponsor := the_main_sponsor
ensure
main_sponsor_is_set: main_sponsor = the_main_sponsor
end
set_name (a_name: STRING_8)
--sets event name
require
name_has_meaning: a_name /= Void and then (not a_name.is_empty)
do
name := a_name
ensure
name_is_set: name = a_name
end
set_organizing_chair (an_organizing_chair: STRING_8)
--sets organizing_chair
do
organizing_chair := an_organizing_chair
ensure
organizing_chair_is_set: organizing_chair = an_organizing_chair
end
set_papers_submission_deadline (a_papers_submission_deadline: DATE)
--sets papers submission deadline
require
papers_submission_deadline_has_meaning: a_papers_submission_deadline /= Void
do
papers_submission_deadline := a_papers_submission_deadline
ensure
papers_submission_deadline_is_set: papers_submission_deadline = a_papers_submission_deadline
end
set_proceeding_type (a_type: STRING_8)
--sets conference proceedings to be at conference (True) or post conference (False)
do
proceeding_type := a_type
ensure
proceeding_type_is_set: proceeding_type = a_type
end
set_proceedings_publisher (a_proceedings_publisher: STRING_8)
--sets proceedings_publisher name
do
proceedings_publisher := a_proceedings_publisher
ensure
proceedings_publisher_is_set: proceedings_publisher = a_proceedings_publisher
end
set_program_committee_chair_1 (a_program_committee_chair: STRING_8)
--sets program_committee_chair_1
do
program_committee_chair_1 := a_program_committee_chair
ensure
program_committee_chair_1_is_set: program_committee_chair_1 = a_program_committee_chair
end
set_program_committee_chair_2 (a_program_committee_chair: STRING_8)
--sets program_committee_chair_2
do
program_committee_chair_2 := a_program_committee_chair
ensure
program_committee_chair_2_is_set: program_committee_chair_2 = a_program_committee_chair
end
set_short_description (a_description: STRING_8)
--sets event short description
do
short_description := a_description
ensure
country_is_set: short_description = a_description
end
set_starting_date (a_starting_date: DATE)
--sets event starting date
require
starting_date_has_meaning: a_starting_date /= Void
do
starting_date := a_starting_date
ensure
starting_date_is_set: starting_date = a_starting_date
end
set_status (a_status: INTEGER_32)
--sets event status of approval
do
event_status := a_status
ensure
status_of_approval_is_set: event_status = a_status
end
set_submitter (an_author: STRING_8)
--sets author
do
submitted_by := an_author
ensure
submitter_is_set: submitted_by = an_author
end
set_url (an_url: STRING_8)
--sets event url
require
url_has_meaning: an_url /= Void and then (not an_url.is_empty)
do
url := an_url
ensure
url_is_set: url = an_url
end
feature -- Duplication
frozen clone (other: ANY): like other
obsolete "Use `twin' instead."
-- Void if `other' is void; otherwise new object
-- equal to `other'
--
-- For non-void `other', clone calls copy;
-- to change copying/cloning semantics, redefine copy.
-- (from ANY)
do
if other /= Void then
Result := other.twin
end
ensure -- from ANY
equal: equal (Result, other)
end
copy (other: like Current)
-- Update current object using fields of object attached
-- to `other', so as to yield equal objects.
-- (from ANY)
require -- from ANY
other_not_void: other /= Void
type_identity: same_type (other)
external
"built_in"
ensure -- from ANY
is_equal: is_equal (other)
end
frozen deep_clone (other: ANY): like other
obsolete "Use `deep_twin' instead."
-- Void if `other' is void: otherwise, new object structure
-- recursively duplicated from the one attached to `other'
-- (from ANY)
do
if other /= Void then
Result := other.deep_twin
end
ensure -- from ANY
deep_equal: deep_equal (other, Result)
end
frozen deep_copy (other: like Current)
-- Effect equivalent to that of:
-- copy (`other' . deep_twin)
-- (from ANY)
require -- from ANY
other_not_void: other /= Void
do
copy (other.deep_twin)
ensure -- from ANY
deep_equal: deep_equal (Current, other)
end
frozen deep_twin: like Current
-- New object structure recursively duplicated from Current.
-- (from ANY)
external
"built_in"
ensure -- from ANY
deep_twin_not_void: Result /= Void
deep_equal: deep_equal (Current, Result)
end
frozen standard_clone (other: ANY): like other
obsolete "Use `standard_twin' instead."
-- Void if `other' is void; otherwise new object
-- field-by-field identical to `other'.
-- Always uses default copying semantics.
-- (from ANY)
do
if other /= Void then
Result := other.standard_twin
end
ensure -- from ANY
equal: standard_equal (Result, other)
end
frozen standard_copy (other: like Current)
-- Copy every field of `other' onto corresponding field
-- of current object.
-- (from ANY)
require -- from ANY
other_not_void: other /= Void
type_identity: same_type (other)
external
"built_in"
ensure -- from ANY
is_standard_equal: standard_is_equal (other)
end
frozen standard_twin: like Current
-- New object field-by-field identical to `other'.
-- Always uses default copying semantics.
-- (from ANY)
local
l_temp: BOOLEAN
do
l_temp := {ISE_RUNTIME}.check_assert (False)
Result ?= {ISE_RUNTIME}.c_standard_clone ($Current)
Result.standard_copy (Current)
l_temp := {ISE_RUNTIME}.check_assert (l_temp)
ensure -- from ANY
standard_twin_not_void: Result /= Void
equal: standard_equal (Result, Current)
end
frozen twin: like Current
-- New object equal to `Current'
-- twin calls copy; to change copying/twining semantics, redefine copy.
-- (from ANY)
local
l_temp: BOOLEAN
do
l_temp := {ISE_RUNTIME}.check_assert (False)
Result ?= {ISE_RUNTIME}.c_standard_clone ($Current)
Result.copy (Current)
l_temp := {ISE_RUNTIME}.check_assert (l_temp)
ensure -- from ANY
twin_not_void: Result /= Void
is_equal: Result.is_equal (Current)
end
feature -- Basic operations
frozen default: like Current
-- Default value of object's type
-- (from ANY)
do
end
frozen default_pointer: POINTER
-- Default value of type `POINTER'
-- (Avoid the need to write `p'.default for
-- some `p' of type `POINTER'.)
-- (from ANY)
do
end
default_rescue
-- Process exception for routines with no Rescue clause.
-- (Default: do nothing.)
-- (from ANY)
do
end
frozen do_nothing
-- Execute a null action.
-- (from ANY)
do
end
feature -- Output
io: STD_FILES
-- Handle to standard file setup
-- (from ANY)
once
create Result
Result.set_output_default
ensure -- from ANY
io_not_void: Result /= Void
end
out: STRING_8
-- New string containing terse printable representation
-- of current object
-- (from ANY)
do
Result := tagged_out
ensure -- from ANY
out_not_void: Result /= Void
end
print (some: ANY)
-- Write terse external representation of `some'
-- on standard output.
-- (from ANY)
do
if some /= Void then
io.put_string (some.out)
end
end
frozen tagged_out: STRING_8
-- New string containing terse printable representation
-- of current object
-- (from ANY)
external
"built_in"
ensure -- from ANY
tagged_out_not_void: Result /= Void
end
feature -- Platform
operating_environment: OPERATING_ENVIRONMENT
-- Objects available from the operating system
-- (from ANY)
once
create Result
ensure -- from ANY
operating_environment_not_void: Result /= Void
end
feature {NONE} -- Retrieval
frozen internal_correct_mismatch
-- Called from runtime to perform a proper dynamic dispatch on `correct_mismatch'
-- from MISMATCH_CORRECTOR.
-- (from ANY)
local
l_corrector: MISMATCH_CORRECTOR
l_msg: STRING_8
l_exc: EXCEPTIONS
do
l_corrector ?= Current
if l_corrector /= Void then
l_corrector.correct_mismatch
else
create l_msg.make_from_string ("Mismatch: ")
create l_exc
l_msg.append (generating_type)
l_exc.raise_retrieval_exception (l_msg)
end
end
feature -- default creation
make
local
index: INTEGER_32
do
name := ""
create starting_date.make_day_month_year (1, 1, 1111)
create ending_date.make_day_month_year (1, 1, 1111)
city := ""
country := ""
create papers_submission_deadline.make_day_month_year (1, 1, 1111)
main_sponsor := ""
url := ""
contact_name := ""
contact_email := ""
contact_role := ""
create keywords.make (5)
from
index := 1
until
index > 5
loop
keywords.extend ("")
index := index + 1
end
create additional_sponsors.make (5)
from
index := 1
until
index > 5
loop
additional_sponsors.extend ("")
index := index + 1
end
short_description := ""
conference_chair_1 := ""
conference_chair_2 := ""
program_committee_chair_1 := ""
program_committee_chair_2 := ""
organizing_chair := ""
event_status := proposed
proceedings_publisher := ""
create additional_deadline_1.make_day_month_year (1, 1, 1111)
create additional_deadline_2.make_day_month_year (1, 1, 1111)
create additional_deadline_3.make_day_month_year (1, 1, 1111)
additional_deadline_specification_1 := ""
additional_deadline_specification_2 := ""
additional_deadline_specification_3 := ""
additional_notes := ""
proceeding_type := ""
submitted_by := ""
end
feature -- event status
accepted: INTEGER_32 is unique
-- Was declared in APPLICATION_CONSTANTS with other unique constants Proposed, Rejected and Deleted.
-- (from APPLICATION_CONSTANTS)
deleted: INTEGER_32 is unique
-- Was declared in APPLICATION_CONSTANTS with other unique constants Proposed, Accepted and Rejected.
-- (from APPLICATION_CONSTANTS)
proposed: INTEGER_32 is unique
-- Was declared in APPLICATION_CONSTANTS with other unique constants Accepted, Rejected and Deleted.
-- (from APPLICATION_CONSTANTS)
rejected: INTEGER_32 is unique
-- Was declared in APPLICATION_CONSTANTS with other unique constants Proposed, Accepted and Deleted.
-- (from APPLICATION_CONSTANTS)
feature -- precreated admin account
admin_email: STRING_8 is "admin@informatics_events.org"
-- (from APPLICATION_CONSTANTS)
admin_first_name: STRING_8 is "admin"
-- (from APPLICATION_CONSTANTS)
admin_last_name: STRING_8 is ""
-- (from APPLICATION_CONSTANTS)
admin_organization: STRING_8 is "Informatics Europe / Computer Science Department, ETH Zürich"
-- (from APPLICATION_CONSTANTS)
admin_password: STRING_8 is "dummy"
-- (from APPLICATION_CONSTANTS)
admin_telephone: STRING_8 is "-"
-- (from APPLICATION_CONSTANTS)
feature -- user roles
role_administrator: INTEGER_32 is 2
-- (from APPLICATION_CONSTANTS)
role_guest: INTEGER_32 is 0
-- (from APPLICATION_CONSTANTS)
role_normal_user: INTEGER_32 is 1
-- (from APPLICATION_CONSTANTS)
feature -- user status
user_active: INTEGER_32 is unique
-- Was declared in APPLICATION_CONSTANTS with other unique constants User_suspended.
-- (from APPLICATION_CONSTANTS)
user_suspended: INTEGER_32 is unique
-- Was declared in APPLICATION_CONSTANTS with other unique constants User_active.
-- (from APPLICATION_CONSTANTS)
feature --Redefinitions
is_equal (other: like Current): BOOLEAN
-- two events are considered equal is they have the same id
require -- from ANY
other_not_void: other /= Void
do
Result := Current.id = other.id
ensure -- from ANY
symmetric: Result implies other.is_equal (Current)
consistent: standard_is_equal (other) implies Result
end
invariant
event_id_non_negative: id >= 0
-- from ANY
reflexive_equality: standard_is_equal (Current)
reflexive_conformance: conforms_to (Current)
end -- class EVENT
-- Generated by ISE Eiffel --
For more details: www.eiffel.com