// ========================================================================
// 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.CustomerApplicationCDI;
import zeroth.actor.service.app.actor.CustomerApplication;
import zeroth.actor.service.domain.Customer;
import zeroth.actor.service.domain.CustomerFactory;
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 = "customerAction")
@ConversationScoped
public class CustomerAction extends AbstractActionImpl<Customer, BigDecimal, SimpleFilter> {
/** 製品番号 */
private static final long serialVersionUID = 873776474936603723L;
/** 得意先アプリケーションI/F */
@Inject
@CustomerApplicationCDI
private CustomerApplication customerApplication;
/** コンストラクタ */
public CustomerAction() {
}
/** {@inheritDoc} */
@Override
public SimpleRepositoryApplication<Customer, BigDecimal, SimpleFilter> getApplication() {
return customerApplication;
}
/** {@inheritDoc} */
@Override
protected Customer createInstance() {
return new CustomerFactory().create();
}
/** {@inheritDoc} */
@Override
protected boolean beforeSave() {
final Customer c = getSelected();
c.getAddress().setName(
StringUtils.defaultIfEmpty(c.getAddress().getName(), c.getOfficialName()));
c.getContact().setName(
StringUtils.defaultIfEmpty(c.getContact().getName(), c.getOfficialName()));
return super.beforeSave();
}
/** {@inheritDoc} */
@Override
protected SimpleFilter createFilter() {
return FilterFactory.createSimpleFilter();
}
}