private List<String> getContentList(final List<Content> contents) { final List<String> contentList = new ArrayList<String>(); for (final Content c : contents) { contentList.add(c.getContent()); } return contentList; }
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; } }