package com.skeleton.rest;
import org.apache.log4j.Logger;
import org.apache.struts2.rest.DefaultHttpHeaders;
import org.apache.struts2.rest.HttpHeaders;
import com.opensymphony.xwork2.ModelDriven;
/**
* The REST api class. This will serve as entry point for all rest calls to the {@link EmployeeBean} resource
* <br><br>
* Sample requests are <br>
* <ul>
* <li><code>http://localhost:8080/Struts2HelloWorld/rest/employee.xml</code></li>
* <li><code>http://localhost:8080/Struts2HelloWorld/rest/employee/1.xml</code></li>
* </ul>
*
* @author saifasif
*/
public class EmployeeBeanController implements ModelDriven<Object> {
private static final Logger log = Logger.getLogger(EmployeeBeanController.class);
/*
* Model is kept as an object since we may be returning either a single entity
* or a json of entities or even an xml
*/
private Object model;
/*
* Keep it as wrapped object
*/
private Integer id;
/**
* The index method implementation to fetch all values
*
* @return
*/
public HttpHeaders index() {
model = EmployeeBeanDAO.findAll();
return new DefaultHttpHeaders("index").disableCaching();
}
/**
* Attempt to fetch en employee via its id
*
* @return
*/
public HttpHeaders show() {
log.debug("Fetching employee with ID:" + getId());
model = EmployeeBeanDAO.findById(String.valueOf(getId()));
return new DefaultHttpHeaders("show").disableCaching();
}
@Override
public Object getModel() {
return model;
}
public Integer getId() {
return id;
}
public void setId(Integer id) {
this.id = id;
}
}