// ========================================================================
// 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.PartnerApplicationCDI;
import zeroth.actor.service.app.actor.PartnerApplication;
import zeroth.actor.service.domain.Partner;
import zeroth.actor.service.domain.PartnerFactory;
import zeroth.framework.enterprise.app.SimpleRepositoryApplication;
import zeroth.framework.screen.iface.jsf.AbstractActionImpl;
import zeroth.framework.standard.shared.FilterFactory;
import zeroth.framework.standard.shared.SimpleFilter;
/**
* 外注アクション
* @author nilcy
*/
@Named(value = "partnerAction")
@ConversationScoped
public class PartnerAction extends AbstractActionImpl<Partner, BigDecimal, SimpleFilter> {
/** 製品番号 */
private static final long serialVersionUID = -1406530105042380063L;
/** 外注アプリケーションI/F */
@Inject
@PartnerApplicationCDI
private PartnerApplication partnerApplication;
/** コンストラクタ */
public PartnerAction() {
}
/** {@inheritDoc} */
@Override
public SimpleRepositoryApplication<Partner, BigDecimal, SimpleFilter> getApplication() {
return partnerApplication;
}
/** {@inheritDoc} */
@Override
protected Partner createInstance() {
return new PartnerFactory().create();
}
/** {@inheritDoc} */
@Override
protected boolean beforeSave() {
final Partner c = getSelected();
c.getContact().setName(
StringUtils.defaultIfEmpty(c.getContact().getName(), c.getFamilyName()));
return super.beforeSave();
}
/** {@inheritDoc} */
@Override
protected SimpleFilter createFilter() {
return FilterFactory.createSimpleFilter();
}
}