From 1cb0b54ae6fdce3b88155eb5014d155028a1fb4b Mon Sep 17 00:00:00 2001
From: "fabian.peller-konrad@kit.edu" <fabian.peller-konrad@kit.edu>
Date: Wed, 27 Jan 2021 18:10:25 +0100
Subject: [PATCH] armem helper functions, aron legacy writers renamed

---
 .../ArMemExampleClient/ArMemExampleClient.h   |  7 ----
 .../armem/ArMemExampleClient/CMakeLists.txt   |  5 +--
 .../components/units/SpeechObserver.cpp       |  2 --
 .../components/units/SpeechObserver.h         |  2 +-
 .../libraries/armem/client/ComponentPlugin.h  |  4 +--
 .../armem/client/ReaderComponentPlugin.h      |  1 +
 .../libraries/armem/client/Writer.cpp         | 34 +++++++++++++++++++
 .../RobotAPI/libraries/armem/client/Writer.h  |  5 +++
 .../armem/client/WriterComponentPlugin.cpp    |  1 +
 .../armem/client/WriterComponentPlugin.h      |  4 +++
 .../armem/component/MemoryComponentPlugin.h   |  3 --
 .../libraries/armem/core/MemoryID.cpp         |  4 +--
 .../armem/ltm/MemoryFileSystemStorage.cpp     |  6 ++--
 .../armem/ltm/io/DiskReader/DiskReader.h      |  4 +--
 .../NlohmannJSONDiskReader.cpp                |  4 +--
 .../armem/ltm/io/DiskWriter/DiskWriter.h      |  4 +--
 .../NlohmannJSONDiskWriter.cpp                |  4 +--
 .../mns/MemoryNameSystemClientPlugin.cpp      | 21 ++++++++++++
 .../armem/mns/MemoryNameSystemClientPlugin.h  |  7 +++-
 .../libraries/armem/test/ArMemLTMTest.cpp     |  6 ++--
 .../libraries/aron/aroncore/AronDebug.h       |  4 +--
 .../libraries/aron/aroncore/CMakeLists.txt    | 16 ++++-----
 .../AronDataConverter.cpp}                    |  8 ++---
 .../AronDataConverter.h}                      |  8 ++---
 .../AronDataWriterVisitor.cpp}                | 10 +++---
 .../AronDataWriterVisitor.h}                  |  9 +++--
 .../AronTypeConverter.cpp}                    | 12 +++----
 .../AronTypeConverter.h}                      |  8 ++---
 .../AronTypeWriterVisitor.cpp}                | 14 ++++----
 .../AronTypeWriterVisitor.h}                  |  8 ++---
 .../AronPrimitiveDataNavigator.cpp            |  1 -
 .../libraries/aron/aroncore/test/aronTest.cpp |  2 +-
 32 files changed, 141 insertions(+), 87 deletions(-)
 rename source/RobotAPI/libraries/aron/aroncore/io/AronDataIO/{LegacyAronDataConverter/LegacyAronDataConverter.cpp => AronDataConverter/AronDataConverter.cpp} (88%)
 rename source/RobotAPI/libraries/aron/aroncore/io/AronDataIO/{LegacyAronDataConverter/LegacyAronDataConverter.h => AronDataConverter/AronDataConverter.h} (87%)
 rename source/RobotAPI/libraries/aron/aroncore/io/AronDataIO/{LegacyAronDataWriter/LegacyAronDataWriter.cpp => AronDataWriterVisitor/AronDataWriterVisitor.cpp} (86%)
 rename source/RobotAPI/libraries/aron/aroncore/io/AronDataIO/{LegacyAronDataWriter/LegacyAronDataWriter.h => AronDataWriterVisitor/AronDataWriterVisitor.h} (85%)
 rename source/RobotAPI/libraries/aron/aroncore/io/AronTypeIO/{LegacyAronTypeConverter/LegacyAronTypeConverter.cpp => AronTypeConverter/AronTypeConverter.cpp} (88%)
 rename source/RobotAPI/libraries/aron/aroncore/io/AronTypeIO/{LegacyAronTypeConverter/LegacyAronTypeConverter.h => AronTypeConverter/AronTypeConverter.h} (86%)
 rename source/RobotAPI/libraries/aron/aroncore/io/AronTypeIO/{LegacyAronTypeWriter/LegacyAronTypeWriter.cpp => AronTypeWriterVisitor/AronTypeWriterVisitor.cpp} (84%)
 rename source/RobotAPI/libraries/aron/aroncore/io/AronTypeIO/{LegacyAronTypeWriter/LegacyAronTypeWriter.h => AronTypeWriterVisitor/AronTypeWriterVisitor.h} (87%)

diff --git a/source/RobotAPI/components/armem/ArMemExampleClient/ArMemExampleClient.h b/source/RobotAPI/components/armem/ArMemExampleClient/ArMemExampleClient.h
index 157b8ec2f..cfa58705d 100644
--- a/source/RobotAPI/components/armem/ArMemExampleClient/ArMemExampleClient.h
+++ b/source/RobotAPI/components/armem/ArMemExampleClient/ArMemExampleClient.h
@@ -98,9 +98,7 @@ namespace armarx
 
         void run();
 
-
     private:
-
         armem::MemoryID providerID;
         armem::MemoryID entityID;
 
@@ -108,7 +106,6 @@ namespace armarx
         void example_entityUpdated(const armem::MemoryID& id);
 
         // Examples
-
         void waitForMemory();
         armem::MemoryID addProviderSegment();
 
@@ -121,9 +118,7 @@ namespace armarx
         void commitExampleData();
         void queryExampleData();
 
-
     private:
-
         armarx::RunningTask<ArMemExampleClient>::pointer_type task;
 
         armarx::DebugObserverInterfacePrx debugObserver;
@@ -131,7 +126,6 @@ namespace armarx
         std::string memoryName = "Example";
         armem::MemoryInterfacePrx memory;
 
-
         struct RemoteGuiTab : RemoteGui::Client::Tab
         {
             std::atomic_bool rebuild = false;
@@ -140,6 +134,5 @@ namespace armarx
             RemoteGui::Client::GroupBox queryResultGroup;
         };
         RemoteGuiTab tab;
-
     };
 }
diff --git a/source/RobotAPI/components/armem/ArMemExampleClient/CMakeLists.txt b/source/RobotAPI/components/armem/ArMemExampleClient/CMakeLists.txt
index 997705159..01eb7b07b 100644
--- a/source/RobotAPI/components/armem/ArMemExampleClient/CMakeLists.txt
+++ b/source/RobotAPI/components/armem/ArMemExampleClient/CMakeLists.txt
@@ -3,24 +3,21 @@ armarx_component_set_name("ArMemExampleClient")
 find_package(IVT QUIET)
 armarx_build_if(IVT_FOUND "IVT not available")
 
-
 set(COMPONENT_LIBS
     ArmarXCore ArmarXCoreInterfaces  # for DebugObserverInterface
     ArmarXGuiComponentPlugins
     RobotAPICore RobotAPIInterfaces armem
-    # RobotAPIComponentPlugins  # for ArViz and other plugins
-
     ${IVT_LIBRARIES}
 )
 
 set(SOURCES
     ArMemExampleClient.cpp
 )
