package ameba.mvc.template.internal;
import ameba.core.Requests;
import org.glassfish.jersey.server.mvc.Viewable;
/**
* <p>Viewables class.</p>
*
* @author 张立鑫 IntelligentCode
* @since 2013-08-20
*
*/
public class Viewables {
/**
* Constant <code>PROTECTED_DIR="_protected"</code>
*/
public static final String PROTECTED_DIR = "_protected";
/**
* Constant <code>PROTECTED_DIR_PATH="/ + PROTECTED_DIR"</code>
*/
public static final String PROTECTED_DIR_PATH = "/" + PROTECTED_DIR;
private Viewables() {
}
/**
* <p>newViewable.</p>
*
* @return a {@link org.glassfish.jersey.server.mvc.Viewable} object.
*/
public static Viewable newViewable() {
return new Viewable(getPath());
}
/**
* <p>newViewable.</p>
*
* @param model a {@link java.lang.Object} object.
* @return a {@link org.glassfish.jersey.server.mvc.Viewable} object.
*/
public static Viewable newViewable(Object model) {
return new Viewable(getPath(), model);
}
private static String getPath() {
return "/" + Requests.getUriInfo().getPath();
}
private static String getPath(String name) {
return name.startsWith("/") ? name : "/" + name;
}
/**
* <p>newProtected.</p>
*
* @param model a {@link java.lang.Object} object.
* @return a {@link org.glassfish.jersey.server.mvc.Viewable} object.
*/
public static Viewable newProtected(Object model) {
return new Viewable(PROTECTED_DIR_PATH + getPath(), model);
}
/**
* <p>newProtected.</p>
*
* @return a {@link org.glassfish.jersey.server.mvc.Viewable} object.
*/
public static Viewable newProtected() {
return new Viewable(PROTECTED_DIR_PATH + getPath());
}
/**
* <p>newProtected.</p>
*
* @param name a {@link java.lang.String} object.
* @return a {@link org.glassfish.jersey.server.mvc.Viewable} object.
*/
public static Viewable newProtected(String name) {
return new Viewable(PROTECTED_DIR_PATH + getPath(name));
}
/**
* <p>newProtected.</p>
*
* @param name a {@link java.lang.String} object.
* @param model a {@link java.lang.Object} object.
* @return a {@link org.glassfish.jersey.server.mvc.Viewable} object.
*/
public static Viewable newProtected(String name, Object model) {
return new Viewable(PROTECTED_DIR_PATH + getPath(name), model);
}
/**
* <p>newDefaultViewable.</p>
*
* @return a {@link org.glassfish.jersey.server.mvc.Viewable} object.
*/
public static Viewable newDefaultViewable() {
return new Viewable("");
}
/**
* <p>newDefaultViewable.</p>
*
* @param name a {@link java.lang.String} object.
* @return a {@link org.glassfish.jersey.server.mvc.Viewable} object.
*/
public static Viewable newDefaultViewable(String name) {
return new Viewable(name);
}
/**
* <p>newDefaultViewable.</p>
*
* @param model a {@link java.lang.Object} object.
* @return a {@link org.glassfish.jersey.server.mvc.Viewable} object.
*/
public static Viewable newDefaultViewable(Object model) {
return new Viewable("", model);
}
/**
* <p>newDefaultViewable.</p>
*
* @param templateName a {@link java.lang.String} object.
* @param model a {@link java.lang.Object} object.
* @return a {@link org.glassfish.jersey.server.mvc.Viewable} object.
*/
public static Viewable newDefaultViewable(String templateName, Object model) {
return new Viewable(templateName, model);
}
}