Package com.michelboudreau.alternator.validators

Source Code of com.michelboudreau.alternator.validators.KeySchemaValidator

package com.michelboudreau.alternator.validators;

import com.amazonaws.services.dynamodb.model.KeySchema;
import com.michelboudreau.alternator.validation.Validator;
import com.michelboudreau.alternator.validation.ValidatorUtils;

import java.util.List;

public class KeySchemaValidator extends Validator {

  public Boolean supports(Class clazz) {
    return KeySchema.class.isAssignableFrom(clazz);
  }

  public List<Error> validate(Object target) {
    KeySchema instance = (KeySchema) target;
    List<Error> errors = ValidatorUtils.rejectIfNull(instance);
    if (errors.size() == 0) {
      errors.addAll(ValidatorUtils.rejectIfNull(instance.getHashKeyElement()));
      if (errors.size() == 0) {
        if (instance.getHashKeyElement() != null) {
          errors.addAll(ValidatorUtils.invokeValidator(new KeySchemaElementValidator(), instance.getHashKeyElement()));
        }

        if (instance.getRangeKeyElement() != null) {
          errors.addAll(ValidatorUtils.invokeValidator(new KeySchemaElementValidator(), instance.getRangeKeyElement()));
          if (instance.getHashKeyElement().getAttributeName().equals(instance.getRangeKeyElement().getAttributeName())) {
            errors.add(new Error("Both the Hash Key and the Range Key element in the KeySchema have the same name."));
          }
        }
      }
    }
    return removeNulls(errors);
  }
}
TOP

Related Classes of com.michelboudreau.alternator.validators.KeySchemaValidator

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.