class DefinitionModel {

    public void execute(String name, String template, String role,
            @Parameter(name = "extends") String extendsParam, String preparer,
            Request request, ModelBody modelBody) throws IOException {
        Deque<Object> composeStack = ComposeStackUtil
                .getComposeStack(request);
        Definition definition = createDefinition(name, template, role,
                extendsParam, preparer);
        composeStack.push(definition);
        modelBody.evaluateWithoutWriting();
        MutableTilesContainer container = (MutableTilesContainer) TilesAccess
                .getCurrentContainer(request);
        definition = (Definition) composeStack.pop();
        registerDefinition(definition, container, composeStack, request);
    }

}