DissolveSubdivisionOperation.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/DissolveSubdivisionOperation.h
22 
23  \brief Represents an dissolve operation
24  */
25 
26 #ifndef __TERRALIB_VP_INTERNAL_DISSOLVESUBDIVISIONOPERATION_H
27 #define __TERRALIB_VP_INTERNAL_DISSOLVESUBDIVISIONOPERATION_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 AbstractParameters;
41  class FeatureSet;
42 
44  {
45  public:
47  DissolveSubdivisionOperationParameters(const std::string& rowPropertyName, const std::string& columnPropertyName, bool dissolveMaxCoordinates);
49 
50  virtual bool isValid(std::string& errorMessage) override;
51 
52  void setRowPropertyName(const std::string& rowPropertyName);
53  void setColumnPropertyName(const std::string& columnPropertyName);
54  void setDissolveMaxCoordinates(bool dissolveMaxCoordinates);
55 
56  const std::string& getRowPropertyName() const;
57  const std::string& getColumnPropertyName() const;
59 
60  private:
61  std::string m_rowPropertyName;
62  std::string m_columnPropertyName;
64  };
65 
67  {
68  public:
69 
70  DissolveSubdivisionOperationCapabilities(const std::string& operationName, std::size_t numberOfInputs, std::size_t numberOfOutputs, const std::string& dataHandlerName, bool snapGeometries, bool allowCoordinateSubdivision);
71 
72  //!< Creates the parameters for this operation. If the concrete operation has specific parameters, it must override this class and instantiate the correct parameters
73  std::unique_ptr<AbstractParameters> createParameters() const override;
74  };
75 
76  /*!
77  \class DissolveOperation
78 
79  \brief Represents an dissolve operation
80  */
82  {
83  public:
84 
85  /*!
86  * \brief Constructor
87  */
89 
90  //!< Destructor
91  virtual ~DissolveSubdivisionOperation() = default;
92 
93  //!< Get the capabilities of the operation. Basically, operation will have 1 input, 1 output, and support subdivision
94  virtual std::unique_ptr<te::vp::AbstractOperationCapabilities> getCapabilities() const override;
95 
96  std::vector<te::vp::FeatureSet> executeImpl(const std::vector<te::vp::FeatureSet>& vecInput);
97  };
98 
100  {
101  public:
102 
104 
106 
107  protected:
108 
109  virtual te::vp::AbstractOperation* build() override;
110  };
111 
112  }//end namespace vp
113 }// end namespace te
114 
115 #endif // __TERRALIB_VP_INTERNAL_DISSOLVESUBDIVISIONOPERATION_H
te::vp::DissolveSubdivisionOperationParameters::m_rowPropertyName
std::string m_rowPropertyName
Definition: DissolveSubdivisionOperation.h:61
te::vp::DissolveSubdivisionOperationParameters::DissolveSubdivisionOperationParameters
DissolveSubdivisionOperationParameters()
te::vp::DissolveSubdivisionOperationParameters::setDissolveMaxCoordinates
void setDissolveMaxCoordinates(bool dissolveMaxCoordinates)
te::vp::DissolveSubdivisionOperationFactory::~DissolveSubdivisionOperationFactory
virtual ~DissolveSubdivisionOperationFactory()
te::vp::DissolveSubdivisionOperationParameters::getColumnPropertyName
const std::string & getColumnPropertyName() const
te
TerraLib.
Definition: AddressGeocodingOp.h:52
te::vp::DissolveSubdivisionOperationParameters::isValid
virtual bool isValid(std::string &errorMessage) override
It checks the parameters for the operation.
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::DissolveSubdivisionOperation
Definition: DissolveSubdivisionOperation.h:82
te::vp::DissolveSubdivisionOperationFactory
Definition: DissolveSubdivisionOperation.h:100
te::vp::DissolveSubdivisionOperationParameters::setRowPropertyName
void setRowPropertyName(const std::string &rowPropertyName)
te::vp::DissolveSubdivisionOperation::~DissolveSubdivisionOperation
virtual ~DissolveSubdivisionOperation()=default
Get the capabilities of the operation. Basically, operation will have 1 input, 1 output,...
te::vp::DissolveSubdivisionOperationParameters::m_columnPropertyName
std::string m_columnPropertyName
Definition: DissolveSubdivisionOperation.h:62
te::vp::DissolveSubdivisionOperationParameters::m_dissolveMaxCoordinates
bool m_dissolveMaxCoordinates
Definition: DissolveSubdivisionOperation.h:63
te::vp::DissolveSubdivisionOperationParameters
Definition: DissolveSubdivisionOperation.h:44
te::vp::DissolveSubdivisionOperationParameters::~DissolveSubdivisionOperationParameters
virtual ~DissolveSubdivisionOperationParameters()
te::vp::DissolveSubdivisionOperationCapabilities::createParameters
std::unique_ptr< AbstractParameters > createParameters() const override
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::DissolveSubdivisionOperation::DissolveSubdivisionOperation
DissolveSubdivisionOperation()
Constructor.
te::vp::DissolveSubdivisionOperation::getCapabilities
virtual std::unique_ptr< te::vp::AbstractOperationCapabilities > getCapabilities() const override
Makes all the necessaries adaptations to the input dataAccess to avoid duplicate column names.
te::vp::DissolveSubdivisionOperationFactory::build
virtual te::vp::AbstractOperation * build() override
Concrete factories (derived from this one) must implement this method in order to create objects.
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::DissolveSubdivisionOperationParameters::getDissolveMaxCoordinates
bool getDissolveMaxCoordinates() const
Config.h
Proxy configuration file for TerraView (see terraview_config.h).
te::vp::DissolveSubdivisionOperationParameters::DissolveSubdivisionOperationParameters
DissolveSubdivisionOperationParameters(const std::string &rowPropertyName, const std::string &columnPropertyName, bool dissolveMaxCoordinates)
te::vp::DissolveSubdivisionOperationParameters::setColumnPropertyName
void setColumnPropertyName(const std::string &columnPropertyName)
te::vp::DissolveSubdivisionOperationCapabilities
Definition: DissolveSubdivisionOperation.h:67
te::vp::AbstractOperation
Abstract class used to define an operation.
Definition: AbstractOperation.h:204
te::vp::DissolveSubdivisionOperationParameters::getRowPropertyName
const std::string & getRowPropertyName() const
te::vp::DissolveSubdivisionOperationFactory::DissolveSubdivisionOperationFactory
DissolveSubdivisionOperationFactory()
te::vp::DissolveSubdivisionOperation::executeImpl
std::vector< te::vp::FeatureSet > executeImpl(const std::vector< te::vp::FeatureSet > &vecInput)
te::vp::DissolveSubdivisionOperationCapabilities::DissolveSubdivisionOperationCapabilities
DissolveSubdivisionOperationCapabilities(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,...
AbstractOperation.h
Abstract Class to represent an abstract vector operation.