LIMA
Libre Multilingual Analyzer — C++ API
Loading...
Searching...
No Matches
AnalysisLoader.cpp
Go to the documentation of this file.
1// Copyright 2002-2013 CEA LIST
2// SPDX-FileCopyrightText: 2022 CEA LIST <gael.de-chalendar@cea.fr>
3//
4// SPDX-License-Identifier: MIT
5
6/************************************************************************
7 *
8 * @file AnalysisLoader.cpp
9 * @author Romaric Besancon (romaric.besancon@cea.fr)
10 * @date Tue Jan 18 2011
11 * copyright Copyright (C) 2011 by CEA LIST
12 *
13 ***********************************************************************/
14
15#include "AnalysisLoader.h"
16
19
20namespace Lima {
21namespace LinguisticProcessing {
22
24
37
38
40m_inputFileName(),
41m_inputFileExtension(),
42m_temporaryFileMetadata()
43{
44}
45
50
51//***********************************************************************
52// constructors and destructors
58
62
63//***********************************************************************
65 Manager* /*manager*/)
66
67{
68 LOGINIT("LP::AnalysisLoader");
69 LDEBUG << "Initialization";
70
71 bool parameterFound(false);
72 try
73 {
74 m_d->m_temporaryFileMetadata = QString::fromUtf8(unitConfiguration.getParamsValueAtKey("temporaryFileMetadata").c_str());
75 parameterFound=true;
76 }
77 catch (Common::XMLConfigurationFiles::NoSuchParam& ) {} // keep default value (empty)
78
79 try {
80 m_d->m_inputFileName=QString::fromUtf8(unitConfiguration.getParamsValueAtKey("inputFile").c_str());
81 parameterFound=true;
82 }
84 }
85
86 try {
87 m_d->m_inputFileExtension=QString::fromUtf8(unitConfiguration.getParamsValueAtKey("inputSuffix").c_str());
88 parameterFound=true;
89 }
91 }
92
93 if (! parameterFound) {
94 LERROR << "No 'inputFile' or 'inputSuffix' or 'temporaryFileMetadata' parameter in AnalysisLoader";
96 }
97
98}
99
101{
102 QString inputFile;
103 if (! m_d->m_temporaryFileMetadata.isEmpty()) {
104 // get temporary filename from metadata
105 auto metadata = std::dynamic_pointer_cast<LinguisticMetaData>(analysis.getData("LinguisticMetaData"));
106 if (metadata == 0)
107 {
108 LOGINIT("LP::AnalysisLoader");
109 LERROR << "no LinguisticMetaData : cannot use 'temporaryFileMetadata' parameter for AnalysisLoader";
110 return inputFile;
111 }
112
113 inputFile = QString::fromUtf8(metadata->getMetaData(m_d->m_temporaryFileMetadata.toUtf8().constData()).c_str());
114 return inputFile;
115 }
116 else if (! m_d->m_inputFileName.isEmpty()) {
117 return m_d->m_inputFileName;
118 }
119 else if (! m_d->m_inputFileExtension.isEmpty()) {
120 // get filename from metadata
121 auto metadata = std::dynamic_pointer_cast<LinguisticMetaData>(analysis.getData("LinguisticMetaData"));
122 if (metadata == 0)
123 {
124 LOGINIT("LP::AnalysisLoader");
125 LERROR << "no LinguisticMetaData : cannot use 'inputSuffix' parameter for AnalysisLoader";
126 return inputFile;
127 }
128
129 QString textFileName = QString::fromUtf8(metadata->getMetaData("FileName").c_str());
130 inputFile = textFileName + m_d->m_inputFileExtension;
131 return inputFile;
132 }
133 LOGINIT("LP::AnalysisLoader");
134 LERROR << "No 'inputFile' found in AnalysisLoader";
135 return inputFile;
136}
137
138
139} // end namespace
140} // end namespace
#define ANALYSISLOADER_CLASSID
#define LOGINIT(X)
Definition LimaCommon.h:187
#define LDEBUG
Definition LimaCommon.h:157
#define LERROR
Definition LimaCommon.h:161
Defines a Factory to create Object of type Base.
Holds all data that pass through the ProcessUnits Analysis data are shared pointers,...
std::shared_ptr< AnalysisData > getData(const QString &id)
return AnalysisData by id
return a message when a 'param' was not found
Manage initialization of InitializableObjects using configuration module and parameters.
Use this exception to signal an error in one of the configuration files.
Definition LimaCommon.h:345
QSharedPointer< AnalysisLoaderPrivate > m_d
void init(Common::XMLConfigurationFiles::GroupConfigurationStructure &unitConfiguration, Manager *manager) override
initialize with parameters from configuration file.
QString getInputFile(AnalysisContent &analysis) const
SimpleFactory< MediaProcessUnit, AnalysisLoader > AnalysisLoaderFactory(ANALYSISLOADER_CLASSID)
NAUTITIA.