package com.xrosstools.xunit.impl;
import com.xrosstools.xunit.Context;
import com.xrosstools.xunit.Converter;
import com.xrosstools.xunit.Decorator;
import com.xrosstools.xunit.Locator;
import com.xrosstools.xunit.Processor;
import com.xrosstools.xunit.Unit;
import com.xrosstools.xunit.Validator;
public abstract class DecoratorAdapter implements Processor, Converter, Validator, Locator, Decorator {
private Unit unit;
public final void setUnit(Unit unit){
this.unit = unit;
}
public final void setDefaultKey(String key) {
((Locator)unit).setDefaultKey(key);
}
public final String getDefaultKey() {
return ((Locator)unit).getDefaultKey();
}
public final String locate(Context ctx){
before(ctx);
String key = ((Locator)unit).locate(ctx);
after(ctx);
return key;
}
public final boolean validate(Context ctx){
before(ctx);
boolean result = ((Validator)unit).validate(ctx);
after(ctx);
return result;
}
public final Context convert(Context inputCtx) {
before(inputCtx);
Context output = ((Converter)unit).convert(inputCtx);
after(output);
return output;
}
public final void process(Context ctx) {
before(ctx);
((Processor)unit).process(ctx);
after(ctx);
}
}