条件文字列にあるメソッドがあり、論理演算子の前後にスペースがない場合、エラーがスローされます。たとえば、「more」のような単語が見つかった場合、または「or」が見つかった場合にエラーが発生するという問題があります。これは例であり、以下は私のコードです。
調子: (da_cargue_hechos_mora_abonados) and s(da_cliente_diario_scl) and s(da_e_abonado_diario_pos) and s(da_e_abonado_diario_pre) and s(da_dim_situacion_scl) and s(da_dim_oficina_scl)
Code:
private static Job checkSpacesInCondition(Job job) {
String condition = null;
condition = job.getCondition();
// If null, no check needed
if (condition != null) {
condition = condition.toLowerCase();
condition = condition.replaceAll("&&", "and");
condition = condition.replaceAll("&", "and");
for (String word : CONDITION_OPERATORS) {
Pattern logicalPattern = Pattern.compile("\\S" + word + "|"
+ word + "\\S");
Matcher logicalMatcher = logicalPattern.matcher(condition);
boolean foundNoSpace = logicalMatcher.find();
if (foundNoSpace) {
job.addWarning(JobWarning.SPACES_AFTER_LOGICAL_OPERATOR);
}
}
}
return job;
}