package com.github.nyrkovalex.ironadmin.core.pages; import org.jetbrains.annotations.NotNull; import java.util.Map; import java.util.Optional; public interface PageRegistry { /** * Retrieves a pages from register by its url * * @param url url of target pages * @return optional-wrapped pages or null if pages was not found */ @NotNull Optional<Page> pageFor(String url); /** * Registers a pages within admin application * * @param page pages to register * @return itself for chained invocations */ @NotNull PageRegistry register(@NotNull Page page); /** * Registers multiple pages within admin application * * @param pages pages to register * @return itself for chained invocations */ @NotNull PageRegistry register(@NotNull Page<?>... pages); /** * Returns all pages registered within current registry * * @return collection of pages registered within current registry */ @NotNull public Map<String, String> pageMap(); }