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; }
public ArtefactContainer get(final ArtefactContainer artifact) throws UnsupportedOperationException { final SerializationType type = getArtefactContainerType(artifact.getContentType()); final ObjectFactory containerFactory = ObjectFactoryHolder.getInstance(); ArtefactContainer resultsContainer = containerFactory.createArtefactContainer(); switch (type) { case CONTAINMENT_TREE: resultsContainer = retrieveContainmentTree( artifact.getContent().get(0).getContent(), Integer.parseInt(artifact.getContent().get(1).getContent())); resultsContainer.setContentType(SerializationType.CONTAINMENT_TREE.name()); break; case DEPENDENT_INSTANCES: final List<String> dependentUUIDs = getAllDependentInstanceUUIDsOf(artifact.getContent().get(0).getContent()); resultsContainer.setContentType(SerializationType.DEPENDENT_INSTANCES.name()); for (final String uuid : dependentUUIDs) { final Content content = containerFactory.createArtefactContainerContent(); content.setContent(uuid); resultsContainer.getContent().add(content); } break; case SEARCH_ARGUMENTS: final List<SearchResultType> searchResults = searchInstanceByName(artifact.getContent().get(0).getContent()); resultsContainer.setContentType(SerializationType.SEARCH_ARGUMENTS.name()); final Iterator<SearchResultType> itr = searchResults.iterator(); while (itr.hasNext()) { final SearchResultType res = itr.next(); final SearchResult searchRes = ObjectFactoryHolder.getInstance().createArtefactContainerSearchResult(); searchRes.setContainerIdentity(res.getContainerIdentity()); searchRes.setInstanceIdentity(res.getInstanceIdentity()); searchRes.setMetaInstanceIdentity(res.getMetaInstanceIdentity()); resultsContainer.getSearchResult().add(searchRes); } break; default: throw new UnsupportedOperationException("This method is not yet supported"); } return resultsContainer; }