ConfigurationParserLibrary: Difference between revisions

From EiffelStudio: an EiffelSoftware project
Jump to navigation Jump to search
Patrickr (talk | contribs)
No edit summary
Patrickr (talk | contribs)
Line 33: Line 33:
else
else
system := l_loader.last_system
system := l_loader.last_system
end
end
</code>
Storing a configuration to a file.
<code>[eiffel,n]
store_configuration (a_system: CONF_SYSTEM) is
-- Store `a_system' to its configuration file.
require
a_system_ok: a_system /= Void
do
a_system.store
if not a_system.store_successful then
display_error ("Could not store system in " + a_system.file_name)
end
end
end
end
</code>
</code>

Revision as of 22:27, 30 October 2006

General

The basic layout of a configuration system is a system that has multiple targets (which may inherit from each other), every target can have some libraries, assemblies override clusters and normal clusters. Clusters can have sub clusters.

CONF_SYSTEM

Every configuration file describes one CONF_SYSTEM and has one or more CONF_TARGET associated. Normally a CONF_SYSTEM object is generated by parsing a configuration file with CONF_LOAD.

Implementation

CONF_TARGET

CONF_LIBRARY

CONF_ASSEMBLY

CONF_CLUSTER

CONF_OVERRIDE

Retrieval and Storage

Loading a configuration from a file.

load_configuration (a_file: STRING) is
			-- Load configuration file `a_file'.
		require
			a_file_ok: a_file /= Void and then not a_file.is_empty
		local
			l_loader: CONF_LOAD
		do
			create l_loader.make (create {CONF_PARSE_FACTORY})
			l_loader.retrieve_configuration (a_file)
			if l_loader.is_error then
				display_error (l_loader.last_error)
			else
				system := l_loader.last_system
			end
		end

Storing a configuration to a file.

store_configuration (a_system: CONF_SYSTEM) is
			-- Store `a_system' to its configuration file.
		require
			a_system_ok: a_system /= Void
		do
			a_system.store
			if not a_system.store_successful then
				display_error ("Could not store system in " + a_system.file_name)
			end
		end