+
 set(HEADERS
     ArMemExampleClient.h
 )
 
-
 armarx_add_component("${SOURCES}" "${HEADERS}")
 if (IVT_FOUND)
     target_include_directories(${ARMARX_COMPONENT_NAME} PUBLIC ${IVT_INCLUDE_DIRS})
diff --git a/source/RobotAPI/components/units/SpeechObserver.cpp b/source/RobotAPI/components/units/SpeechObserver.cpp
index 29c03c5ee..475c331a9 100644
--- a/source/RobotAPI/components/units/SpeechObserver.cpp
+++ b/source/RobotAPI/components/units/SpeechObserver.cpp
@@ -36,8 +36,6 @@ void SpeechObserver::onInitObserver()
 {
     usingTopic(getProperty<std::string>("TextToSpeechTopicName").getValue());
     usingTopic(getProperty<std::string>("TextToSpeechStateTopicName").getValue());
-
-
 }
 
 void SpeechObserver::onConnectObserver()
diff --git a/source/RobotAPI/components/units/SpeechObserver.h b/source/RobotAPI/components/units/SpeechObserver.h
index 2cf428ace..e7524e17c 100644
--- a/source/RobotAPI/components/units/SpeechObserver.h
+++ b/source/RobotAPI/components/units/SpeechObserver.h
@@ -25,7 +25,6 @@
 
 #include <ArmarXCore/observers/Observer.h>
 #include <RobotAPI/interface/observers/SpeechObserverInterface.h>
-
 #include <mutex>
 
 namespace armarx
@@ -67,6 +66,7 @@ namespace armarx
         {
             return "SpeechObserver";
         }
+
         PropertyDefinitionsPtr createPropertyDefinitions() override
         {
             return PropertyDefinitionsPtr(new SpeechObserverPropertyDefinitions(getConfigIdentifier()));
diff --git a/source/RobotAPI/libraries/armem/client/ComponentPlugin.h b/source/RobotAPI/libraries/armem/client/ComponentPlugin.h
index 2bcf857c2..50ee797fc 100644
--- a/source/RobotAPI/libraries/armem/client/ComponentPlugin.h
+++ b/source/RobotAPI/libraries/armem/client/ComponentPlugin.h
@@ -12,11 +12,12 @@
 #include <RobotAPI/libraries/armem/mns/MemoryNameSystemClientPlugin.h>
 
 
+
 namespace armarx::armem::client
 {
 
     /**
-     * @brief Utility for connecting a Memory to Ice.
+     * @brief Utility for connecting a Client via Ice to ArMem.
      */
     class ComponentPluginUser :
         virtual public ReaderComponentPluginUser,
@@ -29,7 +30,6 @@ namespace armarx::armem::client
         ~ComponentPluginUser() override;
 
     protected:
-
         void setMemory(MemoryInterfacePrx memory);
 
     };
diff --git a/source/RobotAPI/libraries/armem/client/ReaderComponentPlugin.h b/source/RobotAPI/libraries/armem/client/ReaderComponentPlugin.h
index 4ed9bea8f..9d8c9bc40 100644
--- a/source/RobotAPI/libraries/armem/client/ReaderComponentPlugin.h
+++ b/source/RobotAPI/libraries/armem/client/ReaderComponentPlugin.h
@@ -8,6 +8,7 @@
 #include <ArmarXCore/core/Component.h>
 
 // RobotAPI
+#include <RobotAPI/libraries/aron/aroncore/navigators/datanavigator/AronAllDataNavigators.h>
 #include <RobotAPI/interface/armem/MemoryInterface.h>
 #include <RobotAPI/interface/armem/MemoryListenerInterface.h>
 #include <RobotAPI/interface/armem/MemoryNameSystemInterface.h>
diff --git a/source/RobotAPI/libraries/armem/client/Writer.cpp b/source/RobotAPI/libraries/armem/client/Writer.cpp
index f50622117..f0b495216 100644
--- a/source/RobotAPI/libraries/armem/client/Writer.cpp
+++ b/source/RobotAPI/libraries/armem/client/Writer.cpp
@@ -20,6 +20,11 @@ namespace armarx::armem::client
         return addSegment(input);
     }
 
+    data::AddSegmentResult Writer::addSegment(const std::pair<std::string, std::string>& names)
+    {
+        return addSegment(names.first, names.second);
+    }
+
     data::AddSegmentResult Writer::addSegment(const data::AddSegmentInput& input)
     {
         data::AddSegmentsResult results = addSegments({input});
@@ -106,6 +111,35 @@ namespace armarx::armem::client
         return result.results.at(0);
     }
 
+    armarx::armem::MemoryID
+    Writer::commit(const armem::MemoryID& entityID, const armarx::aron::datanavigator::AronDictDataNavigatorPtr& instance)
+    {
+        std::vector<armarx::aron::datanavigator::AronDictDataNavigatorPtr> data({instance});
+        return commit(entityID, data)[0];
+    }
+
+    std::vector<armarx::armem::MemoryID>
+    Writer::commit(const armem::MemoryID& entityID, const std::vector<armarx::aron::datanavigator::AronDictDataNavigatorPtr>& data)
+    {
+        armem::Commit c;
+        armem::EntityUpdate& update = c.updates.emplace_back();
+
+        update.entityID = entityID;
+        update.timeCreated = armem::Time::now();
+        update.instancesData = data;
+
+        armem::CommitResult commitResult = commit(c);
+
+        std::vector<armarx::armem::MemoryID> ret;
+        for (const auto& res : commitResult.results)
+        {
+            ARMARX_INFO << res;
+            ret.push_back(res.snapshotID);
+        }
+
+        return ret;
+    }
+
 
     void
     Writer::setWritingMemory(WritingMemoryInterfacePrx memory)
diff --git a/source/RobotAPI/libraries/armem/client/Writer.h b/source/RobotAPI/libraries/armem/client/Writer.h
index 67e7f57d0..71f6c17fa 100644
--- a/source/RobotAPI/libraries/armem/client/Writer.h
+++ b/source/RobotAPI/libraries/armem/client/Writer.h
@@ -23,6 +23,7 @@ namespace armarx::armem::client
 
 
         data::AddSegmentResult addSegment(const std::string& coreSegmentName, const std::string& providerSegmentName);
+        data::AddSegmentResult addSegment(const std::pair<std::string, std::string>& names);
         data::AddSegmentResult addSegment(const data::AddSegmentInput& input);
         data::AddSegmentsResult addSegments(const data::AddSegmentsInput& input);
 
@@ -32,6 +33,10 @@ namespace armarx::armem::client
         CommitResult commit(const Commit& commit);
         EntityUpdateResult commit(const EntityUpdate& update);
 
