package api.unicore.component;
 
 
import api.DuoComponent;
import api.unicore.component_manual.Reseller;
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 unicore.model.AuditActionClassifier;
import unicore.model.AuditLog;
import unicore.model.AuditLogDetail;
import unicore.model.ObjectClassifier;
import unipay.audit.AuditLogHandler;
import unipay.audit.Auditable;
import unipay.validator.CustomValidator;
 
/**
 * @author CodeGen [Alexander Fliagin]
 * @company UnitedThinkers
 * @since 2012/09/02
 */
 
@JsonSerialize(include=NON_NULL)
@XmlType(propOrder={})
@JsonPropertyOrder({})
@XmlAccessorType(XmlAccessType.NONE)
@XmlSeeAlso(Reseller.class)
@CustomValidator
public abstract class AbstractReseller extends DuoComponent<> implements Auditable<AuditLog, AuditLogDetail, AuditActionClassifier, ObjectClassifier> {
 
 
    public AbstractReseller(){
        super();
        applyDefaults();
    }
 
    public AbstractReseller(){
        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("reseller: {");
        sb.append('}');
        return sb.toString();
    }
 
 
 
    @Override
    public void audit(AuditLogHandler<AuditLog, AuditLogDetail, AuditActionClassifier, ObjectClassifier> handler) {
        Reseller old = (Reseller) getOriginalObject();
 
    }
 
    public static String objectTypeCode(){
        return "reseller";
    }
 
}