package com.dukascopy.visualforex.WhiteFalcon; import java.util.*; import com.dukascopy.api.*; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.concurrent.CopyOnWriteArrayList; import java.lang.reflect.*; import java.math.BigDecimal; /* * Created by VisualJForex Generator, version 3.0.9 * Date: 02.08.2021 08:32 */ public class A08sar21onGAS implements IStrategy { private CopyOnWriteArrayList tradeEventActions = new CopyOnWriteArrayList(); private static final String DATE_FORMAT_NOW = "yyyyMMdd_HHmmss"; private IEngine engine; private IConsole console; private IHistory history; private IContext context; private IIndicators indicators; private IUserInterface userInterface; @Configurable("defaultTakeProfit:") public int defaultTakeProfit = 20; @Configurable("defaultInstrument:") public Instrument defaultInstrument = Instrument.GBPAUD; @Configurable("defaultSlippage:") public int defaultSlippage = 1; @Configurable("defaultTradeAmount:") public double defaultTradeAmount = 8.0; @Configurable("defaultStopLoss:") public int defaultStopLoss = 300; @Configurable("defaultPeriod:") public Period defaultPeriod = Period.FIVE_MINS; private Candle LastBidCandle = null ; private String AccountId = ""; private double _line15; private IOrder _sell = null ; private IOrder _posb = null ; private IOrder _ert = null ; private double Equity; private double _ema93; private Tick LastTick = null ; private String AccountCurrency = ""; private int OverWeekendEndLeverage; private double _cci55; private double Leverage; private double _middleBandc = 0.0; private double _ort = 0.0; private IOrder _bb = null ; private IOrder _sart = null ; private double _middleBandp = 0.0; private List PendingPositions = null ; private double _lowerBandp = 0.0; private double _upperBandp = 0.0; private List OpenPositions = null ; private IOrder _buy = null ; private double UseofLeverage; private double _cci28; private IMessage LastTradeEvent = null ; private boolean GlobalAccount; private double _lowerBandc = 0.0; private Candle candle65 = null ; private Candle LastAskCandle = null ; private int MarginCutLevel; private List AllPositions = null ; private IOrder _pos = null ; private List candles66 = null ; private double _upperBandc = 0.0; private IOrder _current_position = null ; private IOrder _ss = null ; public void onStart(IContext context) throws JFException { this.engine = context.getEngine(); this.console = context.getConsole(); this.history = context.getHistory(); this.context = context; this.indicators = context.getIndicators(); this.userInterface = context.getUserInterface(); subscriptionInstrumentCheck(defaultInstrument); ITick lastITick = context.getHistory().getLastTick(defaultInstrument); LastTick = new Tick(lastITick, defaultInstrument); IBar bidBar = context.getHistory().getBar(defaultInstrument, defaultPeriod, OfferSide.BID, 1); IBar askBar = context.getHistory().getBar(defaultInstrument, defaultPeriod, OfferSide.ASK, 1); LastAskCandle = new Candle(askBar, defaultPeriod, defaultInstrument, OfferSide.ASK); LastBidCandle = new Candle(bidBar, defaultPeriod, defaultInstrument, OfferSide.BID); if (indicators.getIndicator("CCI") == null) { indicators.registerDownloadableIndicator("1275","CCI"); } if (indicators.getIndicator("EMA") == null) { indicators.registerDownloadableIndicator("1324","EMA"); } if (indicators.getIndicator("CCI") == null) { indicators.registerDownloadableIndicator("1275","CCI"); } if (indicators.getIndicator("BBANDS") == null) { indicators.registerDownloadableIndicator("12083","BBANDS"); } if (indicators.getIndicator("BBANDS") == null) { indicators.registerDownloadableIndicator("12083","BBANDS"); } subscriptionInstrumentCheck(Instrument.fromString("GBP/AUD")); } public void onAccount(IAccount account) throws JFException { AccountCurrency = account.getCurrency().toString(); Leverage = account.getLeverage(); AccountId= account.getAccountId(); Equity = account.getEquity(); UseofLeverage = account.getUseOfLeverage(); OverWeekendEndLeverage = account.getOverWeekEndLeverage(); MarginCutLevel = account.getMarginCutLevel(); GlobalAccount = account.isGlobal(); } private void updateVariables(Instrument instrument) { try { AllPositions = engine.getOrders(); List listMarket = new ArrayList(); for (IOrder order: AllPositions) { if (order.getState().equals(IOrder.State.FILLED)){ listMarket.add(order); } } List listPending = new ArrayList(); for (IOrder order: AllPositions) { if (order.getState().equals(IOrder.State.OPENED)){ listPending.add(order); } } OpenPositions = listMarket; PendingPositions = listPending; } catch(JFException e) { e.printStackTrace(); } } public void onMessage(IMessage message) throws JFException { if (message.getOrder() != null) { updateVariables(message.getOrder().getInstrument()); LastTradeEvent = message; for (TradeEventAction event : tradeEventActions) { IOrder order = message.getOrder(); if (order != null && event != null && message.getType().equals(event.getMessageType())&& order.getLabel().equals(event.getPositionLabel())) { Method method; try { method = this.getClass().getDeclaredMethod(event.getNextBlockId(), Integer.class); method.invoke(this, new Integer[] {event.getFlowId()}); } catch (SecurityException e) { e.printStackTrace(); } catch (NoSuchMethodException e) { e.printStackTrace(); } catch (IllegalArgumentException e) { e.printStackTrace(); } catch (IllegalAccessException e) { e.printStackTrace(); } catch (InvocationTargetException e) { e.printStackTrace(); } tradeEventActions.remove(event); } } } } public void onStop() throws JFException { } public void onTick(Instrument instrument, ITick tick) throws JFException { LastTick = new Tick(tick, instrument); updateVariables(instrument); } public void onBar(Instrument instrument, Period period, IBar askBar, IBar bidBar) throws JFException { LastAskCandle = new Candle(askBar, period, instrument, OfferSide.ASK); LastBidCandle = new Candle(bidBar, period, instrument, OfferSide.BID); updateVariables(instrument); If_block_97(1); } public void subscriptionInstrumentCheck(Instrument instrument) { try { Set instruments = new HashSet(); instruments.add(instrument); context.setSubscribedInstruments(instruments, true); } catch (Exception e) { e.printStackTrace(); } } public double round(double price, Instrument instrument) { BigDecimal big = new BigDecimal("" + price); big = big.setScale(instrument.getPipScale() + 1, BigDecimal.ROUND_HALF_UP); return big.doubleValue(); } public ITick getLastTick(Instrument instrument) { try { return (context.getHistory().getTick(instrument, 0)); } catch (JFException e) { e.printStackTrace(); } return null; } private void CCI_block_28(Integer flow) { Instrument argument_1 = defaultInstrument; Period argument_2 = Period.MONTHLY; int argument_3 = 0; int argument_4 = 150; OfferSide[] offerside = new OfferSide[1]; IIndicators.AppliedPrice[] appliedPrice = new IIndicators.AppliedPrice[1]; offerside[0] = OfferSide.BID; appliedPrice[0] = IIndicators.AppliedPrice.CLOSE; Object[] params = new Object[1]; params[0] = 150; try { subscriptionInstrumentCheck(argument_1); long time = context.getHistory().getBar(argument_1, argument_2, OfferSide.BID, argument_3).getTime(); Object[] indicatorResult = context.getIndicators().calculateIndicator(argument_1, argument_2, offerside, "CCI", appliedPrice, params, Filter.WEEKENDS, 1, time, 0); if ((new Double(((double [])indicatorResult[0])[0])) == null) { this._cci28 = Double.NaN; } else { this._cci28 = (((double [])indicatorResult[0])[0]); } MultipleAction_block_102(flow); } catch (JFException e) { e.printStackTrace(); console.getErr().println(e); this._cci28 = Double.NaN; } } private void If_block_33(Integer flow) { double argument_1 = _cci28; double argument_2 = 0.0; if (argument_1< argument_2) { OpenatMarket_block_109(flow); } else if (argument_1> argument_2) { } else if (argument_1== argument_2) { } } private void If_block_35(Integer flow) { double argument_1 = _cci28; double argument_2 = 0.0; if (argument_1< argument_2) { } else if (argument_1> argument_2) { OpenatMarket_block_112(flow); } else if (argument_1== argument_2) { } } private void If_block_74(Integer flow) { double argument_1 = Equity; double argument_2 = 306000.0; if (argument_1< argument_2) { BBANDS_block_101(flow); } else if (argument_1> argument_2) { If_block_82(flow); } else if (argument_1== argument_2) { } } private void If_block_82(Integer flow) { Instrument argument_1 = LastBidCandle.getInstrument(); Instrument argument_2 = defaultInstrument; if (argument_1 == null && argument_2 !=null || (argument_1!= null && !argument_1.equals(argument_2))) { } else if (argument_1!= null && argument_1.equals(argument_2)) { If_block_83(flow); } } private void If_block_83(Integer flow) { Period argument_1 = LastBidCandle.getPeriod(); Period argument_2 = defaultPeriod; if (argument_1 == null && argument_2 !=null || (argument_1!= null && !argument_1.equals(argument_2))) { } else if (argument_1!= null && argument_1.equals(argument_2)) { EMA_block_93(flow); } } private void If_block_88(Integer flow) { double argument_1 = _cci55; double argument_2 = -170.0; if (argument_1< argument_2) { OpenatMarket_block_89(flow); } else if (argument_1> argument_2) { } else if (argument_1== argument_2) { } } private void OpenatMarket_block_89(Integer flow) { Instrument argument_1 = defaultInstrument; double argument_2 = 0.1; int argument_3 = 1; int argument_4 = 10; int argument_5 = 10; String argument_6 = ""; ITick tick = getLastTick(argument_1); IEngine.OrderCommand command = IEngine.OrderCommand.BUY; double stopLoss = tick.getBid() - argument_1.getPipValue() * argument_4; double takeProfit = round(tick.getBid() + argument_1.getPipValue() * argument_5, argument_1); try { String label = getLabel(); _current_position = context.getEngine().submitOrder(label, argument_1, command, argument_2, 0, argument_3, stopLoss, takeProfit, 0, argument_6); } catch (JFException e) { e.printStackTrace(); } } private void If_block_90(Integer flow) { double argument_1 = _cci55; double argument_2 = 170.0; if (argument_1< argument_2) { } else if (argument_1> argument_2) { OpenatMarket_block_91(flow); } else if (argument_1== argument_2) { } } private void OpenatMarket_block_91(Integer flow) { Instrument argument_1 = defaultInstrument; double argument_2 = 0.1; int argument_3 = 1; int argument_4 = 10; int argument_5 = 10; String argument_6 = ""; ITick tick = getLastTick(argument_1); IEngine.OrderCommand command = IEngine.OrderCommand.SELL; double stopLoss = tick.getAsk() + argument_1.getPipValue() * argument_4; double takeProfit = round(tick.getAsk() - argument_1.getPipValue() * argument_5, argument_1); try { String label = getLabel(); _current_position = context.getEngine().submitOrder(label, argument_1, command, argument_2, 0, argument_3, stopLoss, takeProfit, 0, argument_6); } catch (JFException e) { e.printStackTrace(); } } private void EMA_block_93(Integer flow) { Instrument argument_1 = defaultInstrument; Period argument_2 = Period.FIVE_MINS; int argument_3 = 0; int argument_4 = 30; OfferSide[] offerside = new OfferSide[1]; IIndicators.AppliedPrice[] appliedPrice = new IIndicators.AppliedPrice[1]; offerside[0] = OfferSide.BID; appliedPrice[0] = IIndicators.AppliedPrice.CLOSE; Object[] params = new Object[1]; params[0] = 30; try { subscriptionInstrumentCheck(argument_1); long time = context.getHistory().getBar(argument_1, argument_2, OfferSide.BID, argument_3).getTime(); Object[] indicatorResult = context.getIndicators().calculateIndicator(argument_1, argument_2, offerside, "EMA", appliedPrice, params, Filter.WEEKENDS, 1, time, 0); if ((new Double(((double [])indicatorResult[0])[0])) == null) { this._ema93 = Double.NaN; } else { this._ema93 = (((double [])indicatorResult[0])[0]); } CCI_block_94(flow); } catch (JFException e) { e.printStackTrace(); console.getErr().println(e); this._ema93 = Double.NaN; } } private void CCI_block_94(Integer flow) { Instrument argument_1 = defaultInstrument; Period argument_2 = Period.FIVE_MINS; int argument_3 = 0; int argument_4 = 14; OfferSide[] offerside = new OfferSide[1]; IIndicators.AppliedPrice[] appliedPrice = new IIndicators.AppliedPrice[1]; offerside[0] = OfferSide.BID; appliedPrice[0] = IIndicators.AppliedPrice.CLOSE; Object[] params = new Object[1]; params[0] = 14; try { subscriptionInstrumentCheck(argument_1); long time = context.getHistory().getBar(argument_1, argument_2, OfferSide.BID, argument_3).getTime(); Object[] indicatorResult = context.getIndicators().calculateIndicator(argument_1, argument_2, offerside, "CCI", appliedPrice, params, Filter.WEEKENDS, 1, time, 0); if ((new Double(((double [])indicatorResult[0])[0])) == null) { this._cci55 = Double.NaN; } else { this._cci55 = (((double [])indicatorResult[0])[0]); } If_block_95(flow); } catch (JFException e) { e.printStackTrace(); console.getErr().println(e); this._cci55 = Double.NaN; } } private void If_block_95(Integer flow) { double argument_1 = LastBidCandle.getClose(); double argument_2 = _ema93; if (argument_1< argument_2) { If_block_90(flow); } else if (argument_1> argument_2) { If_block_88(flow); } else if (argument_1== argument_2) { } } private void If_block_97(Integer flow) { int argument_1 = OpenPositions.size(); int argument_2 = 0; if (argument_1< argument_2) { } else if (argument_1> argument_2) { PositionsViewer_block_98(flow); } else if (argument_1== argument_2) { If_block_74(flow); } } private void PositionsViewer_block_98(Integer flow) { List argument_1 = AllPositions; for (IOrder order : argument_1){ if (order.getState() == IOrder.State.OPENED||order.getState() == IOrder.State.FILLED){ _current_position = order; If_block_99(flow); } } } private void If_block_99(Integer flow) { double argument_1 = _current_position.getProfitLossInPips(); double argument_2 = 4.0; if (argument_1< argument_2) { } else if (argument_1> argument_2) { CloseandCancelPosition_block_100(flow); } else if (argument_1== argument_2) { } } private void CloseandCancelPosition_block_100(Integer flow) { try { if (_current_position != null && (_current_position.getState() == IOrder.State.OPENED||_current_position.getState() == IOrder.State.FILLED)){ _current_position.close(); } } catch (JFException e) { e.printStackTrace(); } } private void BBANDS_block_101(Integer flow) { Instrument argument_1 = defaultInstrument; Period argument_2 = Period.FIVE_MINS; int argument_3 = 0; int argument_4 = 26; double argument_5 = 2.0; double argument_6 = 2.0; IIndicators.MaType argument_7 = IIndicators.MaType.SMA; OfferSide[] offerside = new OfferSide[1]; IIndicators.AppliedPrice[] appliedPrice = new IIndicators.AppliedPrice[1]; offerside[0] = OfferSide.BID; appliedPrice[0] = IIndicators.AppliedPrice.CLOSE; Object[] params = new Object[4]; params[0] = 26; params[1] = 2.0; params[2] = 2.0; params[3] = 0; try { subscriptionInstrumentCheck(argument_1); long time = context.getHistory().getBar(argument_1, argument_2, OfferSide.BID, argument_3).getTime(); Object[] indicatorResult = context.getIndicators().calculateIndicator(argument_1, argument_2, offerside, "BBANDS", appliedPrice, params, Filter.WEEKENDS, 1, time, 0); if ((new Double(((double [])indicatorResult[0])[0])) == null) { this._upperBandc = Double.NaN; } else { this._upperBandc = (((double [])indicatorResult[0])[0]); } if ((new Double(((double [])indicatorResult[1])[0])) == null) { this._middleBandc = Double.NaN; } else { this._middleBandc = (((double [])indicatorResult[1])[0]); } if ((new Double(((double [])indicatorResult[2])[0])) == null) { this._lowerBandc = Double.NaN; } else { this._lowerBandc = (((double [])indicatorResult[2])[0]); } BBANDS_block_105(flow); } catch (JFException e) { e.printStackTrace(); console.getErr().println(e); this._upperBandc = Double.NaN; this._middleBandc = Double.NaN; this._lowerBandc = Double.NaN; } } private void MultipleAction_block_102(Integer flow) { If_block_103(flow); If_block_110(flow); } private void If_block_103(Integer flow) { Period argument_1 = LastAskCandle.getPeriod(); Period argument_2 = Period.FIVE_MINS; if (argument_1 == null && argument_2 !=null || (argument_1!= null && !argument_1.equals(argument_2))) { } else if (argument_1!= null && argument_1.equals(argument_2)) { If_block_104(flow); } } private void If_block_104(Integer flow) { double argument_1 = LastAskCandle.getOpen(); double argument_2 = _lowerBandc; if (argument_1< argument_2) { If_block_106(flow); } else if (argument_1> argument_2) { } else if (argument_1== argument_2) { } } private void BBANDS_block_105(Integer flow) { Instrument argument_1 = defaultInstrument; Period argument_2 = Period.FIVE_MINS; int argument_3 = 1; int argument_4 = 20; double argument_5 = 2.0; double argument_6 = 2.0; IIndicators.MaType argument_7 = IIndicators.MaType.SMA; OfferSide[] offerside = new OfferSide[1]; IIndicators.AppliedPrice[] appliedPrice = new IIndicators.AppliedPrice[1]; offerside[0] = OfferSide.BID; appliedPrice[0] = IIndicators.AppliedPrice.CLOSE; Object[] params = new Object[4]; params[0] = 20; params[1] = 2.0; params[2] = 2.0; params[3] = 0; try { subscriptionInstrumentCheck(argument_1); long time = context.getHistory().getBar(argument_1, argument_2, OfferSide.BID, argument_3).getTime(); Object[] indicatorResult = context.getIndicators().calculateIndicator(argument_1, argument_2, offerside, "BBANDS", appliedPrice, params, Filter.WEEKENDS, 1, time, 0); if ((new Double(((double [])indicatorResult[0])[0])) == null) { this._upperBandp = Double.NaN; } else { this._upperBandp = (((double [])indicatorResult[0])[0]); } if ((new Double(((double [])indicatorResult[1])[0])) == null) { this._middleBandp = Double.NaN; } else { this._middleBandp = (((double [])indicatorResult[1])[0]); } if ((new Double(((double [])indicatorResult[2])[0])) == null) { this._lowerBandp = Double.NaN; } else { this._lowerBandp = (((double [])indicatorResult[2])[0]); } CCI_block_28(flow); } catch (JFException e) { e.printStackTrace(); console.getErr().println(e); this._upperBandp = Double.NaN; this._middleBandp = Double.NaN; this._lowerBandp = Double.NaN; } } private void If_block_106(Integer flow) { double argument_1 = _upperBandc; double argument_2 = _upperBandp; if (argument_1< argument_2) { } else if (argument_1> argument_2) { If_block_107(flow); } else if (argument_1== argument_2) { } } private void If_block_107(Integer flow) { double argument_1 = _middleBandc; double argument_2 = _middleBandp; if (argument_1< argument_2) { } else if (argument_1> argument_2) { If_block_108(flow); } else if (argument_1== argument_2) { } } private void If_block_108(Integer flow) { double argument_1 = _lowerBandc; double argument_2 = _lowerBandp; if (argument_1< argument_2) { } else if (argument_1> argument_2) { If_block_33(flow); } else if (argument_1== argument_2) { } } private void OpenatMarket_block_109(Integer flow) { Instrument argument_1 = defaultInstrument; double argument_2 = 8.0; int argument_3 = defaultSlippage; int argument_4 = 300; int argument_5 = 12; String argument_6 = ""; ITick tick = getLastTick(argument_1); IEngine.OrderCommand command = IEngine.OrderCommand.BUY; double stopLoss = tick.getBid() - argument_1.getPipValue() * argument_4; double takeProfit = round(tick.getBid() + argument_1.getPipValue() * argument_5, argument_1); try { String label = getLabel(); _current_position = context.getEngine().submitOrder(label, argument_1, command, argument_2, 0, argument_3, stopLoss, takeProfit, 0, argument_6); } catch (JFException e) { e.printStackTrace(); } } private void If_block_110(Integer flow) { Period argument_1 = LastAskCandle.getPeriod(); Period argument_2 = Period.FIVE_MINS; if (argument_1 == null && argument_2 !=null || (argument_1!= null && !argument_1.equals(argument_2))) { } else if (argument_1!= null && argument_1.equals(argument_2)) { If_block_111(flow); } } private void If_block_111(Integer flow) { double argument_1 = LastAskCandle.getClose(); double argument_2 = _upperBandc; if (argument_1< argument_2) { } else if (argument_1> argument_2) { If_block_113(flow); } else if (argument_1== argument_2) { } } private void OpenatMarket_block_112(Integer flow) { Instrument argument_1 = defaultInstrument; double argument_2 = 8.0; int argument_3 = defaultSlippage; int argument_4 = 300; int argument_5 = 12; String argument_6 = ""; ITick tick = getLastTick(argument_1); IEngine.OrderCommand command = IEngine.OrderCommand.SELL; double stopLoss = tick.getAsk() + argument_1.getPipValue() * argument_4; double takeProfit = round(tick.getAsk() - argument_1.getPipValue() * argument_5, argument_1); try { String label = getLabel(); _current_position = context.getEngine().submitOrder(label, argument_1, command, argument_2, 0, argument_3, stopLoss, takeProfit, 0, argument_6); } catch (JFException e) { e.printStackTrace(); } } private void If_block_113(Integer flow) { double argument_1 = _upperBandc; double argument_2 = _upperBandp; if (argument_1< argument_2) { If_block_114(flow); } else if (argument_1> argument_2) { } else if (argument_1== argument_2) { } } private void If_block_114(Integer flow) { double argument_1 = _middleBandc; double argument_2 = _middleBandp; if (argument_1< argument_2) { If_block_115(flow); } else if (argument_1> argument_2) { } else if (argument_1== argument_2) { } } private void If_block_115(Integer flow) { double argument_1 = _lowerBandc; double argument_2 = _lowerBandp; if (argument_1< argument_2) { If_block_35(flow); } else if (argument_1> argument_2) { } else if (argument_1== argument_2) { } } class Candle { IBar bar; Period period; Instrument instrument; OfferSide offerSide; public Candle(IBar bar, Period period, Instrument instrument, OfferSide offerSide) { this.bar = bar; this.period = period; this.instrument = instrument; this.offerSide = offerSide; } public Period getPeriod() { return period; } public void setPeriod(Period period) { this.period = period; } public Instrument getInstrument() { return instrument; } public void setInstrument(Instrument instrument) { this.instrument = instrument; } public OfferSide getOfferSide() { return offerSide; } public void setOfferSide(OfferSide offerSide) { this.offerSide = offerSide; } public IBar getBar() { return bar; } public void setBar(IBar bar) { this.bar = bar; } public long getTime() { return bar.getTime(); } public double getOpen() { return bar.getOpen(); } public double getClose() { return bar.getClose(); } public double getLow() { return bar.getLow(); } public double getHigh() { return bar.getHigh(); } public double getVolume() { return bar.getVolume(); } } class Tick { private ITick tick; private Instrument instrument; public Tick(ITick tick, Instrument instrument){ this.instrument = instrument; this.tick = tick; } public Instrument getInstrument(){ return instrument; } public double getAsk(){ return tick.getAsk(); } public double getBid(){ return tick.getBid(); } public double getAskVolume(){ return tick.getAskVolume(); } public double getBidVolume(){ return tick.getBidVolume(); } public long getTime(){ return tick.getTime(); } public ITick getTick(){ return tick; } } protected String getLabel() { String label; label = "IVF" + getCurrentTime(LastTick.getTime()) + generateRandom(10000) + generateRandom(10000); return label; } private String getCurrentTime(long time) { SimpleDateFormat sdf = new SimpleDateFormat(DATE_FORMAT_NOW); return sdf.format(time); } private static String generateRandom(int n) { int randomNumber = (int) (Math.random() * n); String answer = "" + randomNumber; if (answer.length() > 3) { answer = answer.substring(0, 4); } return answer; } class TradeEventAction { private IMessage.Type messageType; private String nextBlockId = ""; private String positionLabel = ""; private int flowId = 0; public IMessage.Type getMessageType() { return messageType; } public void setMessageType(IMessage.Type messageType) { this.messageType = messageType; } public String getNextBlockId() { return nextBlockId; } public void setNextBlockId(String nextBlockId) { this.nextBlockId = nextBlockId; } public String getPositionLabel() { return positionLabel; } public void setPositionLabel(String positionLabel) { this.positionLabel = positionLabel; } public int getFlowId() { return flowId; } public void setFlowId(int flowId) { this.flowId = flowId; } } }