+        armem::MemoryID commit(const armem::MemoryID& entityID, const armarx::aron::datanavigator::AronDictDataNavigatorPtr& instance);
+        std::vector<armarx::armem::MemoryID> commit(const armem::MemoryID& entityID, const std::vector<armarx::aron::datanavigator::AronDictDataNavigatorPtr>& data);
+
+
 
         void setWritingMemory(WritingMemoryInterfacePrx memory);
 
diff --git a/source/RobotAPI/libraries/armem/client/WriterComponentPlugin.cpp b/source/RobotAPI/libraries/armem/client/WriterComponentPlugin.cpp
index 5ed4dc1f7..ca49975e0 100644
--- a/source/RobotAPI/libraries/armem/client/WriterComponentPlugin.cpp
+++ b/source/RobotAPI/libraries/armem/client/WriterComponentPlugin.cpp
@@ -31,3 +31,4 @@ armarx::armem::client::WriterComponentPluginUser::setWritingMemory(WritingMemory
 {
     memoryWriter.setWritingMemory(memory);
 }
+
diff --git a/source/RobotAPI/libraries/armem/client/WriterComponentPlugin.h b/source/RobotAPI/libraries/armem/client/WriterComponentPlugin.h
index 4f3eeb3bd..3278399c4 100644
--- a/source/RobotAPI/libraries/armem/client/WriterComponentPlugin.h
+++ b/source/RobotAPI/libraries/armem/client/WriterComponentPlugin.h
@@ -5,6 +5,7 @@
 #include <ArmarXCore/core/Component.h>
 
 // RobotAPI
+#include <RobotAPI/libraries/aron/aroncore/navigators/datanavigator/AronAllDataNavigators.h>
 #include <RobotAPI/interface/armem/MemoryInterface.h>
 #include <RobotAPI/interface/armem/MemoryNameSystemInterface.h>
 #include <RobotAPI/libraries/armem/client/Writer.h>
@@ -40,6 +41,9 @@ namespace armarx::armem::client
 
         void setWritingMemory(WritingMemoryInterfacePrx memory);
 
+        armem::MemoryID commitSingleSnapshot(const armem::MemoryID& entityID, const armarx::aron::datanavigator::AronDictDataNavigatorPtr& data);
+        std::vector<armarx::armem::MemoryID> commitMultipleSnapshot(const armem::MemoryID& entityID, const std::vector<armarx::aron::datanavigator::AronDictDataNavigatorPtr>& data);
+
     protected:
 
         Writer memoryWriter;
diff --git a/source/RobotAPI/libraries/armem/component/MemoryComponentPlugin.h b/source/RobotAPI/libraries/armem/component/MemoryComponentPlugin.h
index 82aaf5bc8..43e0705b9 100644
--- a/source/RobotAPI/libraries/armem/component/MemoryComponentPlugin.h
+++ b/source/RobotAPI/libraries/armem/component/MemoryComponentPlugin.h
@@ -18,7 +18,6 @@ namespace armarx::armem
     class MemoryComponentPluginUser;
 }
 
-
 namespace armarx::armem::plugins
 {
 
@@ -97,6 +96,4 @@ namespace armarx::armem
 
 
     };
-
-
 }
diff --git a/source/RobotAPI/libraries/armem/core/MemoryID.cpp b/source/RobotAPI/libraries/armem/core/MemoryID.cpp
index 493a7fb2c..961683624 100644
--- a/source/RobotAPI/libraries/armem/core/MemoryID.cpp
+++ b/source/RobotAPI/libraries/armem/core/MemoryID.cpp
@@ -130,14 +130,14 @@ namespace armarx::armem
     MemoryID MemoryID::getCoreSegmentID() const
     {
         MemoryID id = getMemoryID();
-        id.providerSegmentName = providerSegmentName;
+        id.coreSegmentName = coreSegmentName;
         return id;
     }
 
     MemoryID MemoryID::getProviderSegmentID() const
     {
         MemoryID id = getCoreSegmentID();
-        id.coreSegmentName = coreSegmentName;
+        id.providerSegmentName = providerSegmentName;
         return id;
     }
 
diff --git a/source/RobotAPI/libraries/armem/ltm/MemoryFileSystemStorage.cpp b/source/RobotAPI/libraries/armem/ltm/MemoryFileSystemStorage.cpp
index dd9fb2bce..bc88b2ccd 100644
--- a/source/RobotAPI/libraries/armem/ltm/MemoryFileSystemStorage.cpp
+++ b/source/RobotAPI/libraries/armem/ltm/MemoryFileSystemStorage.cpp
@@ -2,9 +2,9 @@
 
 namespace armarx::armem::ltm
 {
-    MemoryFileSystemStorage::MemoryFileSystemStorage(const std::string& r, bool createFolder) :
-        writer(new io::NlohmannJSONDiskWriter(r, createFolder)),
-        reader(new io::NlohmannJSONDiskReader(r, createFolder))
+    MemoryFileSystemStorage::MemoryFileSystemStorage(const std::string& path, bool createFolder) :
+        writer(new io::NlohmannJSONDiskWriter(path, createFolder)),
+        reader(new io::NlohmannJSONDiskReader(path, createFolder))
     {
     }
 
diff --git a/source/RobotAPI/libraries/armem/ltm/io/DiskReader/DiskReader.h b/source/RobotAPI/libraries/armem/ltm/io/DiskReader/DiskReader.h
index 249b9c4aa..7276820ab 100644
--- a/source/RobotAPI/libraries/armem/ltm/io/DiskReader/DiskReader.h
+++ b/source/RobotAPI/libraries/armem/ltm/io/DiskReader/DiskReader.h
@@ -36,10 +36,10 @@
 #include <RobotAPI/libraries/aron/aroncore/navigators/datanavigator/AronAllDataNavigators.h>
 #include <RobotAPI/libraries/aron/aroncore/navigators/typenavigator/AronAllTypeNavigators.h>
 
-#include <RobotAPI/libraries/aron/aroncore/io/AronDataIO/LegacyAronDataConverter/LegacyAronDataConverter.h>
+#include <RobotAPI/libraries/aron/aroncore/io/AronDataIO/AronDataConverter/AronDataConverter.h>
 #include <RobotAPI/libraries/aron/aroncore/io/AronDataIO/classWriters/NavigatorWriter/AronDataNavigatorWriter.h>
 
-#include <RobotAPI/libraries/aron/aroncore/io/AronTypeIO/LegacyAronTypeConverter/LegacyAronTypeConverter.h>
+#include <RobotAPI/libraries/aron/aroncore/io/AronTypeIO/AronTypeConverter/AronTypeConverter.h>
 #include <RobotAPI/libraries/aron/aroncore/io/AronTypeIO/classWriters/NavigatorWriter/AronTypeNavigatorWriter.h>
 
 #include <RobotAPI/libraries/armem/ltm/FileSystemLookupMemory.h>
diff --git a/source/RobotAPI/libraries/armem/ltm/io/DiskReader/NlohmannJSONDiskReader/NlohmannJSONDiskReader.cpp b/source/RobotAPI/libraries/armem/ltm/io/DiskReader/NlohmannJSONDiskReader/NlohmannJSONDiskReader.cpp
index dc9d47369..13e415e52 100644
--- a/source/RobotAPI/libraries/armem/ltm/io/DiskReader/NlohmannJSONDiskReader/NlohmannJSONDiskReader.cpp
+++ b/source/RobotAPI/libraries/armem/ltm/io/DiskReader/NlohmannJSONDiskReader/NlohmannJSONDiskReader.cpp
@@ -19,7 +19,7 @@ namespace armarx::armem::ltm::io
     {
         aron::io::AronDataNlohmannJSONReader dataReader(s);
         aron::io::AronDataNavigatorWriter navWriter;
-        aron::io::LegacyAronDataConverter::ConvertFromReader(dataReader, navWriter, expectedStructure);
+        aron::io::AronDataConverter::ConvertFromReader(dataReader, navWriter, expectedStructure);
         return aron::datanavigator::AronDictDataNavigator::DynamicCastAndCheck(navWriter.getResult());
     }
 
@@ -27,7 +27,7 @@ namespace armarx::armem::ltm::io
     {
         aron::io::AronTypeNlohmannJSONReader typeReader(s);
         aron::io::AronTypeNavigatorWriter navWriter;
-        aron::io::LegacyAronTypeConverter::ConvertFromReader(typeReader, navWriter);
+        aron::io::AronTypeConverter::ConvertFromReader(typeReader, navWriter);
         return aron::typenavigator::AronObjectTypeNavigator::DynamicCastAndCheck(navWriter.getResult());
     }
 }
