@Override
public void register(Class<? extends ResourceHandler> handlerClass, ResourceTemplate template) {
ResourceTemplate previousTemplate = retrieve(handlerClass);
if(previousTemplate!=null) {
if(template==previousTemplate) {
return;
}
throw new TemplateCreationException(template.id(), String.format("Cannot register two templates with the same handler (new: %s, registered: %s)",template,previousTemplate));
}
previousTemplate=this.templatesById.get(template.id());
if(previousTemplate!=null) {
throw new TemplateCreationException(template.id(), String.format("Cannot register two templates with the same identifier (new: %s, registered: %s)",template,previousTemplate));
}
this.templatesByHandler.put(HandlerId.createId(handlerClass), template);
this.templatesById.put(template.id(), template);
}