DissolveOperation.h
Go to the documentation of this file.
1 /* Copyright (C) 2008 National Institute For Space Research (INPE) - Brazil.
2 
3  This file is part of the TerraLib - a Framework for building GIS enabled applications.
4 
5  TerraLib is free software: you can redistribute it and/or modify
6  it under the terms of the GNU Lesser General Public License as published by
7  the Free Software Foundation, either version 3 of the License,
8  or (at your option) any later version.
9 
10  TerraLib is distributed in the hope that it will be useful,
11  but WITHOUT ANY WARRANTY; without even the implied warranty of
12  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13  GNU Lesser General Public License for more details.
14 
15  You should have received a copy of the GNU Lesser General Public License
16  along with TerraLib. See COPYING. If not, write to
17  TerraLib Team at <terralib-team@terralib.org>.
18  */
19 
20  /*!
21  \file terralib/vp/DissolveOperation.h
22 
23  \brief Represents an dissolve operation
24  */
25 
26 #ifndef __TERRALIB_VP_INTERNAL_DISSOLVEOPERATION_H
27 #define __TERRALIB_VP_INTERNAL_DISSOLVEOPERATION_H
28 
29  //Terralib include files
30 #include "Config.h"
31 
32 #include "AbstractOperation.h"
33 
34 #include <vector>
35 
36 namespace te
37 {
38  namespace vp
39  {
40  class FeatureSet;
41 
43  {
44  public:
47 
48  virtual bool isValid(std::string& errorMessage) override;
49  };
50 
52  {
53  public:
54 
55  DissolveOperationCapabilities(const std::string& operationName, std::size_t numberOfInputs, std::size_t numberOfOutputs, const std::string& dataHandlerName, bool snapGeometries, bool allowCoordinateSubdivision);
56 
57  //!< Creates the parameters for this operation. If the concrete operation has specific parameters, it must override this class and instantiate the correct parameters
58  std::unique_ptr<AbstractParameters> createParameters() const override;
59  };
60 
61 
62  /*!
63  \class DissolveOperation
64 
65  \brief Represents an dissolve operation
66  */
68  {
69  public:
70 
71  /*!
72  * \brief Constructor
73  */
75 
76  //!< Destructor
77  virtual ~DissolveOperation() = default;
78 
79  //!< Get the capabilities of the operation. Basically, operation will have 1 input, 1 output, and support subdivision
80  virtual std::unique_ptr<te::vp::AbstractOperationCapabilities> getCapabilities() const;
81 
82  std::vector<te::vp::FeatureSet> executeImpl(const std::vector<te::vp::FeatureSet>& vecInput);
83  };
84 
86  {
87  public:
88 
90 
92 
93  protected:
94 
95  virtual te::vp::AbstractOperation* build() override;
96  };
97 
98  }//end namespace vp
99 }// end namespace te
100 
101 #endif // __TERRALIB_VP_INTERNAL_DISSOLVEOPERATION_H
te
TerraLib.
Definition: AddressGeocodingOp.h:52
te::vp::OperationFactory
Abstract factory used to create Operations.
Definition: AbstractOperation.h:306
te::vp::AbstractParameters
Abstract class used to define the input/ ouptut parameters for TerraAmazon Operations.
Definition: AbstractOperation.h:66
te::vp::DissolveOperationParameters::isValid
virtual bool isValid(std::string &errorMessage) override
It checks the parameters for the operation.
te::vp::DissolveOperationFactory::DissolveOperationFactory
DissolveOperationFactory()
te::vp::DissolveOperationFactory::~DissolveOperationFactory
virtual ~DissolveOperationFactory()
te::vp::DissolveOperationCapabilities
Definition: DissolveOperation.h:52
TEVPEXPORT
#define TEVPEXPORT
You can use this macro in order to export/import classes and functions from this module.
Definition: Config.h:61
te::vp::DissolveOperationParameters::~DissolveOperationParameters
virtual ~DissolveOperationParameters()
te::vp::DissolveOperationParameters::DissolveOperationParameters
DissolveOperationParameters()
te::vp::DissolveOperationCapabilities::DissolveOperationCapabilities
DissolveOperationCapabilities(const std::string &operationName, std::size_t numberOfInputs, std::size_t numberOfOutputs, const std::string &dataHandlerName, bool snapGeometries, bool allowCoordinateSubdivision)
Creates the parameters for this operation. If the concrete operation has specific parameters,...
te::vp::AbstractOperationCapabilities
Abstract class used to define the capabilities of the operation, inclusing number of inputs and outpu...
Definition: AbstractOperation.h:160
te::vp::DissolveOperation::~DissolveOperation
virtual ~DissolveOperation()=default
Get the capabilities of the operation. Basically, operation will have 1 input, 1 output,...
te::vp::DissolveOperationFactory::build
virtual te::vp::AbstractOperation * build() override
Concrete factories (derived from this one) must implement this method in order to create objects.
Config.h
Proxy configuration file for TerraView (see terraview_config.h).
te::vp::DissolveOperationParameters
Definition: DissolveOperation.h:43
te::vp::AbstractOperation
Abstract class used to define an operation.
Definition: AbstractOperation.h:204
te::vp::DissolveOperation::getCapabilities
virtual std::unique_ptr< te::vp::AbstractOperationCapabilities > getCapabilities() const
Makes all the necessaries adaptations to the input dataAccess to avoid duplicate column names.
te::vp::DissolveOperationFactory
Definition: DissolveOperation.h:86
te::vp::DissolveOperation::DissolveOperation
DissolveOperation()
Constructor.
te::vp::DissolveOperation::executeImpl
std::vector< te::vp::FeatureSet > executeImpl(const std::vector< te::vp::FeatureSet > &vecInput)
te::vp::DissolveOperation
Represents an dissolve operation.
Definition: DissolveOperation.h:68
te::vp::DissolveOperationCapabilities::createParameters
std::unique_ptr< AbstractParameters > createParameters() const override
AbstractOperation.h
Abstract Class to represent an abstract vector operation.