1818import com .dxfeed .event .candle .impl .CandleEventMapping ;
1919import com .dxfeed .event .market .MarketEventDelegateImpl ;
2020import com .dxfeed .event .market .Order ;
21+ import com .dxfeed .event .market .OrderBase ;
2122import com .dxfeed .event .market .OrderBaseDelegateImpl ;
23+ import com .dxfeed .event .market .OrderSource ;
2224import com .dxfeed .event .market .Profile ;
2325import com .dxfeed .event .market .Quote ;
2426import com .dxfeed .event .market .SpreadOrder ;
3638import com .dxfeed .event .option .Underlying ;
3739
3840import java .io .IOException ;
41+ import java .util .stream .Collectors ;
3942
4043/**
4144 * Main class to generate all implementation-related code for dxFeed.
@@ -215,7 +218,7 @@ public void runForDxfeedImpl() throws IOException {
215218 publishable ();
216219
217220 ctx .delegate ("Order" , Order .class , "Order" ).
218- suffixes ("|#NTV|#NFX|#ESPD|#XNFI|#DEA|#DEX|#BYX|#BZX|#IST|#BI20|#ISE|#BATE|#CHIX|#BXTR|#GLBX|#ERIS|#XEUR|#ICE|#CFE" ).
221+ suffixes (getOrderSuffixes ( Order . class ) ).
219222 inheritDelegateFrom (ORDER_BASE_DELEGATE ).
220223 inheritMappingFrom (ORDER_BASE_MAPPING ).
221224 source ("m.getRecordSource()" ).
@@ -234,7 +237,7 @@ public void runForDxfeedImpl() throws IOException {
234237 map ("Count" , "Count" , FieldType .INT_DECIMAL ).onlySuffixes ("com.dxfeed.event.order.impl.Order.suffixes.count" , "" ).
235238 map ("Flags" , "Flags" , FieldType .FLAGS ).
236239 map ("MarketMaker" , "MMID" , FieldType .SHORT_STRING ).onlySuffixes (
237- "com.dxfeed.event.order.impl.Order.suffixes.mmid" , "|#NTV|#BATE|#CHIX|#BXTR" ).
240+ "com.dxfeed.event.order.impl.Order.suffixes.mmid" , "|#NTV|#BATE|#CHIX|#CEUX|# BXTR" ).
238241 injectPutEventCode (
239242 "if (index < 0)" ,
240243 "\t throw new IllegalArgumentException(\" Invalid index to publish\" );" ,
@@ -246,7 +249,7 @@ public void runForDxfeedImpl() throws IOException {
246249 publishable ();
247250
248251 ctx .delegate ("SpreadOrder" , SpreadOrder .class , "SpreadOrder" ).
249- suffixes ("|#ISE" ).
252+ suffixes (getOrderSuffixes ( SpreadOrder . class ) ).
250253 inheritDelegateFrom (ORDER_BASE_DELEGATE ).
251254 inheritMappingFrom (ORDER_BASE_MAPPING ).
252255 source ("m.getRecordSource()" ).
@@ -484,4 +487,19 @@ public void runForDxfeedImpl() throws IOException {
484487
485488 ctx .generateSources ();
486489 }
490+
491+ /**
492+ * Get record suffixes for publishable order sources of specified type as a string delimited by '|' (pipe) symbol.
493+ *
494+ * @param eventType - eventType either <code>{@link Order}.<b>class</b></code>
495+ * or <code>{@link SpreadOrder}.<b>class</b></code>.
496+ * @return a list of publishable record suffixes delimited by '|' symbol.
497+ * @see OrderSource#publishable(Class)
498+ */
499+ private String getOrderSuffixes (Class <? extends OrderBase > eventType ) {
500+ return OrderSource .publishable (eventType ).stream ().
501+ filter (os -> !OrderSource .DEFAULT .equals (os ) && !OrderSource .isSpecialSourceId (os .id ())).
502+ map (orderSource -> "|#" + orderSource .name ()).
503+ collect (Collectors .joining ());
504+ }
487505}
0 commit comments