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

📄 uploadserviceshell.java

📁 真正的、彻底的、完全面向对象软件系统。有兴趣的加我好友
💻 JAVA
字号:
package com.jdon.jivejdon.service.imp.upload;

import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
import java.util.List;

import org.apache.log4j.Logger;

import com.jdon.container.visitor.data.SessionContext;
import com.jdon.container.visitor.data.SessionContextAcceptable;
import com.jdon.controller.events.EventModel;
import com.jdon.controller.pool.Poolable;
import com.jdon.jivejdon.Constants;
import com.jdon.jivejdon.model.UploadFile;
import com.jdon.jivejdon.repository.UploadRepository;
import com.jdon.util.UtilValidate;

public class UploadServiceShell extends UploadServiceImp implements
		SessionContextAcceptable, Poolable {
	private final static Logger logger = Logger.getLogger(UploadServiceShell.class);
	
	private final static String UPLOAD_NAME = "UPLOAD";
	  
	protected SessionContext sessionContext;

	public UploadServiceShell(UploadRepository uploadRepository) {
		super(uploadRepository);

	}
	
    /* 
     * save the uploadfile to session becuase the messageId has not produce,
     * when the message create operation is active, will call saveUploadFileToDB method
     */
    public void saveUploadFile(EventModel em) {
        UploadFile uploadFile = (UploadFile)em.getModelIF();
        logger.debug("UploadFile size =" + uploadFile.getSize());
        
        Long messageId = null;  
        if (!UtilValidate.isEmpty(uploadFile.getParentId()))
        	messageId = Long.parseLong(uploadFile.getParentId());
        
        List uploads  = getInitSession(messageId);   
        if(uploads.size() < 3){//@todo  modify it by this user's grade
        	logger.debug("add the upload ");
            uploads.add(uploadFile);
        }else if(uploads.size() >= 3){
            logger.warn("max count is three upload files" );
            em.setErrors(Constants.EXCEED_MAX_UPLOADS);
        }
    }
    
    public Collection getUploadFiles(Long messageId){
    	return getInitSession(messageId);
    }
    
    private List getInitSession(Long messageId){
    	 logger.debug("getUploadFilesFromSession, messageId=" + messageId );
    	List uploads  = (List)sessionContext.getArrtibute(UPLOAD_NAME);
        if (uploads == null){
     	    uploads = new ArrayList();
            sessionContext.setArrtibute(UPLOAD_NAME, uploads);
            logger.debug("first time init ");
            if ((messageId != null) && (messageId.longValue() != 0)){
                Collection dbList = super.getUploadFiles(messageId);                
                Iterator iter = dbList.iterator();
                while(iter.hasNext()){
                	UploadFile uploadFile = (UploadFile)iter.next();
                	uploadFile.setNew(false); //it is not new it read from persistence
                	uploads.add(uploadFile);
                }
            }
        }
        return uploads;
    }
    
  
    /** 
     * get all UploadFiles include session but not exclude the old
     */
    public Collection loadNewUploadFiles(SessionContext sessionContext){
        logger.debug(" loadUploadFiles ");
        Collection newuploads = new ArrayList();
        try {
        	List uploads  = (List)sessionContext.getArrtibute(UPLOAD_NAME);
            sessionContext.remove(UPLOAD_NAME);
            if (uploads == null)
            	return  new ArrayList();
            logger.debug(" uploads size="+ uploads.size());
            Iterator iter = uploads.iterator();
            while(iter.hasNext()){
            	UploadFile uploadFile = (UploadFile)iter.next();
            	if (uploadFile.isNew()){
            		newuploads.add(uploadFile);
            	}
            }
        } catch (Exception e) {
            logger.error(e);
        }
        return newuploads;
    }
          
    
    public void removeUploadFile(EventModel em){
        logger.debug(" uploadService.removeUploadFile ");
        UploadFile uploadFile = (UploadFile)em.getModelIF();
        String tempId = uploadFile.getTempId();
        String id = uploadFile.getId();
        List uploads  = (List)sessionContext.getArrtibute(UPLOAD_NAME);
        if (!UtilValidate.isEmpty(id)){ //if there is id, so it must be existed in db
            //delete the db
            super.removeUploadFile(em);
        }
        if (!UtilValidate.isEmpty(tempId)){
            //delete the session
            uploads.remove(Integer.parseInt(tempId));
        }        
    }
	/**
	 * @return Returns the sessionContext.
	 */
	public SessionContext getSessionContext() {
		return sessionContext;
	}

	/**
	 * @param sessionContext The sessionContext to set.
	 */
	public void setSessionContext(SessionContext sessionContext) {
		this.sessionContext = sessionContext;
	}

}

⌨️ 快捷键说明

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