// ========================================================================
// Copyright (C) zeroth Project Team. All rights reserved.
// GNU AFFERO GENERAL PUBLIC LICENSE Version 3, 19 November 2007
// http://www.gnu.org/licenses/agpl-3.0.txt
// ========================================================================
package zeroth.actor.screen.iface.jsf.conversation.master;
import java.math.BigDecimal;
import javax.enterprise.context.ConversationScoped;
import javax.inject.Inject;
import javax.inject.Named;
import org.apache.commons.lang3.StringUtils;
import zeroth.actor.service.app.ApplicationAnnotation.MemberApplicationCDI;
import zeroth.actor.service.app.actor.MemberApplication;
import zeroth.actor.service.domain.ActorFilterFactory;
import zeroth.actor.service.domain.Member;
import zeroth.actor.service.domain.MemberFactory;
import zeroth.actor.service.domain.MemberFilter;
import zeroth.framework.enterprise.app.SimpleRepositoryApplication;
import zeroth.framework.screen.iface.jsf.AbstractActionImpl;
import zeroth.framework.standard.shared.CodecUtils;
/**
* 社員アクション
* @author nilcy
*/
@Named(value = "memberAction")
@ConversationScoped
public class MemberAction extends AbstractActionImpl<Member, BigDecimal, MemberFilter> {
/** 製品番号 */
private static final long serialVersionUID = 3945061120130283444L;
/** 社員アプリケーションI/F */
@Inject
@MemberApplicationCDI
private MemberApplication memberApplication;
/** temporary password. */
private String tempPassword;
/** コンストラクタ */
public MemberAction() {
}
/** {@inheritDoc} */
@Override
public SimpleRepositoryApplication<Member, BigDecimal, MemberFilter> getApplication() {
return memberApplication;
}
/**
* {@inheritDoc}
* @see MemberFactory#create()
*/
@Override
protected Member createInstance() {
return new MemberFactory().create();
}
/** {@inheritDoc} */
@Override
protected boolean beforeSave() {
final Member c = getSelected();
if (StringUtils.isEmpty(c.getAddress().getName())) {
c.getAddress().setName(c.getFamilyName());
}
if (StringUtils.isEmpty(c.getContact().getName())) {
c.getContact().setName(c.getFamilyName());
}
if (StringUtils.isNotEmpty(getTempPassword())) {
c.setPassword(CodecUtils.sha256Hex(getTempPassword()));
}
return super.beforeSave();
}
/**
* {@link #tempPassword}.
* @return {@link #tempPassword}
*/
public String getTempPassword() {
return tempPassword;
}
/**
* {@link #tempPassword}.
* @param aTempPassword {@link #tempPassword}
*/
public void setTempPassword(final String aTempPassword) {
tempPassword = aTempPassword;
}
/** {@inheritDoc} */
@Override
protected MemberFilter createFilter() {
return ActorFilterFactory.createMemberFilter(null);
}
}