码迷,mamicode.com
首页 > 其他好文 > 详细

程序员的量化交易之路(24)--Cointrader之RemoteEvent远程事件实体(11)

时间:2015-06-05 00:44:22      阅读:161      评论:0      收藏:0      [点我收藏+]

标签:量化交易   cointrader   remoteevent   

转载需注明出处:http://blog.csdn.net/minimicall,http://cloudtrader.top/

在量化交易系统中,有些事件是远端传来的,比如股票的价格数据等。所以,在这一节我们定义了一个远端事件实体。

它是一个基类,并不单独生成数据表。具体代码如下:

package org.cryptocoinpartners.schema;

import javax.annotation.Nullable;
import javax.persistence.Basic;
import javax.persistence.MappedSuperclass;
import javax.persistence.Transient;

import org.hibernate.annotations.Type;
import org.joda.time.Instant;

@MappedSuperclass
public abstract class RemoteEvent extends Event {

    /**
     * @return the time when this event object was created.  it may be later than getTime() due to transmission delays
     */
    @Type(type = "org.jadira.usertype.dateandtime.joda.PersistentInstantAsMillisLong")
    @Basic(optional = false)
    public Instant getTimeReceived() {
        return timeReceived;
    }

    @Transient
    public long getTimestampReceived() {
        return timestampReceived;
    }

    @Basic(optional = true)
    public String getRemoteKey() {
        return remoteKey;
    }

    @Override
    public void publishedAt(Instant instant) {
        super.publishedAt(instant);
        if (timeReceived == null)
            timeReceived = instant;
        this.timestampReceived = timeReceived.getMillis();

    }

    protected RemoteEvent(Instant time, @Nullable String remoteKey) {
        this(time, Instant.now(), remoteKey);
    }

    protected RemoteEvent(Instant time, Instant timeReceived, @Nullable String remoteKey) {
        super(time);
        this.remoteKey = remoteKey;
        this.timeReceived = timeReceived;
        this.timestampReceived = timeReceived.getMillis();
    }

    // JPA
    protected RemoteEvent() {
    }

    protected void setTimeReceived(Instant timeReceived) {
        this.timeReceived = timeReceived;
        this.timestampReceived = timeReceived.getMillis();
    }

    protected void setRemoteKey(@Nullable String remoteKey) {
        this.remoteKey = remoteKey;
    }

    private Instant timeReceived;
    private long timestampReceived;
    private String remoteKey;
}


程序员的量化交易之路(24)--Cointrader之RemoteEvent远程事件实体(11)

标签:量化交易   cointrader   remoteevent   

原文地址:http://blog.csdn.net/minimicall/article/details/46369895

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!