/*
* Copyright 2001-2008 Geert Bevin (gbevin[remove] at uwyn dot com)
* Licensed under the Apache License, Version 2.0 (the "License")
* $Id: AbstractLogoutTemplate.java 3918 2008-04-14 17:35:35Z gbevin $
*/
package com.uwyn.rife.authentication.elements;
import com.uwyn.rife.engine.exceptions.PropertyRequiredException;
import com.uwyn.rife.engine.exceptions.UnsupportedTemplateTypeException;
import com.uwyn.rife.template.Template;
import com.uwyn.rife.template.TemplateFactory;
public abstract class AbstractLogoutTemplate extends AbstractLogout
{
protected String mTemplateName = null;
protected AbstractLogoutTemplate()
{
}
protected void setTemplateName(String name)
{
mTemplateName = name;
}
protected void init()
{
}
protected void entrance(Template template)
{
}
protected void loggedOut(Template template)
{
}
public void processElement()
{
assert mSessionManager != null;
init();
if (!hasProperty("template_name") &&
null == mTemplateName)
{
throw new PropertyRequiredException(getDeclarationName(), "template_name");
}
if (!hasProperty("authvar_name"))
{
throw new PropertyRequiredException(getDeclarationName(), "authvar_name");
}
// obtain the optional template_type property
String template_type = null;
if (hasProperty("template_type"))
{
template_type = getPropertyString("template_type");
}
else
{
template_type = "enginehtml";
}
// obtain the optional template_encoding property
String template_encoding = null;
if (hasProperty("template_encoding"))
{
template_encoding = getPropertyString("template_encoding");
}
// obtain the mandatory template_name property
String template_name = null;
if (mTemplateName != null)
{
template_name = mTemplateName;
}
else
{
template_name = getPropertyString("template_name");
}
TemplateFactory template_factory = null;
Template template = null;
template_factory = TemplateFactory.getFactory(template_type);
if (null == template_factory)
{
throw new UnsupportedTemplateTypeException(template_type);
}
template = template_factory.get(template_name, template_encoding, null);
entrance(template);
performLogout();
loggedOut(template);
print(template);
}
}