public static void appendConditions(DynamicQuery qry, FindQualifiers fq, Name name) { String namePredicate = DynamicQuery.PREDICATE_EQUALS; if (fq != null && fq.isApproximateMatch()) { namePredicate = DynamicQuery.PREDICATE_LIKE; } qry.WHERE().pad().openParen().pad(); String nameTerm = ENTITY_ALIAS + ".name"; String nameValue = name.getValue(); if (fq != null && fq.isCaseInsensitiveMatch()) { nameTerm = "upper(" + ENTITY_ALIAS + ".name)"; nameValue = name.getValue().toUpperCase(); } // JUDDI-235: wildcards are provided by user (only commenting in case a new interpretation // arises) // if (fq.isApproximateMatch()) // nameValue = nameValue.endsWith(DynamicQuery.WILDCARD)?nameValue:nameValue + // DynamicQuery.WILDCARD; if (name.getLang() == null || name.getLang().length() == 0) { qry.appendGroupedAnd(new DynamicQuery.Parameter(nameTerm, nameValue, namePredicate)); } else { String langValue = name.getLang().endsWith(DynamicQuery.WILDCARD) ? name.getLang().toUpperCase() : name.getLang().toUpperCase() + DynamicQuery.WILDCARD; qry.appendGroupedAnd( new DynamicQuery.Parameter(nameTerm, nameValue, namePredicate), new DynamicQuery.Parameter( "upper(" + ENTITY_ALIAS + ".langCode)", langValue, DynamicQuery.PREDICATE_LIKE)); } qry.closeParen().pad(); if (fq != null && fq.isSignaturePresent()) { qry.AND() .pad() .openParen() .pad() .append(TModelQuery.SIGNATURE_PRESENT) .pad() .closeParen() .pad(); } }