From 25cc4bd512cf7a5261131fea8e04da475d2a5764 Mon Sep 17 00:00:00 2001
From: Jan Travnicek <Jan.Travnicek@fit.cvut.cz>
Date: Sat, 15 Dec 2018 19:09:52 +0100
Subject: [PATCH] simplify abstraction design

---
 .../src/abstraction/SetAbstraction.hpp        |  4 ----
 .../src/abstraction/WrapperAbstraction.hpp    | 21 +++++++------------
 2 files changed, 7 insertions(+), 18 deletions(-)

diff --git a/alib2abstraction/src/abstraction/SetAbstraction.hpp b/alib2abstraction/src/abstraction/SetAbstraction.hpp
index 9807e8bb92..21054f0af8 100644
--- a/alib2abstraction/src/abstraction/SetAbstraction.hpp
+++ b/alib2abstraction/src/abstraction/SetAbstraction.hpp
@@ -15,11 +15,7 @@ namespace abstraction {
 
 template < class ParamType >
 class SetAbstraction : public AnyaryOperationAbstraction < ext::set < ParamType >, ParamType > {
-
 public:
-	SetAbstraction ( ) {
-	}
-
 	virtual bool run ( ) override {
 		if ( ! this->inputsReady ( ) )
 			return false;
diff --git a/alib2abstraction/src/abstraction/WrapperAbstraction.hpp b/alib2abstraction/src/abstraction/WrapperAbstraction.hpp
index fcc6403cc9..8d44f8aeb1 100644
--- a/alib2abstraction/src/abstraction/WrapperAbstraction.hpp
+++ b/alib2abstraction/src/abstraction/WrapperAbstraction.hpp
@@ -126,6 +126,13 @@ public:
 		};
 		return ext::call_on_nth < ext::type_index > ( m_params, index, callback );
 	}
+
+	virtual std::shared_ptr < abstraction::OperationAbstraction > getProxyAbstraction ( ) override {
+		if ( this->isReady ( ) )
+			return this->m_data.template get < std::shared_ptr < OperationAbstraction > > ( )->getProxyAbstraction ( );
+		else
+			throw std::domain_error ( "Proxy abstraction not avaiable before evaluation." );
+	}
 };
 
 template < class ReturnType, class ... ParamTypes >
@@ -163,13 +170,6 @@ public:
 			throw std::domain_error ( "Runtime type unknown before evaluation." );
 	}
 
-	virtual std::shared_ptr < abstraction::OperationAbstraction > getProxyAbstraction ( ) override {
-		if ( this->isReady ( ) )
-			return this->m_data.template get < std::shared_ptr < OperationAbstraction > > ( )->getProxyAbstraction ( );
-		else
-			throw std::domain_error ( "Runtime type unknown before evaluation." );
-	}
-
 };
 
 template < class ... ParamTypes >
@@ -204,13 +204,6 @@ public:
 			throw std::domain_error ( "Runtime type unknown before evaluation." );
 	}
 
-	virtual std::shared_ptr < abstraction::OperationAbstraction > getProxyAbstraction ( ) override {
-		if ( this->isReady ( ) )
-			return this->m_data.template get < std::shared_ptr < OperationAbstraction > > ( )->getProxyAbstraction ( );
-		else
-			throw std::domain_error ( "Proxy abstraction not avaiable before evaluation." );
-	}
-
 };
 
 } /* namespace abstraction */
-- 
GitLab