Rev 1782 |
Blame |
Compare with Previous |
Last modification |
View Log
| RSS feed
package pt.estgp.estgweb.domain;
import pt.estgp.estgweb.utils.Globals;
import java.io.Serializable;
import java.util.List;
/**
* Created by jorgemachado on 10/01/14.
*/
public class ProcessImpl
extends 1.5.0/docs/api/java/lang/Process.html">Process
{
public static enum ProcessState
{
OPEN,
TRANSITION,
CLOSED
}
@
1.5.0/docs/api/java/lang/Override.html">Override
public List
<String
> getOwnerRoles
() {
return null;
}
@
1.5.0/docs/api/java/lang/Override.html">Override
public 1.5.0/docs/api/java/lang/String.html">String getChoosedOwnerRole
() {
return null;
}
@
1.5.0/docs/api/java/lang/Override.html">Override
public 1.5.0/docs/api/java/io/Serializable.html">Serializable getSerializable
() {
return getId
();
}
public void setNowStateEnum
(ProcessState state
)
{
super.
setNowState(state.
name());
}
public boolean isInProcess
(User u
)
{
if(u.
getId() == getOwner
().
getId()) return true;
if(getEvents
() ==
null)
return false;
for(ProcessEvent e: getEvents
())
{
if(e.
checkIsOwnedBy(u
))
return true;
}
return false;
}
public GenericUser getLastPersonEvent
()
{
if(getLastEvent
().
getOwner() ==
null)
return getLastEvent
().
getPreviousEvent().
getOwner();
else
return getLastEvent
().
getOwner();
}
public boolean canReopen
(User user
)
{
return user.
isSuperuser() || user.
hasRole(Globals.
ROLE_PROCESSES_ADMIN) || user.
getId() == getLastEvent
().
getOwner().
getId();
}
public boolean canRemoveLastEvent
(User user
)
{
if(getLastEvent
().
getPreviousEvent() ==
null)
{
//cant delete first event
return false;
}
if(user.
isSuperuserOrAdmin())
{
return true;
}
//check if this event starts in this user looking to previous event
else if(!getLastEvent
().
isAccepted() &&
getLastEvent
().
getPreviousEvent() !=
null &&
user.
getId() == getLastEvent
().
getPreviousEvent().
getOwner().
getId())
{
return true;
}
else
{
return false;
}
}
}