package org.jtwig.resource.reference; import org.jtwig.resource.reference.path.PathType; import org.jtwig.resource.reference.path.PathTypeSupplier; public class DefaultResourceReferenceExtractor implements ResourceReferenceExtractor { private final PathTypeSupplier pathTypeSupplier; private final PosixResourceReferenceExtractor posixResourceReferenceExtractor; private final UncResourceReferenceExtractor uncResourceReferenceExtractor; public DefaultResourceReferenceExtractor(PathTypeSupplier pathTypeSupplier, PosixResourceReferenceExtractor posixResourceReferenceExtractor, UncResourceReferenceExtractor uncResourceReferenceExtractor) { this.pathTypeSupplier = pathTypeSupplier; this.posixResourceReferenceExtractor = posixResourceReferenceExtractor; this.uncResourceReferenceExtractor = uncResourceReferenceExtractor; } @Override public ResourceReference extract(String spec) { if (pathTypeSupplier.get() == PathType.UNC) { return uncResourceReferenceExtractor.extract(spec); } else { return posixResourceReferenceExtractor.extract(spec); } } }