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

de.agilecoders.wicket.sass.SassResourceReferenceFactory Maven / Gradle / Ivy

The newest version!
package de.agilecoders.wicket.sass;

import org.apache.wicket.request.resource.IResourceReferenceFactory;
import org.apache.wicket.request.resource.ResourceReference;
import org.apache.wicket.util.lang.Args;

/**
 * A factory that creates a new instance of {@link SassResourceReference}
 * when there is no registered one in Wicket's {@link org.apache.wicket.request.resource.ResourceReferenceRegistry}
 * for a resource with extension .scss or .sass.
 */
public class SassResourceReferenceFactory implements IResourceReferenceFactory {

    /**
     * A factory to delegate the creation of the ResourceReference if the key's name
     * doesn't have extension .scss or .sass
     */
    private final IResourceReferenceFactory delegate;

    /**
     * Constructor.
     *
     * @param delegate A factory to delegate the creation of the ResourceReference if the key's name
     *                 doesn't have extension .scss or .sass
     */
    public SassResourceReferenceFactory(IResourceReferenceFactory delegate) {
        this.delegate = Args.notNull(delegate, "delegate");
    }

    @Override
    public ResourceReference create(ResourceReference.Key key) {
        String name = key.getName();
        String variation = key.getVariation();
        if (ContextRelativeSassResourceReference.CONTEXT_RELATIVE_SASS_REFERENCE_VARIATION.equals(variation)) {
            return new ContextRelativeSassResourceReference(name); // TODO what about the min extension ?!
        }
        if (name != null && (name.endsWith(".scss") || name.endsWith(".sass"))) {
            return new SassResourceReference(key);
        } else {
            return delegate.create(key);
        }
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy