generalized the query decoding process.
QueryDecoder class made abstract.
any class implementing QueryDecoder class should implement createCriteria method and getCompareObject methods to make the specific case.