package br.com.six2six.fixturefactory; public class ExtendedTemplateHolder { private final String label; private final TemplateHolder templateHolder; public ExtendedTemplateHolder(TemplateHolder templateHolder, String label) { this.templateHolder = templateHolder; this.label = label; } public TemplateHolder inherits(String baseTemplateLabel, Rule extendedRule) { Rule baseRule = templateHolder.getRules().get(baseTemplateLabel); if(baseRule == null) throw new IllegalArgumentException(String.format("%s-> No such template '%s' to be inherited.", templateHolder.getClazz().getName(), baseTemplateLabel)); templateHolder.getRules().put(label, new Rule(baseRule, extendedRule)); return templateHolder; } }