package org.dcache.services.httpd.util;
import org.eclipse.jetty.server.Handler;
/**
* Abstraction for httpd aliases.
*
* @author arossi
*/
public class AliasEntry
{
public enum AliasType
{
FILE("file"),
DIR("directory"),
CONTEXT("context"),
REDIRECT("redirect"),
ENGINE("class"),
WEBAPP("webapp"),
BADCONFIG("badconfig");
private final String type;
AliasType(String type)
{
this.type = type;
}
public boolean isType(String type)
{
return this.type.equalsIgnoreCase(type);
}
public String getType()
{
return type;
}
public static AliasType fromType(String type)
{
for (AliasType aliasType : AliasType.values()) {
if (aliasType.isType(type)) {
return aliasType;
}
}
throw new IllegalArgumentException("Unknown alias type: " + type);
}
}
private final String name;
private final AliasType type;
private final Handler handler;
private final String spec;
private String onError;
private String overwrite;
private String intFailureMsg;
private String statusMessage;
public AliasEntry(String name, AliasType type, Handler handler, String spec) {
this.name = name;
this.type = type;
this.handler = handler;
this.spec = spec;
}
public void setStatusMessage(String statusMessage)
{
this.statusMessage = statusMessage;
}
public Handler getHandler() {
return handler;
}
public String getIntFailureMsg() {
return intFailureMsg;
}
public String getName() {
return name;
}
public String getOnError() {
return onError;
}
public String getOverwrite() {
return overwrite;
}
public String getSpecificString() {
return spec;
}
public String getStatusMessage() {
return statusMessage;
}
public AliasType getType() {
return type;
}
public void setIntFailureMsg(String entry) {
intFailureMsg = entry;
}
public void setOnError(String entry) {
onError = entry;
}
public void setOverwrite(String entry) {
overwrite = entry;
}
@Override
public String toString() {
StringBuilder sb = new StringBuilder();
sb.append(type.getType()).append("(").append(spec).append(")");
if (onError != null) {
sb.append(" [onError=").append(onError).append("]");
}
if (overwrite != null) {
sb.append(" [overwrite ").append(overwrite).append("]");
}
return sb.toString();
}
}