public <X extends T> TemplateClassDefinition(Class<T> iface, Class<X> template) {
super();
this.iface = iface;
this.template = template;
SignatureHolder holder = null;
try{
holder = SignatureHolder.getHolder(template);
}catch(Exception ex){
logger.error("Failure while trying to build signature holder for signature. {}", template.getName(), ex);
}