package voldemort.rest; import org.apache.log4j.Logger; import org.jboss.netty.channel.MessageEvent; import org.jboss.netty.handler.codec.http.HttpRequest; import voldemort.store.CompositeDeleteVoldemortRequest; import voldemort.store.CompositeVoldemortRequest; import voldemort.utils.ByteArray; /** * This class is used to parse an incoming delete request. Parses and validates * the REST Request and constructs a CompositeVoldemortRequestObject. Also * handles exceptions specific to delete operation. */ public class RestDeleteRequestValidator extends RestRequestValidator { private final boolean isVectorClockOptional; private final Logger logger = Logger.getLogger(RestDeleteRequestValidator.class); public RestDeleteRequestValidator(HttpRequest request, MessageEvent messageEvent, boolean isVectorClockOptional) { super(request, messageEvent); this.isVectorClockOptional = isVectorClockOptional; } @Override public CompositeVoldemortRequest<ByteArray, byte[]> constructCompositeVoldemortRequestObject() { if(parseAndValidateRequest()) { if(logger.isDebugEnabled()) { debugLog("DELETE", System.currentTimeMillis()); } this.requestObject = new CompositeDeleteVoldemortRequest<ByteArray, byte[]>(this.parsedKeys.get(0), this.parsedVectorClock, this.parsedTimeoutInMs, this.parsedRequestOriginTimeInMs, this.parsedRoutingType); return this.requestObject; } // Return null if request is not valid return null; } /** * Validations specific to DELETE */ @Override public boolean parseAndValidateRequest() { if(!super.parseAndValidateRequest() || !hasVectorClock(this.isVectorClockOptional)) { return false; } return true; } }