class CachingTilesContainer extends TilesContainerWrapper implements MutableTilesContainer {

    @Override
    public void register(Definition definition, Request request) {
        Map<String, Definition> definitions = getOrCreateDefinitions(request);
        if (definition.getName() == null) {
            definition.setName(getNextUniqueDefinitionName(definitions));
        }

        if (definition.isExtending()) {
            this.resolveInheritance(definition, request);
        }

        definitions.put(definition.getName(), definition);
    }

    public  CachingTilesContainer(TilesContainer originalContainer);
    public  CachingTilesContainer(TilesContainer originalContainer, String definitionsAttributeName);

}