package ch.ffhs.webE.action;
import java.util.ArrayList;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import org.apache.struts2.StrutsStatics;
import ch.ffhs.webE.dao.RelationshipTypeDAO;
import ch.ffhs.webE.domain.RelationshipType;
import com.opensymphony.xwork2.Action;
import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;
import com.opensymphony.xwork2.ModelDriven;
public class RelationshipTypeAction
extends ActionSupport
implements
ModelDriven
<RelationshipType
>
{
private static final long serialVersionUID = -3644691864156792139L
;
private RelationshipType relType =
new RelationshipType
();
private List<RelationshipType
> relTypeList =
new ArrayList<RelationshipType
>();
private final RelationshipTypeDAO relTypeDAO =
new RelationshipTypeDAO
();
public boolean edit =
false;
public boolean added =
false;
public RelationshipType savedRelType
;
@
Override
public RelationshipType getModel
()
{
return this.
relType;
}
public String addOrUpdate
()
{
this.
relTypeDAO.
saveOrUpdate(this.
relType);
return Action.
SUCCESS;
}
public String list
()
{
this.
relTypeList =
this.
relTypeDAO.
getList();
return Action.
SUCCESS;
}
public String edit
()
{
int id =
this.
getIdParameter();
String result =
Action.
ERROR;
if (id
> 0)
{
this.
relType =
this.
relTypeDAO.
getById(id
);
this.
edit =
true;
result =
Action.
SUCCESS;
}
this.
list();
return result
;
}
/**
* Gets the ID Parameter for update / delete requests
*
* @return int from the ID request. If not set or wrong, it gives back -1
*/
private int getIdParameter
()
{
HttpServletRequest request =
(HttpServletRequest
) ActionContext
.
getContext().
get(StrutsStatics.
HTTP_REQUEST);
int id = -
1;
try
{
id =
Integer.
parseInt(request.
getParameter("id"));
}
catch (Exception e
)
{
// TODO: Logging - wrong parameter set
}
return id
;
}
/**
* deletes a relationshipType, gets the ID from the id parameter that was
* submitted
*
* @return String - either success or error
*/
public String delete
()
{
int id =
this.
getIdParameter();
// Check for malicious ID values
if (id
> 0)
{
this.
relTypeDAO.
delete(id
);
return Action.
SUCCESS;
}
else
{
return Action.
ERROR;
}
}
/*
* Getters and setters
*/
public RelationshipType getRelType
()
{
return this.
relType;
}
public void setRelType
(RelationshipType relType
)
{
this.
relType = relType
;
}
public List<RelationshipType
> getRelTypeList
()
{
return this.
relTypeList;
}
public void setRelTypeList
(List<RelationshipType
> relTypeList
)
{
this.
relTypeList = relTypeList
;
}
}