package com.github.dreamhead.moco.resource.reader;
import com.github.dreamhead.moco.Request;
import com.github.dreamhead.moco.RequestExtractor;
import com.google.common.base.Optional;
public class ExtractorVariable<T> implements Variable {
private final RequestExtractor<T> extractor;
public ExtractorVariable(final RequestExtractor<T> extractor) {
this.extractor = extractor;
}
@Override
public Object toTemplateVariable(final Request request) {
Optional<T> extractContent = extractor.extract(request);
if (!extractContent.isPresent()) {
return null;
}
T target = extractContent.get();
if (target instanceof String[]) {
return target;
}
return target.toString();
}
}