package api.unibill.component;
 
 
import api.DuoComponent;
import api.unicore.component_manual.Subscription;
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;
import unipay.validator.CustomValidator;
 
/**
 * @author CodeGen [Anton Shershnov]
 * @company UnitedThinkers
 * @since 2018/09/11
 */
 
@JsonSerialize(include=NON_NULL)
@XmlType(propOrder={})
@JsonPropertyOrder({})
@XmlAccessorType(XmlAccessType.NONE)
@XmlSeeAlso(Subscription.class)
@CustomValidator
public abstract class AbstractSubscription extends DuoComponent<> {
 
 
    public AbstractSubscription(){
        super();
        applyDefaults();
    }
 
    public AbstractSubscription(){
        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("subscription: {");
        sb.append('}');
        return sb.toString();
    }
 
 
 
 
}