package org.sef4j.core.util.factorydef;
/**
* abstract helper base-class for ObjectByDefFactory<TDef,T>
*
* @param <TDef>
* @param <T>
*/
public abstract class AbstractSharedObjByDefFactory<TDef,T> implements SharedObjectByDefFactory<TDef,T> {
private final String displayName;
private final Class<TDef> defClass;
// ------------------------------------------------------------------------
public AbstractSharedObjByDefFactory(String displayName, Class<TDef> defClass) {
this.displayName = displayName;
this.defClass = defClass;
}
// ------------------------------------------------------------------------
@Override
public boolean accepts(TDef def) {
return defClass.isInstance(def);
}
@Override
public abstract T create(TDef def, DependencyObjectCreationContext ctx);
// ------------------------------------------------------------------------
public String toString() {
return displayName;
}
}