mirror of
				https://github.com/Theodor-Springmann-Stiftung/hamann-ausgabe-core.git
				synced 2025-10-31 18:25:33 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			56 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
			
		
		
	
	
			56 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
| using System;
 | |
| using HaXMLReader.EvArgs;
 | |
| using HaXMLReader.Interfaces;
 | |
| using HaDocument.Models;
 | |
| using System.Collections.Generic;
 | |
| using System.Text;
 | |
| using System.Xml;
 | |
| 
 | |
| namespace HaDocument.Reactors {
 | |
|     class LocationDefsReactor : Reactor {
 | |
|         internal Dictionary<string, Location> CreatedInstances;
 | |
| 
 | |
| 
 | |
|         // State
 | |
|         private string Index;
 | |
|         private string Name;
 | |
| 
 | |
|         internal LocationDefsReactor(IReader reader, IntermediateLibrary lib) : base(reader, lib) {
 | |
|             lib.Locations = new Dictionary<string, Location>();
 | |
|             CreatedInstances = lib.Locations;
 | |
|             reader.Tag += Listen;
 | |
|         }
 | |
| 
 | |
|         protected override void Listen(object sender, Tag tag) {
 | |
|             if (
 | |
|                 !tag.EndTag && 
 | |
|                 tag.IsEmpty &&
 | |
|                 tag.Name == "locationDef" && 
 | |
|                 !String.IsNullOrWhiteSpace(tag["index"]) &&
 | |
|                 !String.IsNullOrWhiteSpace(tag["name"])
 | |
|             ) {
 | |
|                 Activate(_reader, tag);
 | |
|             }
 | |
|         }
 | |
| 
 | |
|         protected override void Activate(IReader reader, Tag tag) {
 | |
|             if (!_active && reader != null && tag != null) {
 | |
|                 Reset();
 | |
|                 _active = true;
 | |
|                 Index = tag["index"];
 | |
|                 Name = tag["name"];
 | |
|                 Add();
 | |
|                 _active = false;
 | |
|             }
 | |
|         }
 | |
| 
 | |
|         protected override void Reset() {
 | |
|             Index = "";
 | |
|             Name = "";
 | |
|         }
 | |
| 
 | |
|         protected void Add() {
 | |
|             CreatedInstances.Add(Index, new Location(Index, Name));
 | |
|         }
 | |
|     }
 | |
| } | 
