class NavigationContextImpl implements NavigationContext<T> {

    @Override
    public List<Long> getCategories() {
        if (categories == null) {
            return null;
        }
        return Collections.unmodifiableList(categories);
    }

    public  NavigationContextImpl(final long shopId,
                                 final long customerShopId,
                                 final String customerLanguage,
                                 final List<Long> categories,
                                 final boolean includeSubCategories,
                                 final Map<String, List<String>> navigationParameters,
                                 final T productQuery,
                                 final T productSkuQuery);

}