code: public void createNestedEntitiesForChoicePath(CmsEntity value, List<String> choicePath) {
  
          CmsEntity parentValue = value;
          for (String attributeChoice : choicePath) {
              CmsType choiceType = m_entityBackEnd.getType(parentValue.getTypeName()).getAttributeType(
                  CmsType.CHOICE_ATTRIBUTE_NAME);
              CmsEntity choice = m_entityBackEnd.createEntity(null, choiceType.getId());
              parentValue.addAttributeValue(CmsType.CHOICE_ATTRIBUTE_NAME, choice);
              CmsType choiceOptionType = choiceType.getAttributeType(attributeChoice);
              if (choiceOptionType.isSimpleType()) {
                  String choiceValue = m_widgetService.getDefaultAttributeValue(attributeChoice, getSimplePath(0));
                  choice.addAttributeValue(attributeChoice, choiceValue);
                  break;
              } else {
                  CmsEntity choiceValue = m_entityBackEnd.createEntity(null, choiceOptionType.getId());
                  choice.addAttributeValue(attributeChoice, choiceValue);
                  parentValue = choiceValue;
              }
          }
      }
docs: Creates a sequence of nested entities according to a given path of choice attribute names.<p>
  
  @param value the entity into which the new entities for the given path should be inserted
  @param choicePath the path of choice attributes