src/XMLDocumentConstructor.h
branchv_0
changeset 29 06aaad12c207
parent 28 0e7c57d48d1e
child 30 f686bdaeb9e0
equal deleted inserted replaced
28:0e7c57d48d1e 29:06aaad12c207
    17 #pragma once
    17 #pragma once
    18 
    18 
    19 #include <stdexcept>
    19 #include <stdexcept>
    20 #include <libxml++-2.6/libxml++/libxml++.h>
    20 #include <libxml++-2.6/libxml++/libxml++.h>
    21 
    21 
       
    22 #include "lib/uri.h"
    22 #include "lib/INIReader.h"
    23 #include "lib/INIReader.h"
    23 #include "lib/BasicUnescapingProcessor.h"
    24 #include "lib/BasicUnescapingProcessor.h"
    24 #include "lib/BackspaceUnescapingProcessor.h"
    25 #include "lib/BackspaceUnescapingProcessor.h"
    25 #include "lib/JavaPropertiesUnescapingProcessor.h"
    26 #include "lib/JavaPropertiesUnescapingProcessor.h"
       
    27 #include "lib/JavaPropertiesDialect.h"
    26 #include "lib/XMLNameCodec.h"
    28 #include "lib/XMLNameCodec.h"
    27 
    29 
    28 using namespace relpipe::in::ini::lib;
    30 using namespace relpipe::in::ini::lib;
    29 
    31 
    30 namespace relpipe {
    32 namespace relpipe {
   110 	}
   112 	}
   111 
   113 
   112 	void process() {
   114 	void process() {
   113 		HierarchicalINIContentHandler handler(parser);
   115 		HierarchicalINIContentHandler handler(parser);
   114 		std::shared_ptr<INIReader> reader(INIReader::create(*input));
   116 		std::shared_ptr<INIReader> reader(INIReader::create(*input));
   115 		reader->addUnescapingProcessor(std::make_shared<BasicUnescapingProcessor>(), "unescape-basic", true);
   117 		reader->addUnescapingProcessor(std::make_shared<BasicUnescapingProcessor>(), unescaping::Basic, true);
   116 		reader->addUnescapingProcessor(std::make_shared<JavaPropertiesUnescapingProcessor>(), "unescape-java-properties", false);
   118 		reader->addUnescapingProcessor(std::make_shared<JavaPropertiesUnescapingProcessor>(), unescaping::JavaProperties, false);
   117 		reader->addUnescapingProcessor(std::make_shared<BackspaceUnescapingProcessor>(false), "unescape-backspace-disorder", false);
   119 		reader->addUnescapingProcessor(std::make_shared<BackspaceUnescapingProcessor>(), unescaping::Backspace, true);
   118 		reader->addUnescapingProcessor(std::make_shared<BackspaceUnescapingProcessor>(), "unescape-backspace", true);
   120 		reader->addDialect(std::make_shared<JavaPropertiesDialect>(), dialect::JavaProperties, false);
   119 		reader->addHandler(&handler);
   121 		reader->addHandler(&handler);
   120 		// TODO: smart pointers vs. references: are we going to call addUnescapingProcessor() dynamically/conditionally or share instances? Then pointers will be better.
   122 		// TODO: smart pointers vs. references: are we going to call addUnescapingProcessor() dynamically/conditionally or share instances? Then pointers will be better.
   121 		// TODO: call setOption() according to the configuration
   123 		// TODO: call setOption() according to the configuration
   122 		// for (ParserOptionRecipe option : configuration.parserOptions) reader->setOption(convertor.to_bytes(option.uri), convertor.to_bytes(option.value));
   124 		// for (ParserOptionRecipe option : configuration.parserOptions) reader->setOption(convertor.to_bytes(option.uri), convertor.to_bytes(option.value));
   123 		reader->process();
   125 		reader->process();