⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 objecttokencontroller.java

📁 j2ee源码
💻 JAVA
字号:
/*
 * Created on 2005/11/15
 */
package com.leeman.wkexs.web.base;

import java.util.Date;
import java.util.GregorianCalendar;
import java.util.ArrayList;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;

import com.leeman.common.entity.ObjectTokenVO;
import com.leeman.common.handler.ObjectTokenHandler;
import com.leeman.common.handler.ObjectTokenHandlerHome;
import com.leeman.common.util.EjbGetter;
import com.leeman.common.data.ValueObject;
import com.leeman.common.util.DateUtils;
import com.leeman.wkexs.common.*;

/**
 * @author Dennis
 */
public class ObjectTokenController {
	
	private int tokenExpireMinutes;
	private ClientInfo clientInfo;
	private BaseCollectionCache cache;
	
	public ObjectTokenController(ClientInfo clientInfo, BaseCollectionCache cache){
		tokenExpireMinutes = 320;
		this.cache = cache;
		this.clientInfo = clientInfo;
	}
	
	public ObjectTokenVO getTableToken(String tableName, String keyValue) throws Exception
	{
		ObjectTokenVO otvo = this.createTableTokenVO(tableName, keyValue);
		return this.getToken(otvo);
	}
	
	
	public ObjectTokenVO getToken(ValueObject vo) throws Exception
	{
		ObjectTokenVO otvo = this.createObjectTokenVO(vo);
		return this.getToken(otvo);
	}
	
	public ObjectTokenVO[] getToken(ValueObject[] vo) throws Exception
	{
		if (vo != null){
			ObjectTokenVO[] otvo = new ObjectTokenVO[vo.length];
			for (int i=0; i < otvo.length; i++){
				otvo[i] = this.createObjectTokenVO(vo[i]);
			}
			return getToken(otvo);
		}
		else
		{
			return null;
		}		 
	}
	
	public ObjectTokenVO getToken(ObjectTokenVO objectTokenVO) throws Exception
	{
		ObjectTokenHandler handler = getObjectTokenHandler();
		ObjectTokenVO[] token = new ObjectTokenVO[1];
		token[0] = objectTokenVO;
		ObjectTokenVO[] inUseToken = handler.checkSetToken(token);
		handler.remove();
		if(inUseToken == null){
			cache.getObjectTokenList().add(objectTokenVO);
			return null;
		}
		else{
			return inUseToken[0];
		}
	}
	
	public ObjectTokenVO[] getToken(ObjectTokenVO[] objectTokenVO) throws Exception
	{
		ObjectTokenHandler handler = getObjectTokenHandler();
		ObjectTokenVO[] inUseToken = handler.checkSetToken(objectTokenVO);
		handler.remove();
		if(inUseToken == null){
			for (int i=0; i < objectTokenVO.length; i++ ){
				cache.getObjectTokenList().add(objectTokenVO[i]);
			}
			return null;
		}
		else{
			return inUseToken;
		}
	}
	
	public void releaseToken() throws Exception
	{
		ObjectTokenHandler handler = getObjectTokenHandler();
		ArrayList list = cache.getObjectTokenList();
		handler.releaseToken((ObjectTokenVO[])list.toArray(new ObjectTokenVO[0]));
		handler.remove();
		list.clear();
	}
		
	public ObjectTokenVO[] validateToken() throws Exception
	{
		ObjectTokenHandler handler = getObjectTokenHandler();
		ArrayList list = cache.getObjectTokenList();
		ObjectTokenVO[] notValidToken = handler.validateToken((ObjectTokenVO[])list.toArray(new ObjectTokenVO[0]));
		handler.remove();
		return notValidToken;
	}

	private ObjectTokenHandler getObjectTokenHandler() throws Exception
	{
		ObjectTokenHandlerHome home = (ObjectTokenHandlerHome)EjbGetter.getEJBHome(ObjectTokenHandler.JNDINAME, ObjectTokenHandlerHome.class);		
		ObjectTokenHandler objectTokenHandler = home.create();
		return objectTokenHandler;
	}
	
	public ObjectTokenVO createObjectTokenVO(ValueObject vo) throws Exception{
		GregorianCalendar gc = DateUtils.getGregorianCalendarInstance(DateUtils.getCurrentDateTime());
		gc.add(GregorianCalendar.MINUTE, this.tokenExpireMinutes) ;
		ObjectTokenVO otVO = new ObjectTokenVO();
		otVO.setCompany_id(clientInfo.getCompany_id());
		otVO.setUser_id(clientInfo.getUser_id());
		otVO.setProgram_id(cache.getProgram_id());
		otVO.setRecord_key(vo.getKeyValue());
		otVO.setSession_id(clientInfo.getSession_id());
		otVO.setTable_name(vo.getTable_name());
		otVO.setTable_lock("N");
		otVO.setToken_date_time(gc.getTime());
		return otVO;
	}
	
	public ObjectTokenVO createTableTokenVO(String tableName, String keyValue) throws Exception{
		GregorianCalendar gc = DateUtils.getGregorianCalendarInstance(DateUtils.getCurrentDateTime());
		gc.add(GregorianCalendar.MINUTE, this.tokenExpireMinutes) ;
		ObjectTokenVO otVO = new ObjectTokenVO();
		otVO.setCompany_id(clientInfo.getCompany_id());
		otVO.setUser_id(clientInfo.getUser_id());
		otVO.setProgram_id(cache.getProgram_id());
		otVO.setRecord_key(keyValue);
		otVO.setSession_id(clientInfo.getSession_id());
		otVO.setTable_name(tableName);
		otVO.setTable_lock("Y");
		otVO.setToken_date_time(gc.getTime());
		return otVO;
	}
		
	/**
	 * @return
	 */
	public int getTokenExpireMinutes() {
		return tokenExpireMinutes;
	}

	/**
	 * @param i
	 */
	public void setTokenExpireMinutes(int i) {
		tokenExpireMinutes = i;
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -