📄 uploadserviceimp.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 + -