package api.unicharge.component;
 
 
import api.DuoComponent;
import api.unicharge.component_manual.Terminal;
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
 * @company UnitedThinkers
 * @since 2015/10/14
 */
 
@JsonSerialize(include=NON_NULL)
@XmlType(propOrder={})
@JsonPropertyOrder({})
@XmlAccessorType(XmlAccessType.NONE)
@XmlSeeAlso(Terminal.class)
@CustomValidator
public abstract class AbstractTerminal extends DuoComponent<> implements Auditable<AuditLog, AuditLogDetail, AuditActionClassifier, ObjectClassifier> {
 
 
    public AbstractTerminal(){
        super();
        applyDefaults();
    }
 
    public AbstractTerminal(){
        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("terminal: {");
        sb.append('}');
        return sb.toString();
    }
 
 
 
    @Override
    public void audit(AuditLogHandler<AuditLog, AuditLogDetail, AuditActionClassifier, ObjectClassifier> handler) {
        Terminal old = (Terminal) getOriginalObject();
 
    }
 
 
}