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

📄 uploadserviceimp.java

📁 JiveJdon 3.0 is the application of Jdon Framework 1.4 final.
💻 JAVA
字号:
/*
 * Copyright 2003-2006 the original author or authors.
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 * http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 * 
 */
package com.jdon.jivejdon.service.imp;

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.dao.SequenceDao;
import com.jdon.jivejdon.dao.UploadFileDao;
import com.jdon.jivejdon.model.UploadFile;
import com.jdon.jivejdon.service.UploadService;
import com.jdon.jivejdon.service.util.SessionContextUtil;
import com.jdon.util.UtilValidate;

/**
 * CRUD for upload files in Session.
 * 
 * @author <a href="mailto:banqiao@jdon.com">banq</a>
 *
 */
public class UploadServiceImp implements UploadService, SessionContextAcceptable, Poolable  {
    private final static Logger logger = Logger.getLogger(UploadServiceImp.class);
 
    
    protected SessionContext sessionContext;
    protected SessionContextUtil sessionContextUtil;
    private SequenceDao sequenceDao;
    private UploadFileDao uploadFileDao;
    
    public UploadServiceImp(SequenceDao sequenceDao, UploadFileDao uploadFileDao) {
        this.sequenceDao = sequenceDao;
        this.uploadFileDao = uploadFileDao;

    }

    /* 
     * 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("saveUploadFile to session =" + uploadFile.getDescription() );    
        logger.debug("UploadFile size =" + uploadFile.getSize());
        List uploads  = (List)sessionContext.getArrtibute(UPLOAD_NAME);
        if (uploads == null){
            uploads = new ArrayList();
            uploads.add(uploadFile);
            sessionContext.setArrtibute(UPLOAD_NAME, uploads);
        }else if(uploads.size() < 3){//we can modify by this user's grade
            uploads.add(uploadFile);
        }else{
            logger.warn("max count is three upload files" );
        }
    }
    
    public  Collection getUploadFiles(Long messageId){
       logger.debug("getUploadFiles, messageId" + messageId );    
       List list = new ArrayList();
       if (messageId.longValue() != 0){
           Collection dbList = uploadFileDao.getAdjunct(messageId);
           if (dbList != null)
               list.addAll(dbList);
       }
       List uploads  = (List)sessionContext.getArrtibute(UPLOAD_NAME);
       if (uploads != null)
           list.addAll(uploads);
       return list;
    }
    
      
    
    public void removeUploadFile(EventModel em){
        logger.debug(" uploadService.removeUploadFile ");
        UploadFile uploadFile = (UploadFile)em.getModelIF();
        String tempId = uploadFile.getTempId();
        String id = uploadFile.getId();
        if (!UtilValidate.isEmpty(id)){ //if there is id, so it must be existed in db
            //delete the db
            uploadFileDao.deleteUploadFile(id);
        }else if (!UtilValidate.isEmpty(tempId)){
            //delete the session
            List uploads  = (List)sessionContext.getArrtibute(UploadServiceImp.UPLOAD_NAME);
            uploads.remove(Integer.parseInt(tempId));
        }
        
    }
    
    public UploadFile getUploadFile(String objectId) {
        logger.debug("getUploadFile for id=" + objectId);
        UploadFile uploadFile = null;
        try {
            uploadFile = uploadFileDao.getUploadFile(objectId);
        } catch (Exception e) {
            logger.error(" getUploadFile error: " + e + " for id = " + objectId);
        }
        return uploadFile;
    }
    
    public void saveAllUploadFiles(String parentId, Collection uploads){
        logger.debug(" prepareForSaveAllUploadFiles parentId=" + parentId );        
        try {         
            logger.debug(" uploads size=" + uploads.size());
            Iterator iter = uploads.iterator();
            while(iter.hasNext()){
                UploadFile uploadFile = (UploadFile)iter.next();
                uploadFile.setParentId(parentId); 
                Long mIDInt = sequenceDao.getNextId(Constants.OTHERS);
                uploadFile.setId(mIDInt.toString());
                uploadFileDao.createUploadFile(uploadFile);
            }
        } catch (Exception e) {
            logger.error(e);
        }
    }

    
    /**
     * @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 + -