2 // Before editing this file, make sure it's a file of your own (i.e.: it wasn't generated from xml description; if so : your modifications will be lost)
4 #include "bbstdVectorFilterString.h"
5 #include "bbstdPackage.h"
12 BBTK_ADD_BLACK_BOX_TO_PACKAGE(std,VectorFilterString)
13 BBTK_BLACK_BOX_IMPLEMENTATION(VectorFilterString,bbtk::AtomicBlackBox);
15 // Before editing this file, make sure it's a file of your own (i.e.: it wasn't generated from xml description; if so : your modifications will be lost)
18 void VectorFilterString::ConnectionRepetitions( std::vector<std::string> vIn,std::vector<std::string> *vOut )
20 int i,size=vIn.size();
25 if (vIn[i].compare( vIn[itmp])==0)
30 vOut->push_back(std::to_string(acum));
34 vOut->push_back(std::to_string(acum));
37 void VectorFilterString::FilterByFindinIn0()
39 std::vector<std::string> vOut0;
40 std::vector<std::string> vOut1;
41 std::vector<std::string> vOut2;
42 std::vector<std::string> vOut3;
43 std::vector<std::string> vOut4;
44 std::vector<std::string> vOut5;
45 std::vector<std::string> vOut6;
46 std::vector<std::string> vOut7;
47 std::vector<std::string> vOut8;
48 std::vector<std::string> vOut9;
50 int i,size = bbGetInputIn0().size();
52 for (i=0; i<size; i++)
54 pos=bbGetInputIn0()[i].find( bbGetInputsk1());
57 vOut0.push_back( bbGetInputIn0()[i] );
58 if ( i < bbGetInputIn1().size() ) { vOut1.push_back( bbGetInputIn1()[i] ); }
59 if ( i < bbGetInputIn2().size() ) { vOut2.push_back( bbGetInputIn2()[i] ); }
60 if ( i < bbGetInputIn3().size() ) { vOut3.push_back( bbGetInputIn3()[i] ); }
61 if ( i < bbGetInputIn4().size() ) { vOut4.push_back( bbGetInputIn4()[i] ); }
62 if ( i < bbGetInputIn5().size() ) { vOut5.push_back( bbGetInputIn5()[i] ); }
63 if ( i < bbGetInputIn6().size() ) { vOut6.push_back( bbGetInputIn6()[i] ); }
64 if ( i < bbGetInputIn7().size() ) { vOut7.push_back( bbGetInputIn7()[i] ); }
65 if ( i < bbGetInputIn8().size() ) { vOut8.push_back( bbGetInputIn8()[i] ); }
66 if ( i < bbGetInputIn9().size() ) { vOut9.push_back( bbGetInputIn9()[i] ); }
70 bbSetOutputOut0( vOut0 );
71 bbSetOutputOut1( vOut1 );
72 bbSetOutputOut2( vOut2 );
73 bbSetOutputOut3( vOut3 );
74 bbSetOutputOut4( vOut4 );
75 bbSetOutputOut5( vOut5 );
76 bbSetOutputOut6( vOut6 );
77 bbSetOutputOut7( vOut7 );
78 bbSetOutputOut8( vOut8 );
79 bbSetOutputOut9( vOut9 );
82 void VectorFilterString::InsertStringPos()
84 std::vector<std::string> vOut0;
85 std::vector<std::string> vOut1;
86 std::vector<std::string> vOut2;
87 std::vector<std::string> vOut3;
88 std::vector<std::string> vOut4;
89 std::vector<std::string> vOut5;
90 std::vector<std::string> vOut6;
91 std::vector<std::string> vOut7;
92 std::vector<std::string> vOut8;
93 std::vector<std::string> vOut9;
94 int i,size = bbGetInputIn0().size();
95 std::string sk1 = bbGetInputsk1();
96 int pos = atoi( bbGetInputsk2().c_str() );
97 for (i=0; i<size; i++)
99 vOut0.push_back( bbGetInputIn0()[i].insert(pos,sk1) );
100 if ( i < bbGetInputIn1().size() ) { vOut1.push_back( bbGetInputIn1()[i].insert(pos,sk1) ); }
101 if ( i < bbGetInputIn2().size() ) { vOut2.push_back( bbGetInputIn2()[i].insert(pos,sk1) ); }
102 if ( i < bbGetInputIn3().size() ) { vOut3.push_back( bbGetInputIn3()[i].insert(pos,sk1) ); }
103 if ( i < bbGetInputIn4().size() ) { vOut4.push_back( bbGetInputIn4()[i].insert(pos,sk1) ); }
104 if ( i < bbGetInputIn5().size() ) { vOut5.push_back( bbGetInputIn5()[i].insert(pos,sk1) ); }
105 if ( i < bbGetInputIn6().size() ) { vOut6.push_back( bbGetInputIn6()[i].insert(pos,sk1) ); }
106 if ( i < bbGetInputIn7().size() ) { vOut7.push_back( bbGetInputIn7()[i].insert(pos,sk1) ); }
107 if ( i < bbGetInputIn8().size() ) { vOut8.push_back( bbGetInputIn8()[i].insert(pos,sk1) ); }
108 if ( i < bbGetInputIn9().size() ) { vOut9.push_back( bbGetInputIn9()[i].insert(pos,sk1) ); }
110 bbSetOutputOut0( vOut0 );
111 bbSetOutputOut1( vOut1 );
112 bbSetOutputOut2( vOut2 );
113 bbSetOutputOut3( vOut3 );
114 bbSetOutputOut4( vOut4 );
115 bbSetOutputOut5( vOut5 );
116 bbSetOutputOut6( vOut6 );
117 bbSetOutputOut7( vOut7 );
118 bbSetOutputOut8( vOut8 );
119 bbSetOutputOut9( vOut9 );
122 void VectorFilterString::InvertLists()
124 std::vector<std::string> vOut0;
125 std::vector<std::string> vOut1;
126 std::vector<std::string> vOut2;
127 std::vector<std::string> vOut3;
128 std::vector<std::string> vOut4;
129 std::vector<std::string> vOut5;
130 std::vector<std::string> vOut6;
131 std::vector<std::string> vOut7;
132 std::vector<std::string> vOut8;
133 std::vector<std::string> vOut9;
134 int i,size = bbGetInputIn0().size();
135 for (i=size-1; i>=0; i--)
137 if ( i < bbGetInputIn0().size() ) { vOut0.push_back( bbGetInputIn0()[i] ); }
138 if ( i < bbGetInputIn1().size() ) { vOut1.push_back( bbGetInputIn1()[i] ); }
139 if ( i < bbGetInputIn2().size() ) { vOut2.push_back( bbGetInputIn2()[i] ); }
140 if ( i < bbGetInputIn3().size() ) { vOut3.push_back( bbGetInputIn3()[i] ); }
141 if ( i < bbGetInputIn4().size() ) { vOut4.push_back( bbGetInputIn4()[i] ); }
142 if ( i < bbGetInputIn5().size() ) { vOut5.push_back( bbGetInputIn5()[i] ); }
143 if ( i < bbGetInputIn6().size() ) { vOut6.push_back( bbGetInputIn6()[i] ); }
144 if ( i < bbGetInputIn7().size() ) { vOut7.push_back( bbGetInputIn7()[i] ); }
145 if ( i < bbGetInputIn8().size() ) { vOut8.push_back( bbGetInputIn8()[i] ); }
146 if ( i < bbGetInputIn9().size() ) { vOut9.push_back( bbGetInputIn9()[i] ); }
148 bbSetOutputOut0( vOut0 );
149 bbSetOutputOut1( vOut1 );
150 bbSetOutputOut2( vOut2 );
151 bbSetOutputOut3( vOut3 );
152 bbSetOutputOut4( vOut4 );
153 bbSetOutputOut5( vOut5 );
154 bbSetOutputOut6( vOut6 );
155 bbSetOutputOut7( vOut7 );
156 bbSetOutputOut8( vOut8 );
157 bbSetOutputOut9( vOut9 );
161 void VectorFilterString::SwitchElement(std::vector<std::string> *pVec, int i, int ii )
165 if ( (i<pVec->size()) && (ii<pVec->size()) )
168 (*pVec)[i] = (*pVec)[ii];
173 void VectorFilterString::OrderLists()
175 std::vector<std::string> vOut0=bbGetInputIn0();
176 std::vector<std::string> vOut1=bbGetInputIn1();
177 std::vector<std::string> vOut2=bbGetInputIn2();
178 std::vector<std::string> vOut3=bbGetInputIn3();
179 std::vector<std::string> vOut4=bbGetInputIn4();
180 std::vector<std::string> vOut5=bbGetInputIn5();
181 std::vector<std::string> vOut6=bbGetInputIn6();
182 std::vector<std::string> vOut7=bbGetInputIn7();
183 std::vector<std::string> vOut8=bbGetInputIn8();
184 std::vector<std::string> vOut9=bbGetInputIn9();
185 int i,ii,size = bbGetInputIn0().size();
187 for (i=0; i<=size; i++)
189 for (ii=i; ii<=size; ii++)
192 if (bbGetInputType()==5)
194 if ( vOut0[i] > vOut0[ii] )
197 } // if vIn0[i] > vIn0[ii] // string version
199 if (bbGetInputType()==6)
201 // if ( std::stod( vOut0[i] ) > std::stod( vOut0[ii] ) )
202 if ( ::atof( vOut0[i].c_str() ) > ::atof( vOut0[ii].c_str() ) )
205 } // if vIn0[i] > vIn0[ii] double version
210 SwitchElement( &vOut0 , i ,ii );
211 SwitchElement( &vOut1 , i ,ii );
212 SwitchElement( &vOut2 , i ,ii );
213 SwitchElement( &vOut3 , i ,ii );
214 SwitchElement( &vOut4 , i ,ii );
215 SwitchElement( &vOut5 , i ,ii );
216 SwitchElement( &vOut6 , i ,ii );
217 SwitchElement( &vOut7 , i ,ii );
218 SwitchElement( &vOut8 , i ,ii );
219 SwitchElement( &vOut9 , i ,ii );
223 bbSetOutputOut0( vOut0 );
224 bbSetOutputOut1( vOut1 );
225 bbSetOutputOut2( vOut2 );
226 bbSetOutputOut3( vOut3 );
227 bbSetOutputOut4( vOut4 );
228 bbSetOutputOut5( vOut5 );
229 bbSetOutputOut6( vOut6 );
230 bbSetOutputOut7( vOut7 );
231 bbSetOutputOut8( vOut8 );
232 bbSetOutputOut9( vOut9 );
235 void VectorFilterString::SubString()
237 std::vector<std::string> vOut0;
238 std::vector<std::string> vOut1;
239 std::vector<std::string> vOut2;
240 std::vector<std::string> vOut3;
241 std::vector<std::string> vOut4;
242 std::vector<std::string> vOut5;
243 std::vector<std::string> vOut6;
244 std::vector<std::string> vOut7;
245 std::vector<std::string> vOut8;
246 std::vector<std::string> vOut9;
247 int i,size = bbGetInputIn0().size();
248 int sk1 = atoi( bbGetInputsk1().c_str() );
249 int sk2 = atoi( bbGetInputsk2().c_str() );
250 for (i=0; i<size; i++)
252 if ( i < bbGetInputIn0().size() ) { vOut0.push_back( bbGetInputIn0()[i].substr(sk1,sk2) ); }
253 if ( i < bbGetInputIn1().size() ) { vOut1.push_back( bbGetInputIn1()[i].substr(sk1,sk2) ); }
254 if ( i < bbGetInputIn2().size() ) { vOut2.push_back( bbGetInputIn2()[i].substr(sk1,sk2) ); }
255 if ( i < bbGetInputIn3().size() ) { vOut3.push_back( bbGetInputIn3()[i].substr(sk1,sk2) ); }
256 if ( i < bbGetInputIn4().size() ) { vOut4.push_back( bbGetInputIn4()[i].substr(sk1,sk2) ); }
257 if ( i < bbGetInputIn5().size() ) { vOut5.push_back( bbGetInputIn5()[i].substr(sk1,sk2) ); }
258 if ( i < bbGetInputIn6().size() ) { vOut6.push_back( bbGetInputIn6()[i].substr(sk1,sk2) ); }
259 if ( i < bbGetInputIn7().size() ) { vOut7.push_back( bbGetInputIn7()[i].substr(sk1,sk2) ); }
260 if ( i < bbGetInputIn8().size() ) { vOut8.push_back( bbGetInputIn8()[i].substr(sk1,sk2) ); }
261 if ( i < bbGetInputIn9().size() ) { vOut9.push_back( bbGetInputIn9()[i].substr(sk1,sk2) ); }
263 bbSetOutputOut0( vOut0 );
264 bbSetOutputOut1( vOut1 );
265 bbSetOutputOut2( vOut2 );
266 bbSetOutputOut3( vOut3 );
267 bbSetOutputOut4( vOut4 );
268 bbSetOutputOut5( vOut5 );
269 bbSetOutputOut6( vOut6 );
270 bbSetOutputOut7( vOut7 );
271 bbSetOutputOut8( vOut8 );
272 bbSetOutputOut9( vOut9 );
278 void VectorFilterString::Process()
281 // THE MAIN PROCESSING METHOD BODY
282 // Here we simply set the input 'In' value to the output 'Out'
283 // And print out the output value
284 // INPUT/OUTPUT ACCESSORS ARE OF THE FORM :
285 // void bbSet{Input|Output}NAME(const TYPE&)
286 // const TYPE& bbGet{Input|Output}NAME() const
288 // * NAME is the name of the input/output
289 // (the one provided in the attribute 'name' of the tag 'input')
290 // * TYPE is the C++ type of the input/output
291 // (the one provided in the attribute 'type' of the tag 'input')
293 // bbSetOutputOut( bbGetInputIn() );
294 // std::cout << "Output value = " <<bbGetOutputOut() << std::endl;
296 if (bbGetInputType()==0)
298 std::vector<std::string> vOut0;
299 std::vector<std::string> vOut1;
300 std::vector<std::string> vOut2;
301 std::vector<std::string> vOut3;
302 std::vector<std::string> vOut4;
303 std::vector<std::string> vOut5;
304 std::vector<std::string> vOut6;
305 std::vector<std::string> vOut7;
306 std::vector<std::string> vOut8;
307 std::vector<std::string> vOut9;
308 ConnectionRepetitions( bbGetInputIn0() , &vOut0 );
309 ConnectionRepetitions( bbGetInputIn1() , &vOut1 );
310 ConnectionRepetitions( bbGetInputIn2() , &vOut2 );
311 ConnectionRepetitions( bbGetInputIn3() , &vOut3 );
312 ConnectionRepetitions( bbGetInputIn4() , &vOut4 );
313 ConnectionRepetitions( bbGetInputIn5() , &vOut5 );
314 ConnectionRepetitions( bbGetInputIn6() , &vOut6 );
315 ConnectionRepetitions( bbGetInputIn7() , &vOut7 );
316 ConnectionRepetitions( bbGetInputIn8() , &vOut8 );
317 ConnectionRepetitions( bbGetInputIn9() , &vOut9 );
318 bbSetOutputOut0( vOut0 );
319 bbSetOutputOut1( vOut1 );
320 bbSetOutputOut2( vOut2 );
321 bbSetOutputOut3( vOut3 );
322 bbSetOutputOut4( vOut4 );
323 bbSetOutputOut5( vOut5 );
324 bbSetOutputOut6( vOut6 );
325 bbSetOutputOut7( vOut7 );
326 bbSetOutputOut8( vOut8 );
327 bbSetOutputOut9( vOut9 );
330 if (bbGetInputType()==2)
335 if (bbGetInputType()==3)
340 if (bbGetInputType()==4)
345 if ( (bbGetInputType()==5) || (bbGetInputType()==6) )
350 if (bbGetInputType()==7)
358 // Before editing this file, make sure it's a file of your own (i.e.: it wasn't generated from xml description; if so : your modifications will be lost)
360 void VectorFilterString::bbUserSetDefaultValues()
363 // SET HERE THE DEFAULT INPUT/OUTPUT VALUES OF YOUR BOX
364 // Here we initialize the input 'In' to 0
370 // Before editing this file, make sure it's a file of your own (i.e.: it wasn't generated from xml description; if so : your modifications will be lost)
372 void VectorFilterString::bbUserInitializeProcessing()
375 // THE INITIALIZATION METHOD BODY :
377 // but this is where you should allocate the internal/output pointers
383 // Before editing this file, make sure it's a file of your own (i.e.: it wasn't generated from xml description; if so : your modifications will be lost)
385 void VectorFilterString::bbUserFinalizeProcessing()
388 // THE FINALIZATION METHOD BODY :
390 // but this is where you should desallocate the internal/output pointers
395 } // EO namespace bbstd