All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.jtwig.resource.resolver.ReferenceRelativeResourceResolver Maven / Gradle / Ivy

The newest version!
package org.jtwig.resource.resolver;

import com.google.common.base.Optional;
import org.jtwig.resource.reference.ResourceReference;
import org.jtwig.resource.resolver.path.RelativeReferenceResolver;

import java.util.Collection;

public class ReferenceRelativeResourceResolver implements RelativeResourceResolver {
    private final Collection pathTypes;
    private final RelativeReferenceResolver relativePathResolver;

    public ReferenceRelativeResourceResolver(Collection pathTypes, RelativeReferenceResolver relativePathResolver) {
        this.pathTypes = pathTypes;
        this.relativePathResolver = relativePathResolver;
    }

    @Override
    public Optional resolve(ResourceReference parentReference, ResourceReference newReference) {
        if (pathTypes.contains(parentReference.getType())) {
            if (relativePathResolver.isRelative(newReference.getPath())) {
                return Optional.of(new ResourceReference(parentReference.getType(), relativePathResolver.resolve(parentReference.getPath(), newReference.getPath())));
            } else {
                return Optional.of(newReference);
            }
        } else {
            return Optional.absent();
        }
    }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy