+namespace {
+
+void transform_not_found(std::ostream & os, string const & transform)
+{
+ os << "external::Format::readFormat. Transformation \""
+ << transform << "\" is unrecognized." << std::endl;
+}
+
+
+void transform_class_not_found(std::ostream & os, string const & tclass)
+{
+ os << "external::Format::readFormat. Transformation class \""
+ << tclass << "\" is unrecognized." << std::endl;
+}
+
+
+void setCommandFactory(Template::Format & format, string const & transform,
+ string const & transformer_class)
+{
+ bool class_found = false;
+ if (transform == "Resize" && transformer_class == "ResizeLatexCommand") {
+ class_found = true;
+ ResizeCommandFactory factory = ResizeLatexCommand::factory;
+ format.command_transformers[Resize] =
+ TransformStore(Resize, factory);
+
+ } else if (transform == "Rotate" &&
+ transformer_class == "RotationLatexCommand") {
+ class_found = true;
+ RotationCommandFactory factory = RotationLatexCommand::factory;
+ format.command_transformers[Rotate] =
+ TransformStore(Rotate, factory);
+
+ } else
+ transform_not_found(lyxerr, transform);
+
+ if (!class_found)
+ transform_class_not_found(lyxerr, transformer_class);
+}
+
+
+void setOptionFactory(Template::Format & format, string const & transform,
+ string const & transformer_class)
+{
+ bool class_found = false;
+ if (transform == "Clip" && transformer_class == "ClipLatexOption") {
+ class_found = true;
+ ClipOptionFactory factory = ClipLatexOption::factory;
+ format.option_transformers[Clip] =
+ TransformStore(Clip, factory);
+
+ } else if (transform == "Extra" && transformer_class == "ExtraOption") {
+ class_found = true;
+ ExtraOptionFactory factory = ExtraOption::factory;
+ format.option_transformers[Extra] =
+ TransformStore(Extra, factory);
+
+ } else if (transform == "Resize" &&
+ transformer_class == "ResizeLatexOption") {
+ class_found = true;
+ ResizeOptionFactory factory = ResizeLatexOption::factory;
+ format.option_transformers[Resize] =
+ TransformStore(Resize, factory);
+
+ } else if (transform == "Rotate" &&
+ transformer_class == "RotationLatexOption") {
+ class_found = true;
+ RotationOptionFactory factory = RotationLatexOption::factory;
+ format.option_transformers[Rotate] =
+ TransformStore(Rotate, factory);
+
+ } else
+ transform_not_found(lyxerr, transform);
+
+ if (!class_found)
+ transform_class_not_found(lyxerr, transformer_class);
+}
+
+} // namespace anon
+
+
+void Template::Format::readFormat(LyXLex & lex)