diff --git a/source/RobotAPI/libraries/armem/ltm/io/DiskWriter/DiskWriter.h b/source/RobotAPI/libraries/armem/ltm/io/DiskWriter/DiskWriter.h
index acb38e1f8..5ab8b545d 100644
--- a/source/RobotAPI/libraries/armem/ltm/io/DiskWriter/DiskWriter.h
+++ b/source/RobotAPI/libraries/armem/ltm/io/DiskWriter/DiskWriter.h
@@ -36,9 +36,9 @@
 #include <RobotAPI/libraries/aron/aroncore/navigators/datanavigator/AronAllDataNavigators.h>
 #include <RobotAPI/libraries/aron/aroncore/navigators/typenavigator/AronAllTypeNavigators.h>
 
-#include <RobotAPI/libraries/aron/aroncore/io/AronDataIO/LegacyAronDataWriter/LegacyAronDataWriter.h>
+#include <RobotAPI/libraries/aron/aroncore/io/AronDataIO/AronDataWriterVisitor/AronDataWriterVisitor.h>
 #include <RobotAPI/libraries/aron/aroncore/io/AronDataIO/AronDataWriter.h>
-#include <RobotAPI/libraries/aron/aroncore/io/AronTypeIO/LegacyAronTypeWriter/LegacyAronTypeWriter.h>
+#include <RobotAPI/libraries/aron/aroncore/io/AronTypeIO/AronTypeWriterVisitor/AronTypeWriterVisitor.h>
 #include <RobotAPI/libraries/aron/aroncore/io/AronTypeIO/AronTypeWriter.h>
 
 #include <RobotAPI/libraries/armem/ltm/FileSystemLookupMemory.h>
diff --git a/source/RobotAPI/libraries/armem/ltm/io/DiskWriter/NlohmannJSONDiskWriter/NlohmannJSONDiskWriter.cpp b/source/RobotAPI/libraries/armem/ltm/io/DiskWriter/NlohmannJSONDiskWriter/NlohmannJSONDiskWriter.cpp
index ffdb1a0fb..6201e80f0 100644
--- a/source/RobotAPI/libraries/armem/ltm/io/DiskWriter/NlohmannJSONDiskWriter/NlohmannJSONDiskWriter.cpp
+++ b/source/RobotAPI/libraries/armem/ltm/io/DiskWriter/NlohmannJSONDiskWriter/NlohmannJSONDiskWriter.cpp
@@ -17,14 +17,14 @@ namespace armarx::armem::ltm::io
     std::string NlohmannJSONDiskWriter::getDataAsString(const aron::datanavigator::AronDictDataNavigatorPtr& aronDataNav) const
     {
         aron::io::AronDataNlohmannJSONWriter dataWriter;
-        aron::io::LegacyAronDataWriter::SetupWriterFromAronDataPtr(dataWriter, aronDataNav->getResult());
+        aron::io::AronDataWriterVisitor::SetupWriterFromAronDataPtr(dataWriter, aronDataNav->getResult());
         return dataWriter.getResult().dump(4);
     }
 
     std::string NlohmannJSONDiskWriter::getTypeAsString(const aron::typenavigator::AronObjectTypeNavigatorPtr& aronTypeNav) const
     {
         aron::io::AronTypeNlohmannJSONWriter typeWriter;
-        aron::io::LegacyAronTypeWriter::SetupWriterFromAronTypePtr(typeWriter, aronTypeNav->getResult());
+        aron::io::AronTypeWriterVisitor::SetupWriterFromAronTypePtr(typeWriter, aronTypeNav->getResult());
         return typeWriter.getResult().dump(4);
     }
 
diff --git a/source/RobotAPI/libraries/armem/mns/MemoryNameSystemClientPlugin.cpp b/source/RobotAPI/libraries/armem/mns/MemoryNameSystemClientPlugin.cpp
index 7a0380123..03a84cdc2 100644
--- a/source/RobotAPI/libraries/armem/mns/MemoryNameSystemClientPlugin.cpp
+++ b/source/RobotAPI/libraries/armem/mns/MemoryNameSystemClientPlugin.cpp
@@ -71,6 +71,27 @@ namespace armarx::armem::plugins
                : nullptr;
     }
 
+
+    armem::data::WaitForMemoryResult MemoryNameSystemClientPluginUser::waitForMemory(const std::string& memoryName)
+    {
+        armem::data::WaitForMemoryInput input;
+        input.name = memoryName;
+        return memoryNameSystem->waitForMemory(input);
+    }
+
+    armem::data::ResolveMemoryNameResult MemoryNameSystemClientPluginUser::resolveMemoryName(const std::string& memoryName)
+    {
+        armem::data::ResolveMemoryNameInput input;
+        input.name = memoryName;
+        return memoryNameSystem->resolveMemoryName(input);
+    }
+
+    bool MemoryNameSystemClientPluginUser::isMemoryAvailable(const std::string& memoryName)
+    {
+        armem::data::ResolveMemoryNameResult result = resolveMemoryName(memoryName);
+        return result.success && result.proxy;
+    }
+
 }
 
 
