indexing
description: "File name abstraction"
status: "See notice at end of class"
date: "$Date$"
revision: "$Revision$"
class interface
FILE_NAME
create
make
PATH_NAME
make_from_string (p: STRING)
p
PATH_NAME
ensure PATH_NAME
valid_file_name: is_valid
make_temporary_name
feature
make
PATH_NAME
make_from_string (p: STRING)
p
PATH_NAME
ensure PATH_NAME
valid_file_name: is_valid
feature
is_equal (other: like Current): BOOLEAN
other
PATH_NAME
require ANY
other_not_void: other /= void
ensure ANY
symmetric: Result implies other.is_equal (Current)
consistent: standard_is_equal (other) implies Result
ensure then COMPARABLE
trichotomy: Result = (not (Current < other) and not (other < Current))
feature
is_directory_name_valid (dir_name: STRING): BOOLEAN
dir_name
PATH_NAME
require PATH_NAME
exists: dir_name /= void
is_extension_valid (ext: STRING): BOOLEAN
ext
is_file_name_valid (f_name: STRING): BOOLEAN
f_name
is_valid: BOOLEAN
is_volume_name_valid (vol_name: STRING): BOOLEAN
vol_name
PATH_NAME
require PATH_NAME
exists: vol_name /= void
feature
is_empty: BOOLEAN
FINITE
feature
add_extension (ext: STRING)
ext
require
string_exists: ext /= void
non_empty_extension: not ext.is_empty
valid_extension: is_extension_valid (ext)
extend (directory_name: STRING)
directory_name
PATH_NAMEset_subdirectory
PATH_NAME
require PATH_NAME
string_exists: directory_name /= void
valid_directory_name: is_directory_name_valid (directory_name)
ensure PATH_NAME
valid_file_name: is_valid
extend_from_array (directories: ARRAY [STRING])
directories
PATH_NAME
require PATH_NAME
array_exists: directories /= void and then not (directories.is_empty)
ensure PATH_NAME
valid_file_name: is_valid
set_directory (directory_name: STRING)
directory_name
PATH_NAME
require PATH_NAME
string_exists: directory_name /= void
valid_directory_name: is_directory_name_valid (directory_name)
ensure PATH_NAME
valid_file_name: is_valid
set_file_name (file_name: STRING)
require
string_exists: file_name /= void
valid_file_name: is_file_name_valid (file_name)
ensure
valid_file_name: is_valid
set_subdirectory (directory_name: STRING)
directory_name
PATH_NAMEextend
PATH_NAME
require PATH_NAME
string_exists: directory_name /= void
valid_directory_name: is_directory_name_valid (directory_name)
ensure PATH_NAME
valid_file_name: is_valid
set_volume (volume_name: STRING)
volume_name
PATH_NAME
require PATH_NAME
string_exists: volume_name /= void
valid_volume_name: is_volume_name_valid (volume_name)
empty_path_name: is_empty
ensure PATH_NAME
valid_file_name: is_valid
feature
wipe_out
STRING
require COLLECTION
prunable
ensure COLLECTION
wiped_out: is_empty
ensure then STRING
is_empty: count = 0
empty_capacity: capacity = 0
feature
frozen to_c: ANY
STRING
invariant
ANY
reflexive_equality: standard_is_equal (Current)
reflexive_conformance: conforms_to (Current)
STRING
extendible: extendible
compare_character: not object_comparison
index_set_has_same_count: index_set.count = count
INDEXABLE
index_set_not_void: index_set /= void
RESIZABLE
increase_by_at_least_one: minimal_increase >= 1
BOUNDED
valid_count: count <= capacity
full_definition: full = (count = capacity)
FINITE
empty_definition: is_empty = (count = 0)
non_negative_count: count >= 0
COMPARABLE
irreflexive_comparison: not (Current < Current)
indexing
library: "[
EiffelBase: Library of reusable components for Eiffel.
]"
status: "[
Copyright 1986-2001 Interactive Software Engineering (ISE).
For ISE customers the original versions are an ISE product
covered by the ISE Eiffel license and support agreements.
]"
license: "[
EiffelBase may now be used by anyone as FREE SOFTWARE to
develop any product, public-domain or commercial, without
payment to ISE, under the terms of the ISE Free Eiffel Library
License (IFELL) at http://eiffel.com/products/base/license.html.
]"
source: "[
Interactive Software Engineering Inc.
ISE Building
360 Storke Road, Goleta, CA 93117 USA
Telephone 805-685-1006, Fax 805-685-6869
Electronic mail <info@eiffel.com>
Customer support http://support.eiffel.com
]"
info: "[
For latest info see award-winning pages: http://eiffel.com
]"
end -- FILE_NAME