private ArtefactContainer retrieveContainmentTreeArtifacts(
     final String uuid, final int depth, final boolean isRootTree) {
   final String timerId = "fetching a containment tree";
   Timer.getInstance().start(timerId);
   final Map<String, String> serializedTreeInstances = new HashMap<String, String>();
   final Repository repository =
       RepositoryMediator.getInstance().getComponent(ProtocolType.REPOSITORY_ACCESS);
   final ObjectFactory facto = ObjectFactoryHolder.getInstance();
   final ArtefactContainer artifactContainer = facto.createArtefactContainer();
   final Content uuidRetRequest = facto.createArtefactContainerContent();
   artifactContainer.setContentType(SerializationType.CONTAINMENT_TREE_UUIDS_RETRIEVAL.name());
   uuidRetRequest.setContent(uuid);
   artifactContainer.getContent().add(uuidRetRequest);
   // Send a get request (CONTAINMENT_TREE_UUIDS_RETRIEVAL) to the repository access component
   final ArtefactContainer treeUUIDContainer = repository.get(artifactContainer);
   for (final Content c : treeUUIDContainer.getContent()) {
     c.getContent();
   }
   final List<String> containementTreeUUIDs =
       ContainerTypeMapper.mapContentToStringList(treeUUIDContainer);
   System.err.println(
       "Number containemnt tree members that are part of "
           + uuid
           + ": "
           + containementTreeUUIDs.size());
   // find those instances that are in the object pool and fetch those are not from the repository
   final List<String> uuidsToFetchFromRepository =
       containementTreeUUIDs; // fetchInstancesFromObjectPool(containementTreeUUIDs,
                              // serializedTreeInstances);
   System.err.println("# fetched from the objectpool " + serializedTreeInstances.size());
   final ArtefactContainer requestContainer =
       ObjectFactoryHolder.getInstance().createArtefactContainer();
   if (!uuidsToFetchFromRepository.isEmpty()) {
     requestContainer.setContentType(SerializationType.ARTIFACT_RETRIEVAL.name());
     ContainerTypeMapper.mapToContentList(requestContainer, uuidsToFetchFromRepository);
     final ArtefactContainer responseContainer = repository.get(requestContainer);
     System.err.println("Total # fetched: " + responseContainer.getContent().size());
     final long timeTaken = Timer.getInstance().time(timerId, TimeUnit.MILLISECONDS);
     System.err.println("Time taken to fetch a containment tree (ms): " + timeTaken);
     return responseContainer;
   } else {
     return requestContainer;
   }
 }
 private List<String> getAllDependentInstanceUUIDsOf(final String uuid) {
   final Repository repository =
       RepositoryMediator.getInstance().getComponent(ProtocolType.REPOSITORY_ACCESS);
   final ArtefactContainer artifactContainer =
       ContainerTypeMapper.mapArugmentToArtefactContainerContent(
           uuid, SerializationType.DEPENDENT_INSTANCE_UUIDS);
   final ArtefactContainer resultsContainer = repository.get(artifactContainer);
   final List<String> results = ContainerTypeMapper.mapContentsToStringList(resultsContainer);
   return results;
 }
 private List<SearchResultType> searchInstanceByName(final String name) {
   final Repository repository =
       RepositoryMediator.getInstance().getComponent(ProtocolType.REPOSITORY_ACCESS);
   final ObjectFactory facto = ObjectFactoryHolder.getInstance();
   final ArtefactContainer artifactContainer = facto.createArtefactContainer();
   final List<SearchResultType> searchResults = new ArrayList<SearchResultType>();
   artifactContainer.setContentType(SerializationType.SEARCH_ARGUMENTS.name());
   final Content searchArgument = facto.createArtefactContainerContent();
   searchArgument.setContent(name);
   artifactContainer.getContent().add(searchArgument);
   final ArtefactContainer reponseContaner = repository.get(artifactContainer);
   for (final SearchResult s : reponseContaner.getSearchResult()) {
     searchResults.add(s);
   }
   return searchResults;
 }