RepositoryResourceResponse result = new RepositoryResourceResponse();
try {
RepositoryTemplate template = getRepositoryTemplateById(getRepositoryId(request));
RepositoryBaseResource repoRes = null;
if (ProxyRepository.class.isAssignableFrom(template.getMainFacet())) {
repoRes = createProxy(template);
}
else if (HostedRepository.class.isAssignableFrom(template.getMainFacet())) {
repoRes = createHosted(template);
}
else if (ShadowRepository.class.isAssignableFrom(template.getMainFacet())) {
repoRes = createShadow(template);
}
else if (GroupRepository.class.isAssignableFrom(template.getMainFacet())) {
repoRes = new RepositoryGroupResource();
repoRes.setRepoType("group");
}
else {
// huh?
throw new ResourceException(Status.SERVER_ERROR_INTERNAL, "Unrecognized repository template with ID='"
+ template.getId() + "' and mainFacet='" + template.getMainFacet().getName() + "'!");
}
repoRes.setId(template.getId());
repoRes.setName(template.getDescription());
repoRes.setProvider(template.getRepositoryProviderHint());
repoRes.setProviderRole(template.getRepositoryProviderRole());
repoRes.setFormat(template.getContentClass().getId());
result.setData(repoRes);
}
catch (NoSuchTemplateIdException e) {
throw new ResourceException(Status.CLIENT_ERROR_NOT_FOUND, e.getMessage());