private void generateGTCodeMapForElementBinding( ArchetypeBinding archetypeBinding, ArchetypeInstantiationRuleLine airl, ElementBinding elementBinding) { ArchetypeElementInstantiationRuleLine aeirl = new ArchetypeElementInstantiationRuleLine(airl); aeirl.setReadableGuide(readableGuide); aeirl.setGTCode(elementBinding.getId()); if ("/event/time".equals(elementBinding.getPath())) { elementBinding.setPath(OpenEHRRMUtil.EVENT_TIME_PATH); } String elementId = archetypeBinding.getArchetypeId() + elementBinding.getPath(); ArchetypeElementVO archetypeElementVO = archetypeManager.getArchetypeElements().getArchetypeElement( archetypeBinding.getTemplateId(), elementId); if (archetypeElementVO == null) { throw new RuntimeException( "Element '" + elementId + (archetypeBinding.getTemplateId() != null ? " (" + archetypeBinding.getTemplateId() + ")" : "") + "' not found!"); } aeirl.setArchetypeElementVO(archetypeElementVO); gtCodeElementMap.put(elementBinding.getId(), aeirl); } }