/** * Copyright: Copyright (c) From Down & Around, Inc. */ package com.fdar.apress.s2.actions.user; import com.opensymphony.xwork2.ActionSupport; import com.opensymphony.xwork2.ModelDriven; import com.opensymphony.xwork2.Preparable; import com.opensymphony.xwork2.validator.annotations.Validations; import com.opensymphony.xwork2.validator.annotations.VisitorFieldValidator; import com.opensymphony.xwork2.validator.annotations.Validation; import com.fdar.apress.s2.domain.User; import com.fdar.apress.s2.services.UserService; import com.fdar.apress.s2.actions.Utils; import com.fdar.apress.s2.actions.BaseAction; import java.io.File; import java.io.InputStream; import java.io.ByteArrayInputStream; @Validation public class UserAction extends BaseAction implements ModelDriven<User>, Preparable { private User user; private String emailId; private UserService service; private File upload; private String uploadFileName; public User getModel() { return user; } public void setEmailId(String emailId) { this.emailId = emailId; } public String getEmailId() { return emailId; } public void setUpload(File upload) { this.upload = upload; } public void setUploadFileName(String fileName) { this.uploadFileName = fileName; } public void setUserService(UserService service) { this.service = service; } public void prepare() throws Exception { if( emailId==null || "".equals(emailId) ) { user = new User(); } else { user = service.findByEmail(emailId); } } public String find() { return INPUT; } @Validations( visitorFields = { @VisitorFieldValidator( message = "Default message", key = "i18n.key", fieldName= "model", appendPrefix = false) } ) public String update() { if(uploadFileName!=null && !"".equals(uploadFileName)) { user.setPortrait(Utils.getBytesFromFile(upload)); } service.persist(user,emailId); return SUCCESS; } public InputStream getInputStream() { if( user==null || user.getPortrait()==null) { return Utils.getNoImageInputStream(getText("text.noImage")); } else { return new ByteArrayInputStream(user.getPortrait()); } } }