class IntentSlotRenderer {

    public DialogSlot renderDialogSlot(IntentDefinition intentDefinition, String slotName, SlotTypeDefinition slotType, IntentSlotData slotData) {
        assertNotNull(intentDefinition, "intentDefinition");
        assertStringNotEmpty(slotName, "slotName");
        assertNotNull(slotType, "slotType");
        assertNotNull(slotData, "slotData");

        return DialogSlot.builder()
            .withName(slotName)
            .withType(slotType.getName())
            .withElicitationRequired(slotData.getElicitationRequired())
            .withConfirmationRequired(slotData.getConfirmationRequired())
            .withPrompts(DialogSlotPrompt.builder()
                .withConfirmation(getConfirmPromptName(intentDefinition, slotName, slotData))
                .withElicitation(getElicitPromptName(intentDefinition, slotName, slotData))
                .build())
            .build();
    }

}