package Ġro . and ob . out of room . query builder Ċ Ċ import Ġro . and ob . out of room . Column Ċ import Ġjava . util .* Ċ Ċ class ĠQuery Where Conditions Ġ: ĠLinkedList < String >() Ċ { ĊĠĠĠ Ġfun Ġadd Search Conditions ( search Ġ: ĠString ?, Ġcolumns Ġ: ĠArray < Column >) ĊĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcolumns As Strings = Array ( columns . size , Ġinit Ġ= Ġ{ Ġi Ġ-> Ġcolumns [ i ]. toString () Ġ}) ĊĠĠĠĠĠĠĠ Ġadd Search Conditions ( search , Ġcolumns As Strings ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġadd Search Conditions ( search Ġ: ĠString ?, Ġcolumns Ġ: ĠArray < String >) ĊĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( search != null && search . isNotEmpty ()) ĊĠĠĠĠĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlike Argument ="' % ${ SQ LE scape . escape And Un quote String ( search )} % '" ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( columns . size == 1 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd (" Ġ${ columns [ 0 ]} Ġlike Ġ$ like Argument Ġ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsub condition = Query Where Conditions () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( columnName Ġin Ġcolumns ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsub condition . add (" Ġ$ columnName Ġlike Ġ$ like Argument Ġ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd (" (${ sub condition . merge With Or () }) ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġmerge With And () Ġ= ĊĠĠĠĠĠĠĠ Ġif Ġ(! isEmpty ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . join ToString ( separator Ġ= Ġ" Ġand Ġ") ĊĠĠĠĠĠĠĠ Ġelse Ġ" Ġ 1 == 1 Ġ" ĊĊĠĠĠ Ġfun Ġmerge With Or () Ġ= ĊĠĠĠĠĠĠĠ Ġif Ġ(! isEmpty ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . join ToString ( separator Ġ= Ġ" Ġor Ġ") ĊĠĠĠĠĠĠĠ Ġelse Ġ" Ġ 1 == 1 Ġ" Ċ }