package com.jgoetsch.eventtrader.source.parser; import org.jsoup.nodes.Element; import com.jgoetsch.eventtrader.Msg; import com.jgoetsch.eventtrader.TradeSignal; public class HtmlSelectorTradeFieldsMsgParser extends HtmlSelectorMsgParser { private String messageSelector; private String symbolSelector; private String typeSelector; public HtmlSelectorTradeFieldsMsgParser(String selector, String messageSelector, String symbolSelector, String typeSelector) { super(selector); this.messageSelector = messageSelector; this.symbolSelector = symbolSelector; this.typeSelector = typeSelector; } @Override protected Msg createMsg(Element node) { Element message = node.select(messageSelector).first(); Element sym = symbolSelector != null ? node.select(symbolSelector).first() : null; if (message != null) { Msg msg = super.createMsg(message); if (sym != null) { return new TradeSignal(typeSelector != null ? node.select(typeSelector).text() : null, sym.text(), msg); } else { return msg; } } else { return null; } } public String getMessageSelector() { return messageSelector; } public void setMessageSelector(String messageSelector) { this.messageSelector = messageSelector; } public String getSymbolSelector() { return symbolSelector; } public void setSymbolSelector(String symbolSelector) { this.symbolSelector = symbolSelector; } public String getTypeSelector() { return typeSelector; } public void setTypeSelector(String typeSelector) { this.typeSelector = typeSelector; } }