package com.github.dreamhead.moco.mount;
import com.github.dreamhead.moco.HttpRequest;
import com.github.dreamhead.moco.HttpRequestExtractor;
import com.github.dreamhead.moco.RequestExtractor;
import com.github.dreamhead.moco.extractor.UriRequestExtractor;
import com.google.common.base.Optional;
import static com.google.common.base.Optional.absent;
public class MountPathExtractor extends HttpRequestExtractor<String> {
private final MountTo target;
private final RequestExtractor<String> extractor = new UriRequestExtractor();
public MountPathExtractor(final MountTo target) {
this.target = target;
}
@Override
protected Optional<String> doExtract(final HttpRequest request) {
Optional<String> extractedUri = extractor.extract(request);
if (!extractedUri.isPresent()) {
return absent();
}
return target.extract(extractedUri.get());
}
}