DCAE-D be initial commit
[sdc/dcae-d/dt-be-main.git] / dcaedt_be / src / main / java / org / onap / sdc / dcae / rule / editor / validators / ConditionValidator.java
1 package org.onap.sdc.dcae.rule.editor.validators;
2
3 import org.onap.sdc.dcae.composition.restmodels.ruleeditor.Condition;
4 import org.onap.sdc.dcae.errormng.ActionStatus;
5 import org.onap.sdc.dcae.errormng.ErrConfMgr;
6 import org.onap.sdc.dcae.errormng.ResponseFormat;
7 import org.onap.sdc.dcae.rule.editor.enums.OperatorTypeEnum;
8 import org.onap.sdc.dcae.rule.editor.utils.ValidationUtils;
9 import org.springframework.util.CollectionUtils;
10
11 import java.util.List;
12
13 public class ConditionValidator implements IRuleElementValidator<Condition> {
14
15         private static ConditionValidator conditionValidator = new ConditionValidator();
16
17         public static ConditionValidator getInstance() {
18                 return conditionValidator;
19         }
20
21         private ConditionValidator(){}
22
23         public boolean validate(Condition condition, List<ResponseFormat> errors) {
24                 boolean valid = true;
25                 if(!ValidationUtils.validateNotEmpty(condition.getLeft())) {
26                         valid = false;
27                         errors.add(ErrConfMgr.INSTANCE.getResponseFormat(ActionStatus.MISSING_OPERAND, null, "left"));
28                 }
29                 if(CollectionUtils.isEmpty(condition.getRight())) {
30                         valid = false;
31                         errors.add(ErrConfMgr.INSTANCE.getResponseFormat(ActionStatus.MISSING_OPERAND, null, "right"));
32                 }
33                 if(!ValidationUtils.validateNotEmpty(condition.getOperator()) || null == OperatorTypeEnum.getTypeByName(condition.getOperator())) {
34                         valid = false;
35                         errors.add(ErrConfMgr.INSTANCE.getResponseFormat(ActionStatus.INVALID_OPERATOR, null, condition.getOperator()));
36                 }
37                 return valid;
38         }
39
40 }