package market.guess.ui.desktop.model; import java.math.BigDecimal; import java.util.ArrayList; import java.util.List; import market.guess.model.event.CommissionTiming; import market.guess.model.event.EventStatus; import market.guess.model.event.MechanismType; public final class EventData { public final String id; public final int num; public final String name; public final String desc; public final MechanismType type; public EventStatus status; public final String mm; public final int feePercent; public final CommissionTiming feeMode; public BigDecimal contract; public final Integer liquidityB; // LMSR only public final BigDecimal baseValueD; // Order Book only public BigDecimal yesPrice = new BigDecimal(0.5); public BigDecimal noPrice = new BigDecimal(0.5); public int yesShares, noShares; public final List trades = new ArrayList<>(); public final List chart = new ArrayList<>(); public OrderBook yesBook, noBook; public final List participants = new ArrayList<>(); public String resolvedOption; // null unless CLOSED public EventData( final String id, final int num, final String name, final String desc, final MechanismType type, final EventStatus status, final String mm, final int feePercent, final CommissionTiming feeMode, final double contract, final Integer liquidityB, final BigDecimal baseValueD) { this.id = id; this.num = num; this.name = name; this.desc = desc; this.type = type; this.status = status; this.mm = mm; this.feePercent = feePercent; this.feeMode = feeMode; this.contract = BigDecimal.valueOf(contract); this.liquidityB = liquidityB; this.baseValueD = baseValueD; } public String getId() { return id; } public String feeText() { return feePercent + "% on " + (feeMode == CommissionTiming.ON_PURCHASE ? "purchase" : "close"); } @Override public boolean equals(Object o) { if (this == o) return true; if (o == null || getClass() != o.getClass()) return false; EventData eventData = (EventData) o; return id != null && id.equals(eventData.id); } @Override public int hashCode() { return id != null ? id.hashCode() : 0; } }