📄 objecttokenhandlerbean.java
字号:
package com.leeman.common.handler;
import java.util.ArrayList;
import javax.ejb.ObjectNotFoundException;
import com.leeman.common.dao.Object_Token;
import com.leeman.common.dao.Object_TokenHome;
import com.leeman.common.dao.Object_TokenKey;
import com.leeman.common.entity.ObjectTokenVO;
import com.leeman.common.util.DateUtils;
import com.leeman.common.util.EjbGetter;
/**
* Bean implementation class for Enterprise Bean: ObjectTokenHandler
*/
public class ObjectTokenHandlerBean implements javax.ejb.SessionBean {
private javax.ejb.SessionContext mySessionCtx;
/**
* getSessionContext
*/
public javax.ejb.SessionContext getSessionContext() {
return mySessionCtx;
}
/**
* setSessionContext
*/
public void setSessionContext(javax.ejb.SessionContext ctx) {
mySessionCtx = ctx;
}
/**
* ejbCreate
*/
public void ejbCreate() throws javax.ejb.CreateException {
}
/**
* ejbActivate
*/
public void ejbActivate() {
}
/**
* ejbPassivate
*/
public void ejbPassivate() {
}
/**
* ejbRemove
*/
public void ejbRemove() {
}
private Object_TokenHome getObject_TokenHome() throws javax.naming.NamingException{
return (Object_TokenHome)EjbGetter.getEJBHome(Object_Token.JNDINAME, Object_TokenHome.class);
}
public boolean setToken(ObjectTokenVO[] objectTokenVO) throws Exception
{
try{
for (int i=0; i < objectTokenVO.length; i++){
setToken(objectTokenVO[i]);
}
return true;
}
catch(Exception E){
mySessionCtx.setRollbackOnly();
return false;
}
}
public boolean setToken(ObjectTokenVO objectTokenVO) throws Exception
{
try
{
Object_Token object_Token = null;
try{
try{
object_Token = getObject_TokenHome().findTableLock(objectTokenVO.getCompany_id(), objectTokenVO.getTable_name(), "Y");
object_Token.remove();
object_Token = getObject_TokenHome().create(objectTokenVO.getCompany_id(), objectTokenVO.getRecord_key(), objectTokenVO.getTable_name());
}
catch(ObjectNotFoundException E)
{
object_Token = getObject_TokenHome().findByPrimaryKey(
new Object_TokenKey(objectTokenVO.getCompany_id(), objectTokenVO.getRecord_key(), objectTokenVO.getTable_name()));
}
}
catch(ObjectNotFoundException E){
object_Token = getObject_TokenHome().create(objectTokenVO.getCompany_id(), objectTokenVO.getRecord_key(), objectTokenVO.getTable_name());
}
object_Token.setProgram_id(objectTokenVO.getProgram_id());
object_Token.setSession_id(objectTokenVO.getSession_id());
object_Token.setTable_lock(objectTokenVO.getTable_lock());
object_Token.setToken_datetime(objectTokenVO.getToken_date_time());
object_Token.setUser_id(objectTokenVO.getUser_id());
return true;
}
catch (Exception e)
{
mySessionCtx.setRollbackOnly();
throw e;
}
}
public void releaseToken(ObjectTokenVO[] objectTokenVO) throws Exception
{
if (objectTokenVO != null)
{
for (int i=0; i < objectTokenVO.length; i++)
{
releaseToken(objectTokenVO[i]);
}
}
}
public void releaseToken(ObjectTokenVO objectTokenVO) throws Exception
{
Object_Token object_token = null;
try{
if (objectTokenVO.getTable_lock() != null && objectTokenVO.getTable_lock().equals("Y"))
{
object_token = getObject_TokenHome().findTableLock(objectTokenVO.getCompany_id(), objectTokenVO.getTable_name(), "Y");
}
else
{
object_token = getObject_TokenHome().findByUserRecordKey(objectTokenVO.getCompany_id(), objectTokenVO.getRecord_key(), objectTokenVO.getTable_name(), objectTokenVO.getSession_id());
}
object_token.remove();
}
catch(ObjectNotFoundException E){}
catch(Exception E){
System.out.println("Exception in releaseToken()");
}
}
public void releaseTableToken(String companyID, String tableName) throws Exception
{
try{
java.util.Collection tokenCollection = getObject_TokenHome().findTableToken(companyID, tableName);
ArrayList object_tokenArray = new ArrayList(tokenCollection);
for (int i =0;i < tokenCollection.size(); i ++ )
{
((Object_Token)object_tokenArray.get(i)).remove();
}
}catch(ObjectNotFoundException e){
}
}
public void releaseAllToken(String companyID, String userId, String sessionId) throws Exception
{
java.util.Collection tokenCollection = getObject_TokenHome().findUserSessionToken(companyID, userId, sessionId);
ArrayList object_tokenArray = new ArrayList(tokenCollection);
for (int i =0;i < tokenCollection.size(); i ++ )
{
((Object_Token)object_tokenArray.get(i)).remove();
}
}
public void releaseAllToken(String companyID, String userId) throws Exception
{
java.util.Collection tokenCollection = getObject_TokenHome().findUserToken(companyID, userId);
ArrayList object_tokenArray = new ArrayList(tokenCollection);
for (int i =0;i < tokenCollection.size(); i ++ )
{
((Object_Token)object_tokenArray.get(i)).remove();
}
}
/**
* Validate if user have token holded
* @param objectTokenVO
* @return Return a list of Object Token object which is not owner
* @throws Exception
*/
public boolean isUserToken(String companyID, String userId) throws Exception
{
boolean isToken = false;
java.util.Collection tokenCollection = getObject_TokenHome().findUserToken(companyID, userId);
ArrayList object_tokenArray = new ArrayList(tokenCollection);
if(tokenCollection.size()>0)
isToken = true;
return isToken;
}
/**
* Validate if the token are in database
* @param objectTokenVO
* @return Return a list of Object Token object which is not in database.
* @throws Exception
*/
public ObjectTokenVO[] validateToken(ObjectTokenVO[] objectTokenVO) throws Exception
{
ArrayList notValidTokenList = new ArrayList();
if (objectTokenVO != null)
{
for (int i=0; i < objectTokenVO.length; i++)
{
if (!validateToken(objectTokenVO[i]))
{
notValidTokenList.add(objectTokenVO[i]);
}
}
}
if (notValidTokenList.size() > 0)
{
return (ObjectTokenVO[])notValidTokenList.toArray(new ObjectTokenVO[0]);
}
else
{
return null;
}
}
/***
* check if the token is avaliable
* @param objectTokenVO
* @return if the token can be getted.
* @throws Exception
*/
public boolean validateToken(ObjectTokenVO objectTokenVO) throws Exception
{
Object_Token object_Token = null;
boolean isLocked = false;
boolean isOwner = false;
try{
try{
object_Token = getObject_TokenHome().findTableLock(objectTokenVO.getCompany_id(), objectTokenVO.getTable_name(), "Y");
}
catch(ObjectNotFoundException E)
{
if(objectTokenVO.getTable_lock() == "Y")
{
object_Token = getObject_TokenHome().findTableLock(objectTokenVO.getCompany_id(), objectTokenVO.getTable_name(), "N");
}
else
{
object_Token = getObject_TokenHome().findByPrimaryKey(new Object_TokenKey(objectTokenVO.getCompany_id(),
objectTokenVO.getRecord_key(), objectTokenVO.getTable_name()));
}
}
java.util.Date tokenDate = object_Token.getToken_datetime();
java.util.Date timeNow = DateUtils.getCurrentDateTime();
if (tokenDate != null && timeNow.before(tokenDate))
isLocked = true;
else
isLocked = false;
if (objectTokenVO.getUser_id().equals(object_Token.getUser_id()) &&
objectTokenVO.getProgram_id().equals(object_Token.getProgram_id()) &&
objectTokenVO.getSession_id().equals(object_Token.getSession_id())){
isOwner = true;
}
else{
isOwner = false;
}
}
catch(ObjectNotFoundException E)
{
isLocked = false;
isOwner = false;
}
return isLocked && isOwner;
}
/***
* check if the token is avaliable
* @param objectTokenVO
* @return the token which is in use, null if no inuse
* @throws Exception
*/
public ObjectTokenVO checkToken(ObjectTokenVO objectTokenVO) throws Exception
{
Object_Token object_Token = null;
ObjectTokenVO inUseToken = new ObjectTokenVO();
boolean isLocked = false;
boolean isOwner = false;
try{
try{
object_Token = getObject_TokenHome().findTableLock(objectTokenVO.getCompany_id(), objectTokenVO.getTable_name(), "Y");
}
catch(ObjectNotFoundException E)
{
if(objectTokenVO.getTable_lock().equals("Y"))
{
object_Token = getObject_TokenHome().findTableLock(objectTokenVO.getCompany_id(), objectTokenVO.getTable_name(), "N");
}
else
{
object_Token = getObject_TokenHome().findByPrimaryKey(new Object_TokenKey(objectTokenVO.getCompany_id(),
objectTokenVO.getRecord_key(), objectTokenVO.getTable_name()));
}
}
inUseToken.setCompany_id(objectTokenVO.getCompany_id());
inUseToken.setProgram_id(object_Token.getProgram_id());
inUseToken.setRecord_key(objectTokenVO.getRecord_key());
inUseToken.setSession_id(object_Token.getSession_id());
inUseToken.setTable_lock(object_Token.getTable_lock());
inUseToken.setTable_name(objectTokenVO.getTable_name());
inUseToken.setToken_date_time(object_Token.getToken_datetime());
inUseToken.setUser_id(object_Token.getUser_id());
java.util.Date tokenDate = object_Token.getToken_datetime();
java.util.Date timeNow = DateUtils.getCurrentDateTime();
if (tokenDate != null && timeNow.before(tokenDate))
isLocked = true;
else
isLocked = false;
if (objectTokenVO.getUser_id().equals(object_Token.getUser_id()) &&
objectTokenVO.getProgram_id().equals(object_Token.getProgram_id()) &&
objectTokenVO.getSession_id().equals(object_Token.getSession_id())){
isOwner = true;
}
else{
isOwner = false;
}
}
catch(ObjectNotFoundException E)
{
isLocked = false;
isOwner = false;
}
if (!isLocked || isOwner){
return null;
}
else
{
return inUseToken;
}
}
/***
* Try to Set an Array of Object token
* @param objectTokenVO
* @return Return the token that cannot be obtained. If return null, tokens are getted sucessfully
* @throws Exception
*/
public ObjectTokenVO[] checkSetToken(ObjectTokenVO[] objectTokenVO) throws Exception
{
ObjectTokenVO[] lockedToken = null;
boolean locked = false;
ArrayList lockedList = new ArrayList();
try{
for (int i=0; i < objectTokenVO.length; i++){
ObjectTokenVO inUseToken = checkToken(objectTokenVO[i]);
if (inUseToken == null){
if (!locked){
setToken(objectTokenVO[i]);
}
}
else{
locked = true;
lockedList.add(inUseToken);
}
}
if (locked){
lockedToken = (ObjectTokenVO[])lockedList.toArray(new ObjectTokenVO[0]);
mySessionCtx.setRollbackOnly();
return lockedToken;
}
else{
return lockedToken;
}
}
catch(Exception E){
mySessionCtx.setRollbackOnly();
E.printStackTrace();
throw new Exception("Error in getting Object Token.");
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -