package com.activequant.domainmodel.backoffice; import java.util.List; import com.activequant.domainmodel.annotations.Property; import com.activequant.dto.PositionDto; import com.activequant.utils.ArrayUtils; public class PortfolioSnap extends Snapshot { public PortfolioSnap(String className) { super(className); } public PortfolioSnap(){ super(PortfolioSnap.class.getCanonicalName()); } public String ownerObjectId; public String[] tradeableId = new String[0]; public Double[] valuationPrice = new Double[0]; public Double[] quantity = new Double[0]; public Double[] entryPrice = new Double[0]; public String[] side = new String[0]; public String[] subAcctId = new String[0]; public String[] clearerAcctId = new String[0]; public String[] clearer = new String[0]; public Long[] entryDate8 = new Long[0]; public Long[] positionDate8 = new Long[0]; public String[] uniqueId = new String[0]; public Double[] marketValue = new Double[0]; public void addPosition(PositionDto dto){ tradeableId = add(tradeableId, dto.tradeableId); valuationPrice = add(valuationPrice, dto.valuationPrice); quantity = add(quantity, dto.quantity); entryPrice = add(entryPrice, dto.entryPrice); side = add(side, dto.side.toString()); subAcctId = add(subAcctId, dto.subAcctId); clearerAcctId = add(clearerAcctId, dto.clearerAcctId); clearer = add(clearer, dto.clearer); entryDate8 = add(entryDate8, dto.entryDate8); positionDate8 = add(positionDate8, dto.positionDate8); uniqueId = add(uniqueId, dto.uniqueId); marketValue = add(marketValue, dto.marketValue); } private String[] add(String[] in, String val) { List<String> ls = ArrayUtils.asList(in); ls.add(val); return ArrayUtils.asArray(ls, String.class); } private Double[] add(Double[] in, Double val) { List<Double> ls = ArrayUtils.asList(in); ls.add(val); return ArrayUtils.asArray(ls, Double.class); } private Long[] add(Long[] in, Long val) { List<Long> ls = ArrayUtils.asList(in); ls.add(val); return ArrayUtils.asArray(ls, Long.class); } @Property public String getOwnerObjectId() { return ownerObjectId; } public void setOwnerObjectId(String ownerObjectId) { this.ownerObjectId = ownerObjectId; } @Property public String[] getTradeableId() { return tradeableId; } public void setTradeableId(String[] tradeableId) { this.tradeableId = tradeableId; } @Property public Double[] getValuationPrice() { return valuationPrice; } public void setValuationPrice(Double[] valuationPrice) { this.valuationPrice = valuationPrice; } @Property public Double[] getQuantity() { return quantity; } public void setQuantity(Double[] quantity) { this.quantity = quantity; } @Property public Double[] getEntryPrice() { return entryPrice; } public void setEntryPrice(Double[] entryPrice) { this.entryPrice = entryPrice; } @Property public String[] getSide() { return side; } public void setSide(String[] side) { this.side = side; } @Property public String[] getSubAcctId() { return subAcctId; } public void setSubAcctId(String[] subAcctId) { this.subAcctId = subAcctId; } @Property public String[] getClearerAcctId() { return clearerAcctId; } public void setClearerAcctId(String[] clearerAcctId) { this.clearerAcctId = clearerAcctId; } @Property public String[] getClearer() { return clearer; } public void setClearer(String[] clearer) { this.clearer = clearer; } @Property public Long[] getEntryDate8() { return entryDate8; } public void setEntryDate8(Long[] entryDate8) { this.entryDate8 = entryDate8; } @Property public Long[] getPositionDate8() { return positionDate8; } public void setPositionDate8(Long[] positionDate8) { this.positionDate8 = positionDate8; } @Property public String[] getUniqueId() { return uniqueId; } public void setUniqueId(String[] uniqueId) { this.uniqueId = uniqueId; } @Property public Double[] getMarketValue() { return marketValue; } public void setMarketValue(Double[] marketValue) { this.marketValue = marketValue; } @Override @Property public String getNonUniqueID() { return nullSafe("PSNAP." + nullSafe(ownerObjectId)); } }