ConstantResourceFactory.java
/***************************************************************************
Copyright 2008 Emily Estes
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
***************************************************************************/
package net.metanotion.simpletemplate;
import net.metanotion.web.RequestObject;
import net.metanotion.scripting.ObjectServer;
/** This resource factory returns a constant object. Unlike the {@link ConstantDynamicResourceFactory} this factory
doesn't attempt to evaluate the object and just returns the same value always. */
public final class ConstantResourceFactory implements ResourceFactory, Resource {
private final Object resource;
/** Create a new resoruce factory that always returns the same value for any request.
@param resource The object to return for all requests. */
public ConstantResourceFactory(Object resource) { this.resource = resource; }
@Override public Resource get(String urn) { return this; }
@Override public Object skin(ObjectServer so, RequestObject ro) { return resource; }
}