diff options
Diffstat (limited to 'docs')
| -rw-r--r-- | docs/class-diag.puml | 122 | 
1 files changed, 61 insertions, 61 deletions
| diff --git a/docs/class-diag.puml b/docs/class-diag.puml index 8495b16..a6fc1cf 100644 --- a/docs/class-diag.puml +++ b/docs/class-diag.puml @@ -19,49 +19,49 @@ exception Exception {  together { /' LAYOUT '/  rectangle Group_FileReading as "File reading" <<group>> { -	class FileReader <<Factory>> { -		+open(url) : FileStrategy& +	class FileReaderFactory <<Factory>> { +		+open(url) : FileReader&  	} -	interface FileStrategy { +	interface FileReader {  		+ read() : string  		+ close()  		--  		# open(string url) -		# clone() : FileStrategy* <<const>> +		# clone() : FileReader* <<const>>  	} -	class LocalFile { -		- instance : LocalFile <<static>> +	class LocalFileReader { +		- instance : LocalFileReader <<static>>  	} -	class HTTPFile { -		- instance : HTTPFile <<static>> +	class HTTPFileReader { +		- instance : HTTPFileReader <<static>>  	}  	package CPR { } -	FileStrategy <|.u. LocalFile -	FileStrategy <|.u. HTTPFile +	FileReader <|.u. LocalFileReader +	FileReader <|.u. HTTPFileReader -	FileStrategy .l> FileReader -	FileStrategy <. FileReader +	FileReader .l> FileReaderFactory +	FileReader <. FileReaderFactory -	HTTPFile -l> CPR +	HTTPFileReader -l> CPR  	' LAYOUT -	HTTPFile -r[hidden] LocalFile +	HTTPFileReader -r[hidden] LocalFileReader  }  rectangle Group_ParsingDeserialization as "Parsing & deserialization" <<group>> { -	class Parser { -		+ parse(FileStrategy &, Deserializer &) <<static>> -		+ register_strategy(ParserStrategy *) <<static>> +	class ParserFactory { +		+ parse(FileReader &, MuseumDeserializer &) <<static>> +		+ register_strategy(Parser *) <<static>>  		--  		- get_collection() : ParserCollection <<static>>  	} -	interface ParserStrategy  { -		+ parse(FileStrategy &, Deserializer &) <<static>> -		+ heuristic(FileStrategy &) : unsigned int <<static>> +	interface Parser  { +		+ parse(FileReader &, MuseumDeserializer &) <<static>> +		+ heuristic(FileReader &) : unsigned int <<static>>  	} -	ParserStrategy .> Parser -	ParserStrategy <. Parser +	Parser .> ParserFactory +	Parser <. ParserFactory  	class CSVParser  	class XMLParser @@ -69,14 +69,14 @@ rectangle Group_ParsingDeserialization as "Parsing & deserialization" <<group>>  	package pugixml { } -	CSVParser ..|> ParserStrategy -	TXTParser ..|> ParserStrategy -	XMLParser ..|> ParserStrategy +	CSVParser ..|> Parser +	TXTParser ..|> Parser +	XMLParser ..|> Parser  	XMLParser -> pugixml -	class Deserializer { -		+ Deserializer(Museum &) +	class MuseumDeserializer { +		+ MuseumDeserializer(Museum &)  		--  		+ set_canvas(CanvasData)  		+ set_tile(TileData) @@ -84,9 +84,9 @@ rectangle Group_ParsingDeserialization as "Parsing & deserialization" <<group>>  		+ add_type(type : string, Color, weight : unsigned int)  	} -	CSVParser -up-> Deserializer -	XMLParser -up-> Deserializer -	TXTParser -up-> Deserializer +	CSVParser -up-> MuseumDeserializer +	XMLParser -up-> MuseumDeserializer +	TXTParser -up-> MuseumDeserializer  	' LAYOUT  	CSVParser -r[hidden] TXTParser @@ -145,7 +145,7 @@ rectangle Group_Model as "Model" <<group>> {  	class Tile {  		+ data : TileData  		+ color : Color -		+ behavior : uniq<TileBehaviorStrategy> +		+ behavior : uniq<TileBehavior>  		+ set_data(TileData &)  		+ set_type(type : const string &)  		+ update() @@ -198,31 +198,31 @@ rectangle Group_TileAppearance as "Tile appearance" <<group>> {  		green : unsigned int  		blue : unsigned int  	} -	class TileAppearance { +	class TileColorFactory {  		+ get_color(string) : Color <<static>>  		+ register_color(string, Color) <<static>>  	}  	Tile --> Color -	Color <.. TileAppearance +	Color <.. TileColorFactory  }  rectangle Group_TileBehavior as "Tile behavior" <<group>> { -	interface TileBehaviorStrategy { +	interface TileBehavior {  		+ step(Artist *)  		+ update(Tile &) -		+ clone(Museum &) : uniq<TileBehaviorStrategy> +		+ clone(Museum &) : uniq<TileBehavior>  		-- -		# TileBehaviorStrategy(type : string) -		# TileBehaviorStrategy() +		# TileBehavior(type : string) +		# TileBehavior()  		--  		# interactions : unsigned int  		# museum : Museum *  	} -	class TileBehavior { -		+ get_strategy(string) : TileBehaviorStrategy & <<static>> -		+ register_strategy(string, TileBehaviorStrategy *) <<static>> +	class TileBehaviorFactory { +		+ get_strategy(string) : TileBehavior & <<static>> +		+ register_strategy(string, TileBehavior *) <<static>>  		--  		- get_collection() : TileBehaviorCollection & <<static>>  	} @@ -231,35 +231,35 @@ rectangle Group_TileBehavior as "Tile behavior" <<group>> {  		class NullTileBehavior {  			- type = "" <<static constexpr>>  		} -		class GrayTileBehavior { +		class StepTileBehavior {  			- type = "G" : <<static constexpr>>  		} -		class RedTileBehavior { +		class DeleteArtistTileBehavior {  			- type = "R" : <<static constexpr>>  		} -		class BlueTileBehavior { +		class SetNeighborTileBehavior {  			- type = "B" : <<static constexpr>>  			--  			- dx : int  			- dy : int  		} -		class YellowTileBehavior { +		class CreateArtistTileBehavior {  			- type = "Y" : <<static constexpr>>  			--  			- last_interactions : unsigned int  		}  	} -	TileBehaviorStrategy <|.. NullTileBehavior -	TileBehaviorStrategy <|.. GrayTileBehavior -	TileBehaviorStrategy <|.. RedTileBehavior -	TileBehaviorStrategy <|.. BlueTileBehavior -	TileBehaviorStrategy <|.. YellowTileBehavior +	TileBehavior <|.. NullTileBehavior +	TileBehavior <|.. StepTileBehavior +	TileBehavior <|.. DeleteArtistTileBehavior +	TileBehavior <|.. SetNeighborTileBehavior +	TileBehavior <|.. CreateArtistTileBehavior -	Tile --> "state" TileBehavior +	Tile --> "state" TileBehaviorFactory -	TileBehavior .l> TileBehaviorStrategy -	TileBehavior <. TileBehaviorStrategy +	TileBehaviorFactory .l> TileBehavior +	TileBehaviorFactory <. TileBehavior  }  } /' LAYOUT '/ @@ -315,28 +315,28 @@ rectangle Group_Commands as "Commands" <<group>> {  		+ Command(museum, view, controller)  	} -	class MuseumPauseCommand { +	class ToggleMuseumPauseCommand {  		+ toggle()  		+ set(paused : bool)  	}  	class OpenFileGUICommand {  		+ execute()  	} -	class ArtistVisibilityCommand { +	class ToggleArtistVisibilityCommand {  		+ toggle()  		+ set(paused : bool)  	}  	class LoadFilesCommand {  		+ execute(files)  	} -	class TileDecayCommand { +	class StepTileCommand {  		+ execute(x, y)  	} -	Command <|-u- MuseumPauseCommand +	Command <|-u- ToggleMuseumPauseCommand  	Command <|-u- OpenFileGUICommand -	Command <|-u- ArtistVisibilityCommand -	Command <|-u- TileDecayCommand +	Command <|-u- ToggleArtistVisibilityCommand +	Command <|-u- StepTileCommand  	Command <|-d- LoadFilesCommand  }  } /' LAYOUT '/ @@ -345,8 +345,8 @@ Command .[norank]> Museum  Command .[norank]> View  Command .[norank]> ViewController -ParserStrategy .l> FileStrategy -Deserializer .l> Museum +Parser .l> FileReader +MuseumDeserializer .l> Museum  Museum --> Pathfinding  Museum --> Collision @@ -355,7 +355,7 @@ ViewController -[norank]> Command  main -d-> Museum  main -u-> LoadFilesCommand -' main -[norank]> Deserializer +' main -[norank]> MuseumDeserializer  main -[norank]> View  main .r> Exception |