diff --git a/source/RobotAPI/libraries/armem/mns/MemoryNameSystemClientPlugin.h b/source/RobotAPI/libraries/armem/mns/MemoryNameSystemClientPlugin.h
index 9cf743eb8..a40ba2852 100644
--- a/source/RobotAPI/libraries/armem/mns/MemoryNameSystemClientPlugin.h
+++ b/source/RobotAPI/libraries/armem/mns/MemoryNameSystemClientPlugin.h
@@ -65,8 +65,13 @@ namespace armarx::armem::plugins
      */
     class MemoryNameSystemClientPluginUser
     {
-    public:
+    protected:
+
+        armem::data::WaitForMemoryResult waitForMemory(const std::string& memoryName);
+        armem::data::ResolveMemoryNameResult resolveMemoryName(const std::string& memoryName);
+        bool isMemoryAvailable(const std::string& memoryName);
 
+    public:
         /// Only set when enabled.
         MemoryNameSystemInterfacePrx memoryNameSystem = nullptr;
 
diff --git a/source/RobotAPI/libraries/armem/test/ArMemLTMTest.cpp b/source/RobotAPI/libraries/armem/test/ArMemLTMTest.cpp
index f0e380172..1ddc0fd50 100644
--- a/source/RobotAPI/libraries/armem/test/ArMemLTMTest.cpp
+++ b/source/RobotAPI/libraries/armem/test/ArMemLTMTest.cpp
@@ -102,8 +102,8 @@ BOOST_AUTO_TEST_CASE(test_memory_heavy_setup_and_export)
     std::cout << ltm2_str << std::endl;
     BOOST_CHECK_EQUAL(ltm_str == ltm2_str, true);
 
-    //std::map<std::string, armem::MemoryPtr> loaded_memories = ltm.getInternalMemoryAsRealMemory();
-    //armem::MemoryPtr& memory2 = loaded_memories["Memory"];
+    std::map<std::string, armem::MemoryPtr> loaded_memories = ltm.getInternalMemoryAsRealMemory();
+    armem::MemoryPtr& memory2 = loaded_memories["Memory"];
 
-    //BOOST_CHECK_EQUAL(memory->equalsDeep(*memory2), true);
+    BOOST_CHECK_EQUAL(memory->equalsDeep(*memory2), true);
 }
diff --git a/source/RobotAPI/libraries/aron/aroncore/AronDebug.h b/source/RobotAPI/libraries/aron/aroncore/AronDebug.h
index 529e62f6f..aabce5011 100644
--- a/source/RobotAPI/libraries/aron/aroncore/AronDebug.h
+++ b/source/RobotAPI/libraries/aron/aroncore/AronDebug.h
@@ -33,7 +33,7 @@
 #include <RobotAPI/interface/aron.h>
 #include <RobotAPI/libraries/aron/aroncore/AronConfig.h>
 
-#include <RobotAPI/libraries/aron/aroncore/io/AronDataIO/LegacyAronDataWriter/LegacyAronDataWriter.h>
+#include <RobotAPI/libraries/aron/aroncore/io/AronDataIO/AronDataWriterVisitor/AronDataWriterVisitor.h>
 #include <RobotAPI/libraries/aron/aroncore/io/AronDataIO/classWriters/NlohmannJSONWriter/AronDataNlohmannJSONWriter.h>
 
 namespace armarx
@@ -48,7 +48,7 @@ namespace armarx
             static std::string AronDataPtrToString(const data::AronDataPtr& data)
             {
                 io::AronDataNlohmannJSONWriter w;
-                io::LegacyAronDataWriter::SetupWriterFromAronDataPtr(w, data);
+                io::AronDataWriterVisitor::SetupWriterFromAronDataPtr(w, data);
                 return w.getResult().dump(4);
             }
         };
