package api.unicore.component.fees;
 
 
import api.DuoComponent;
import api.unicore.component.fees_manual.MerchantFee;
import iapp.services.ServerObject;
import iapp.util.audit.AuditHelper;
import javax.ws.rs.DefaultValue;
import javax.ws.rs.FormParam;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlAttribute;
import javax.xml.bind.annotation.XmlSeeAlso;
import javax.xml.bind.annotation.XmlType;
import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter;
import org.codehaus.jackson.annotate.JsonPropertyOrder;
import org.codehaus.jackson.map.annotate.JsonSerialize;
 
/**
 * @author CodeGen [Dmytro Sedukhin]
 * @company UnitedThinkers
 * @since 2012/09/03
 */
 
@JsonSerialize(include=NON_NULL)
@XmlType(propOrder={})
@JsonPropertyOrder({})
@XmlAccessorType(XmlAccessType.NONE)
@XmlSeeAlso(MerchantFee.class)
public abstract class AbstractMerchantFee extends DuoComponent<> {
 
 
    public AbstractMerchantFee(){
        super();
        applyDefaults();
    }
 
    public AbstractMerchantFee(){
        super();
    }
 
 
    private void applyDefaults() {
        if (!isProxyObject()) {
        }
    }
 
    @Override
    public void from() {
        fromInternal();
        super.from();
    }
 
    protected abstract void fromInternal();
    @Override
    public abstract void to();
    @Override
    public abstract void initializeNew();
 
    @Override
    public String toString(){
        StringBuilder sb = new StringBuilder();
        sb.append("fee: {");
        sb.append('}');
        return sb.toString();
    }
 
 
 
    public void audit(AuditHelper helper, ServerObject object) {
 
    }
 
    public static String objectTypeCode(){
        return "merchant-fee";
    }
 
}