package extlib.services;
import java.util.Arrays;
import java.util.List;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import com.ibm.domino.services.ServiceEngine;
import com.ibm.domino.services.ServiceException;
import com.ibm.domino.services.rest.das.view.RestViewColumn;
import com.ibm.domino.services.rest.das.view.RestViewEntry;
import com.ibm.domino.services.rest.das.view.RestViewService;
import com.ibm.domino.services.rest.das.view.RestViewXmlLegacyService;
import com.ibm.domino.services.rest.das.view.impl.DefaultViewColumn;
import com.ibm.domino.services.rest.das.view.impl.DefaultViewParameters;
import com.ibm.xsp.extlib.services.servlet.DefaultServiceFactory;
import com.ibm.xsp.extlib.services.servlet.DefaultServletFactory;
import com.ibm.xsp.extlib.services.servlet.ServiceFactory;
/**
* Servlet Factory.
*
* The servlet factory class is used to create the actual instances of the Servlets and
* dispatch the requests to them.
*/
public class ServletFactory extends DefaultServletFactory {
private static ServiceFactory createFactory() {
DefaultServiceFactory factory = new DefaultServiceFactory();
// All Contacts View
final List<RestViewColumn> allContactsColumns = Arrays.asList( (RestViewColumn)
new DefaultViewColumn("ComputedColumn") {
@Override
public Object evaluate(RestViewService service, RestViewEntry entry) throws ServiceException {
String v = entry.getColumnValue("EMail").toString();
return v.toUpperCase();
}
}
);
factory.addFactory("AllContacts", new ServiceFactory() {
public ServiceEngine createEngine(HttpServletRequest httpRequest, HttpServletResponse httpResponse) throws ServletException {
DefaultViewParameters p = new DefaultViewParameters();
p.setViewName("AllContacts");
p.setGlobalValues(DefaultViewParameters.GLOBAL_ALL);
p.setSystemColumns(DefaultViewParameters.SYSCOL_ALL);
p.setDefaultColumns(true);
p.setColumns(allContactsColumns);
// Set the default parameters
p.setStart(0);
p.setCount(4);
return new RestViewXmlLegacyService(httpRequest,httpResponse,p);
}
});
return factory;
}
public ServletFactory() {
super("services","Extension Library Services Servlet",createFactory());
}
}