diff --git a/source/RobotAPI/libraries/aron/aroncore/CMakeLists.txt b/source/RobotAPI/libraries/aron/aroncore/CMakeLists.txt
index c512246f2..ca62febd3 100644
--- a/source/RobotAPI/libraries/aron/aroncore/CMakeLists.txt
+++ b/source/RobotAPI/libraries/aron/aroncore/CMakeLists.txt
@@ -56,8 +56,8 @@ set(LIB_FILES
     io/AronDataIO/classReaders/NavigatorReader/AronDataNavigatorReader.cpp
     io/AronDataIO/classReaders/NlohmannJSONReader/AronDataNlohmannJSONReader.cpp
 
-    io/AronDataIO/LegacyAronDataWriter/LegacyAronDataWriter.cpp
-    io/AronDataIO/LegacyAronDataConverter/LegacyAronDataConverter.cpp
+    io/AronDataIO/AronDataWriterVisitor/AronDataWriterVisitor.cpp
+    io/AronDataIO/AronDataConverter/AronDataConverter.cpp
 
     io/AronTypeIO/classWriters/NavigatorWriter/AronTypeNavigatorWriter.cpp
     io/AronTypeIO/classWriters/NlohmannJSONWriter/AronTypeNlohmannJSONWriter.cpp
@@ -66,8 +66,8 @@ set(LIB_FILES
     io/AronTypeIO/classReaders/NavigatorReader/AronTypeNavigatorReader.cpp
     io/AronTypeIO/classReaders/NlohmannJSONReader/AronTypeNlohmannJSONReader.cpp
 
-    io/AronTypeIO/LegacyAronTypeWriter/LegacyAronTypeWriter.cpp
-    io/AronTypeIO/LegacyAronTypeConverter/LegacyAronTypeConverter.cpp
+    io/AronTypeIO/AronTypeWriterVisitor/AronTypeWriterVisitor.cpp
+    io/AronTypeIO/AronTypeConverter/AronTypeConverter.cpp
 
     codegenerator/codeWriters/cppWriter/AronCppWriter.cpp
     codegenerator/codeWriters/cppWriter/typeSerializers/AronTypeCppSerializer.cpp
@@ -148,8 +148,8 @@ set(LIB_HEADERS
     io/AronDataIO/classReaders/NlohmannJSONReader/AronDataNlohmannJSONReaderToken.h
     io/AronDataIO/classReaders/NlohmannJSONReader/AronDataNlohmannJSONReader.h
 
-    io/AronDataIO/LegacyAronDataWriter/LegacyAronDataWriter.h
-    io/AronDataIO/LegacyAronDataConverter/LegacyAronDataConverter.h
+    io/AronDataIO/AronDataWriterVisitor/AronDataWriterVisitor.h
+    io/AronDataIO/AronDataConverter/AronDataConverter.h
 
     io/AronTypeIO/AronTypeReaderWriter.h
     io/AronTypeIO/AronTypeWriter.h
@@ -170,8 +170,8 @@ set(LIB_HEADERS
     io/AronTypeIO/classReaders/NlohmannJSONReader/AronTypeNlohmannJSONReader.h
     io/AronTypeIO/classReaders/NlohmannJSONReader/AronTypeNlohmannJSONReaderToken.h
 
-    io/AronTypeIO/LegacyAronTypeWriter/LegacyAronTypeWriter.h
-    io/AronTypeIO/LegacyAronTypeConverter/LegacyAronTypeConverter.h
+    io/AronTypeIO/AronTypeWriterVisitor/AronTypeWriterVisitor.h
+    io/AronTypeIO/AronTypeConverter/AronTypeConverter.h
 
     codegenerator/AronCppClass.h
     codegenerator/AronWriterInfo.h
diff --git a/source/RobotAPI/libraries/aron/aroncore/io/AronDataIO/LegacyAronDataConverter/LegacyAronDataConverter.cpp b/source/RobotAPI/libraries/aron/aroncore/io/AronDataIO/AronDataConverter/AronDataConverter.cpp
similarity index 88%
rename from source/RobotAPI/libraries/aron/aroncore/io/AronDataIO/LegacyAronDataConverter/LegacyAronDataConverter.cpp
rename to source/RobotAPI/libraries/aron/aroncore/io/AronDataIO/AronDataConverter/AronDataConverter.cpp
index 90d4359dc..0953d7721 100644
--- a/source/RobotAPI/libraries/aron/aroncore/io/AronDataIO/LegacyAronDataConverter/LegacyAronDataConverter.cpp
+++ b/source/RobotAPI/libraries/aron/aroncore/io/AronDataIO/AronDataConverter/AronDataConverter.cpp
@@ -23,7 +23,7 @@
 #include <numeric>
 
 // Header
-#include "LegacyAronDataConverter.h"
+#include "AronDataConverter.h"
 
 
 
@@ -34,7 +34,7 @@ namespace armarx
     {
         namespace io
         {
-            void LegacyAronDataConverter::ConvertFromReader(AronDataReader& reader, AronDataWriter& writer, const aron::typenavigator::AronTypeNavigatorPtr& expectedStructure)
+            void AronDataConverter::ConvertFromReader(AronDataReader& reader, AronDataWriter& writer, const aron::typenavigator::AronTypeNavigatorPtr& expectedStructure)
             {
                 AronDataDescriptor desc = reader.getTypeOfNextAron(expectedStructure != nullptr ? expectedStructure->getDescriptor() : eAronUnknownType);
                 switch (desc)
@@ -48,7 +48,7 @@ namespace armarx
                         {
                             std::string key = reader.readKey();
                             writer.writeKey(key);
-                            LegacyAronDataConverter::ConvertFromReader(reader, writer);
+                            AronDataConverter::ConvertFromReader(reader, writer);
                         }
 
                         writer.writeEndDict();
@@ -63,7 +63,7 @@ namespace armarx
 
                         for(int i = 0; i < elements; ++i)
                         {
-                            LegacyAronDataConverter::ConvertFromReader(reader, writer);
+                            AronDataConverter::ConvertFromReader(reader, writer);
                         }
 
                         writer.writeEndList();
diff --git a/source/RobotAPI/libraries/aron/aroncore/io/AronDataIO/LegacyAronDataConverter/LegacyAronDataConverter.h b/source/RobotAPI/libraries/aron/aroncore/io/AronDataIO/AronDataConverter/AronDataConverter.h
similarity index 87%
rename from source/RobotAPI/libraries/aron/aroncore/io/AronDataIO/LegacyAronDataConverter/LegacyAronDataConverter.h
rename to source/RobotAPI/libraries/aron/aroncore/io/AronDataIO/AronDataConverter/AronDataConverter.h
index b3b38e3e3..ee7912cb2 100644
--- a/source/RobotAPI/libraries/aron/aroncore/io/AronDataIO/LegacyAronDataConverter/LegacyAronDataConverter.h
+++ b/source/RobotAPI/libraries/aron/aroncore/io/AronDataIO/AronDataConverter/AronDataConverter.h
@@ -41,13 +41,13 @@ namespace armarx
     {
         namespace io
         {
-            class LegacyAronDataConverter;
-            typedef std::shared_ptr<LegacyAronDataConverter> LegacyAronDataReaderPtr;
+            class AronDataConverter;
+            typedef std::shared_ptr<AronDataConverter> AronDataConverterPtr;
 
-            class LegacyAronDataConverter
+            class AronDataConverter
             {
             private:
-                LegacyAronDataConverter() = delete;
+                AronDataConverter() = delete;
 
             public:
                 static void ConvertFromReader(AronDataReader&, AronDataWriter&, const aron::typenavigator::AronTypeNavigatorPtr& expectedStructure = nullptr);
diff --git a/source/RobotAPI/libraries/aron/aroncore/io/AronDataIO/LegacyAronDataWriter/LegacyAronDataWriter.cpp b/source/RobotAPI/libraries/aron/aroncore/io/AronDataIO/AronDataWriterVisitor/AronDataWriterVisitor.cpp
similarity index 86%
rename from source/RobotAPI/libraries/aron/aroncore/io/AronDataIO/LegacyAronDataWriter/LegacyAronDataWriter.cpp
rename to source/RobotAPI/libraries/aron/aroncore/io/AronDataIO/AronDataWriterVisitor/AronDataWriterVisitor.cpp
index d4201a143..91633187f 100644
--- a/source/RobotAPI/libraries/aron/aroncore/io/AronDataIO/LegacyAronDataWriter/LegacyAronDataWriter.cpp
+++ b/source/RobotAPI/libraries/aron/aroncore/io/AronDataIO/AronDataWriterVisitor/AronDataWriterVisitor.cpp
@@ -23,7 +23,7 @@
 #include <numeric>
 
 // Header
-#include "LegacyAronDataWriter.h"
+#include "AronDataWriterVisitor.h"
 
 // ArmarX
 #include <RobotAPI/libraries/aron/aroncore/AronResolver.h>
@@ -37,12 +37,12 @@ namespace armarx
         namespace io
         {
 
-            void LegacyAronDataWriter::SetupWriterFromAronDataPtr(AronDataWriter& writer, const datanavigator::AronDataNavigatorPtr& aron)
+            void AronDataWriterVisitor::SetupWriterFromAronDataPtr(AronDataWriter& writer, const datanavigator::AronDataNavigatorPtr& aron)
             {
                 SetupWriterFromAronDataPtr(writer, aron->getResult());
             }
 
-            void LegacyAronDataWriter::SetupWriterFromAronDataPtr(AronDataWriter& writer, const data::AronDataPtr& aron)
+            void AronDataWriterVisitor::SetupWriterFromAronDataPtr(AronDataWriter& writer, const data::AronDataPtr& aron)
             {
                 AronDataDescriptor desc = AronResolver::GetDescriptorForAronData(aron);
                 switch (desc)
@@ -54,7 +54,7 @@ namespace armarx
                         for (const auto& [key, value] : casted->elements)
                         {
                             writer.writeKey(key);
-                            LegacyAronDataWriter::SetupWriterFromAronDataPtr(writer, value);
+                            AronDataWriterVisitor::SetupWriterFromAronDataPtr(writer, value);
                         }
                         writer.writeEndDict();
                         break;
@@ -65,7 +65,7 @@ namespace armarx
                         writer.writeStartList();
                         for (const auto& value : casted->elements)
                         {
-                            LegacyAronDataWriter::SetupWriterFromAronDataPtr(writer, value);
+                            AronDataWriterVisitor::SetupWriterFromAronDataPtr(writer, value);
                         }
                         writer.writeEndList();
                         break;
diff --git a/source/RobotAPI/libraries/aron/aroncore/io/AronDataIO/LegacyAronDataWriter/LegacyAronDataWriter.h b/source/RobotAPI/libraries/aron/aroncore/io/AronDataIO/AronDataWriterVisitor/AronDataWriterVisitor.h
similarity index 85%
rename from source/RobotAPI/libraries/aron/aroncore/io/AronDataIO/LegacyAronDataWriter/LegacyAronDataWriter.h
rename to source/RobotAPI/libraries/aron/aroncore/io/AronDataIO/AronDataWriterVisitor/AronDataWriterVisitor.h
index 5bb3e3166..902e9c59e 100644
--- a/source/RobotAPI/libraries/aron/aroncore/io/AronDataIO/LegacyAronDataWriter/LegacyAronDataWriter.h
+++ b/source/RobotAPI/libraries/aron/aroncore/io/AronDataIO/AronDataWriterVisitor/AronDataWriterVisitor.h
@@ -40,14 +40,13 @@ namespace armarx
     {
         namespace io
         {
-            class LegacyAronDataWriter;
-            typedef std::shared_ptr<LegacyAronDataWriter> LegacyAronDataWriterPtr;
+            class AronDataWriterVisitor;
+            typedef std::shared_ptr<AronDataWriterVisitor> AronDataWriterVisitorPtr;
 
-            class LegacyAronDataWriter :
-                virtual public AronDataWriter
+            class AronDataWriterVisitor
             {
             private:
-                LegacyAronDataWriter() = delete;
+                AronDataWriterVisitor() = delete;
 
             public:
                 static void SetupWriterFromAronDataPtr(AronDataWriter&, const datanavigator::AronDataNavigatorPtr&);
diff --git a/source/RobotAPI/libraries/aron/aroncore/io/AronTypeIO/LegacyAronTypeConverter/LegacyAronTypeConverter.cpp b/source/RobotAPI/libraries/aron/aroncore/io/AronTypeIO/AronTypeConverter/AronTypeConverter.cpp
similarity index 88%
rename from source/RobotAPI/libraries/aron/aroncore/io/AronTypeIO/LegacyAronTypeConverter/LegacyAronTypeConverter.cpp
rename to source/RobotAPI/libraries/aron/aroncore/io/AronTypeIO/AronTypeConverter/AronTypeConverter.cpp
index cba697d87..1c6775498 100644
--- a/source/RobotAPI/libraries/aron/aroncore/io/AronTypeIO/LegacyAronTypeConverter/LegacyAronTypeConverter.cpp
+++ b/source/RobotAPI/libraries/aron/aroncore/io/AronTypeIO/AronTypeConverter/AronTypeConverter.cpp
@@ -23,7 +23,7 @@
 #include <numeric>
 
 // Header
-#include "LegacyAronTypeConverter.h"
+#include "AronTypeConverter.h"
 
 
 
@@ -34,7 +34,7 @@ namespace armarx
     {
         namespace io
         {
-            void LegacyAronTypeConverter::ConvertFromReader(AronTypeReader& reader, AronTypeWriter& writer)
+            void AronTypeConverter::ConvertFromReader(AronTypeReader& reader, AronTypeWriter& writer)
             {
                 AronTypeDescriptor desc = reader.getTypeOfNextAron();
                 switch (desc)
@@ -51,7 +51,7 @@ namespace armarx
                         {
                             std::string key = reader.readKey();
                             writer.writeKey(key);
-                            LegacyAronTypeConverter::ConvertFromReader(reader, writer);
+                            AronTypeConverter::ConvertFromReader(reader, writer);
                         }
 
                         writer.writeEndObjectType();
@@ -63,7 +63,7 @@ namespace armarx
                         reader.readStartDictType();
                         writer.writeStartDictType();
 
-                        LegacyAronTypeConverter::ConvertFromReader(reader, writer);
+                        AronTypeConverter::ConvertFromReader(reader, writer);
 
                         writer.writeEndDictType();
                         reader.readEndDictType();
@@ -76,7 +76,7 @@ namespace armarx
 
                         for(int i = 0; i < elements; ++i)
                         {
-                            LegacyAronTypeConverter::ConvertFromReader(reader, writer);
+                            AronTypeConverter::ConvertFromReader(reader, writer);
                         }
 
                         writer.writeEndTupleType();
@@ -88,7 +88,7 @@ namespace armarx
                         reader.readStartListType();
                         writer.writeStartListType();
 
-                        LegacyAronTypeConverter::ConvertFromReader(reader, writer);
+                        AronTypeConverter::ConvertFromReader(reader, writer);
 
                         writer.writeEndListType();
                         reader.readEndListType();
diff --git a/source/RobotAPI/libraries/aron/aroncore/io/AronTypeIO/LegacyAronTypeConverter/LegacyAronTypeConverter.h b/source/RobotAPI/libraries/aron/aroncore/io/AronTypeIO/AronTypeConverter/AronTypeConverter.h
similarity index 86%
rename from source/RobotAPI/libraries/aron/aroncore/io/AronTypeIO/LegacyAronTypeConverter/LegacyAronTypeConverter.h
rename to source/RobotAPI/libraries/aron/aroncore/io/AronTypeIO/AronTypeConverter/AronTypeConverter.h
index e58739ac5..133d605cb 100644
--- a/source/RobotAPI/libraries/aron/aroncore/io/AronTypeIO/LegacyAronTypeConverter/LegacyAronTypeConverter.h
+++ b/source/RobotAPI/libraries/aron/aroncore/io/AronTypeIO/AronTypeConverter/AronTypeConverter.h
@@ -41,13 +41,13 @@ namespace armarx
     {
         namespace io
         {
-            class LegacyAronTypeConverter;
-            typedef std::shared_ptr<LegacyAronTypeConverter> LegacyAronTypeReaderPtr;
+            class AronTypeConverter;
+            typedef std::shared_ptr<AronTypeConverter> AronTypeConverterPtr;
 
-            class LegacyAronTypeConverter
+            class AronTypeConverter
             {
             private:
-                LegacyAronTypeConverter() = delete;
+                AronTypeConverter() = delete;
 
             public:
                 static void ConvertFromReader(AronTypeReader&, AronTypeWriter&);
diff --git a/source/RobotAPI/libraries/aron/aroncore/io/AronTypeIO/LegacyAronTypeWriter/LegacyAronTypeWriter.cpp b/source/RobotAPI/libraries/aron/aroncore/io/AronTypeIO/AronTypeWriterVisitor/AronTypeWriterVisitor.cpp
similarity index 84%
rename from source/RobotAPI/libraries/aron/aroncore/io/AronTypeIO/LegacyAronTypeWriter/LegacyAronTypeWriter.cpp
rename to source/RobotAPI/libraries/aron/aroncore/io/AronTypeIO/AronTypeWriterVisitor/AronTypeWriterVisitor.cpp
index efd5a1218..3c3d099d8 100644
--- a/source/RobotAPI/libraries/aron/aroncore/io/AronTypeIO/LegacyAronTypeWriter/LegacyAronTypeWriter.cpp
+++ b/source/RobotAPI/libraries/aron/aroncore/io/AronTypeIO/AronTypeWriterVisitor/AronTypeWriterVisitor.cpp
@@ -23,7 +23,7 @@
 #include <numeric>
 
 // Header
-#include "LegacyAronTypeWriter.h"
+#include "AronTypeWriterVisitor.h"
 
 // ArmarX
 #include <RobotAPI/libraries/aron/aroncore/AronResolver.h>
@@ -37,12 +37,12 @@ namespace armarx
         namespace io
         {
 
-            void LegacyAronTypeWriter::SetupWriterFromAronTypePtr(AronTypeWriter& writer, const typenavigator::AronTypeNavigatorPtr& aron)
+            void AronTypeWriterVisitor::SetupWriterFromAronTypePtr(AronTypeWriter& writer, const typenavigator::AronTypeNavigatorPtr& aron)
             {
                 SetupWriterFromAronTypePtr(writer, aron->getResult());
             }
 
-            void LegacyAronTypeWriter::SetupWriterFromAronTypePtr(AronTypeWriter& writer, const type::AronTypePtr& aron)
+            void AronTypeWriterVisitor::SetupWriterFromAronTypePtr(AronTypeWriter& writer, const type::AronTypePtr& aron)
             {
                 AronTypeDescriptor desc = AronResolver::GetDescriptorForAronType(aron);
                 switch (desc)
@@ -55,7 +55,7 @@ namespace armarx
                         for (const auto& [key, value] : casted->elementTypes)
                         {
                             writer.writeKey(key);
-                            LegacyAronTypeWriter::SetupWriterFromAronTypePtr(writer, value);
+                            AronTypeWriterVisitor::SetupWriterFromAronTypePtr(writer, value);
                         }
                         writer.writeEndObjectType();
                         break;
@@ -64,7 +64,7 @@ namespace armarx
                     {
                         type::AronDictTypePtr casted = type::AronDictTypePtr::dynamicCast(aron);
                         writer.writeStartDictType();
-                        LegacyAronTypeWriter::SetupWriterFromAronTypePtr(writer, casted->acceptedType);
+                        AronTypeWriterVisitor::SetupWriterFromAronTypePtr(writer, casted->acceptedType);
                         writer.writeEndDictType();
                         break;
                     }
@@ -74,7 +74,7 @@ namespace armarx
                         writer.writeStartTupleType();
                         for (const auto& value : casted->elementTypes)
                         {
-                            LegacyAronTypeWriter::SetupWriterFromAronTypePtr(writer, value);
+                            AronTypeWriterVisitor::SetupWriterFromAronTypePtr(writer, value);
                         }
                         writer.writeEndTupleType();
                         break;
@@ -83,7 +83,7 @@ namespace armarx
                     {
                         type::AronListTypePtr casted = type::AronListTypePtr::dynamicCast(aron);
                         writer.writeStartListType();
-                        LegacyAronTypeWriter::SetupWriterFromAronTypePtr(writer, casted->acceptedType);
+                        AronTypeWriterVisitor::SetupWriterFromAronTypePtr(writer, casted->acceptedType);
                         writer.writeEndListType();
                         break;
                     }
diff --git a/source/RobotAPI/libraries/aron/aroncore/io/AronTypeIO/LegacyAronTypeWriter/LegacyAronTypeWriter.h b/source/RobotAPI/libraries/aron/aroncore/io/AronTypeIO/AronTypeWriterVisitor/AronTypeWriterVisitor.h
similarity index 87%
rename from source/RobotAPI/libraries/aron/aroncore/io/AronTypeIO/LegacyAronTypeWriter/LegacyAronTypeWriter.h
rename to source/RobotAPI/libraries/aron/aroncore/io/AronTypeIO/AronTypeWriterVisitor/AronTypeWriterVisitor.h
index d1a29bdda..234a546c6 100644
--- a/source/RobotAPI/libraries/aron/aroncore/io/AronTypeIO/LegacyAronTypeWriter/LegacyAronTypeWriter.h
+++ b/source/RobotAPI/libraries/aron/aroncore/io/AronTypeIO/AronTypeWriterVisitor/AronTypeWriterVisitor.h
@@ -40,14 +40,14 @@ namespace armarx
     {
         namespace io
         {
-            class LegacyAronTypeWriter;
-            typedef std::shared_ptr<LegacyAronTypeWriter> LegacyAronTypeWriterPtr;
+            class AronTypeWriterVisitor;
+            typedef std::shared_ptr<AronTypeWriterVisitor> AronTypeWriterVisitorPtr;
 
-            class LegacyAronTypeWriter :
+            class AronTypeWriterVisitor :
                 virtual public AronTypeWriter
             {
             private:
-                LegacyAronTypeWriter() = delete;
+                AronTypeWriterVisitor() = delete;
 
             public:
                 static void SetupWriterFromAronTypePtr(AronTypeWriter&, const typenavigator::AronTypeNavigatorPtr&);
diff --git a/source/RobotAPI/libraries/aron/aroncore/navigators/datanavigator/AronPrimitiveDataNavigator.cpp b/source/RobotAPI/libraries/aron/aroncore/navigators/datanavigator/AronPrimitiveDataNavigator.cpp
index e5d5a29c2..e51d2bfd8 100644
--- a/source/RobotAPI/libraries/aron/aroncore/navigators/datanavigator/AronPrimitiveDataNavigator.cpp
+++ b/source/RobotAPI/libraries/aron/aroncore/navigators/datanavigator/AronPrimitiveDataNavigator.cpp
@@ -47,7 +47,6 @@ namespace armarx
         AronDataNavigator(AronDataDescriptor::eAron##upperType, path), \
         aron(new data::Aron##upperType()) \
     { \
-        aron->value = {}; \
     } \
     \
     Aron##upperType##DataNavigator::Aron##upperType##DataNavigator(const lowerType& d, const AronPath& path) : \
diff --git a/source/RobotAPI/libraries/aron/aroncore/test/aronTest.cpp b/source/RobotAPI/libraries/aron/aroncore/test/aronTest.cpp
index a4bb8061f..9693f8c45 100644
--- a/source/RobotAPI/libraries/aron/aroncore/test/aronTest.cpp
+++ b/source/RobotAPI/libraries/aron/aroncore/test/aronTest.cpp
@@ -146,7 +146,7 @@ void runTestWithInstances(T& k1, T& k2)
     std::string k1_aron_json_str = k1_aron_json.dump(4);
 
     armarx::aron::io::AronDataNlohmannJSONWriter direct_json_writer_for_k1;
-    armarx::aron::io::LegacyAronDataWriter::SetupWriterFromAronDataPtr(direct_json_writer_for_k1, k1_aron);
+    armarx::aron::io::AronDataWriterVisitor::SetupWriterFromAronDataPtr(direct_json_writer_for_k1, k1_aron);
     nlohmann::json direct_k1_aron_json = direct_json_writer_for_k1.getResult();
     std::string direct_k1_aron_json_str = direct_k1_aron_json.dump(4);
     BOOST_CHECK_EQUAL((k1_aron_json_str == direct_k1_aron_json_str), true);
-- 
GitLab