int pathIndex = workspaceURL.indexOf( request.getServletPath() );
if ( -1 != pathIndex ) {
workspaceURL = workspaceURL.substring( 0, pathIndex ) + "/";
}
Service service = abderaFactory.newService();
//service.setText("service");
Workspace workspace = abderaFactory.newWorkspace();
if ( title != null ) {
workspace.setTitle(title);
} else {
workspace.setTitle("workspace");
}
workspace.setBaseUri( new IRI( workspaceURL ));
Collection collection = workspace.addCollection("collection", href );
Feed feed = getFeed( request );
if ( feed != null ) {
String title = feed.getTitle();
if ( title != null ) {
collection.setTitle(title);
} else {
collection.setTitle("entries");
}
collection.addAccepts("application/atom+xml;type=feed");
collection.addAccepts("application/json;type=feed");
collection.addAccepts("application/atom+xml;type=entry");
collection.addAccepts("application/json;type=entry");
List<Category> categories = feed.getCategories();
if ( categories != null ) {
collection.addCategories(categories, false, null);
} else {
collection.addCategories().setFixed(false);
}
} else {
collection.setTitle("entries");
// collection.addAccepts("application/atom+xml;type=feed");
collection.addAccepts("application/atom+xml; type=entry");
collection.addAccepts("application/json;type=entry");
collection.addCategories().setFixed(false);
}
workspace.addCollection(collection);
service.addWorkspace(workspace);
//FIXME add prettyPrint support
try {
service.getDocument().writeTo(response.getOutputStream());
} catch (IOException ioe) {
throw new ServletException(ioe);
}
} else if (path == null || path.length() == 0 || path.equals("/")) {