package com.celements.model.context; import javax.annotation.Nullable; import javax.validation.constraints.NotNull; import org.xwiki.component.annotation.ComponentRole; import org.xwiki.model.reference.EntityReference; import org.xwiki.model.reference.WikiReference; import com.xpn.xwiki.XWikiContext; import com.xpn.xwiki.doc.XWikiDocument; import com.xpn.xwiki.user.api.XWikiUser; @ComponentRole public interface ModelContext { public static final String WEB_PREF_DOC_NAME = "WebPreferences"; public static final String CFG_KEY_DEFAULT_LANG = "default_language"; public static final String FALLBACK_DEFAULT_LANG = "en"; public XWikiContext getXWikiContext(); /** * @return the current wiki set in context */ @NotNull public WikiReference getWikiRef(); /** * @param wikiRef * to be set in context * @return the wiki which was set before */ @NotNull public WikiReference setWikiRef(@NotNull WikiReference wikiRef); @NotNull public WikiReference getMainWikiRef(); /** * @return the current doc set in context */ @Nullable public XWikiDocument getDoc(); /** * @param doc * to be set in context * @return the doc which was set before */ @Nullable public XWikiDocument setDoc(@Nullable XWikiDocument doc); @Nullable public XWikiUser getUser(); @Nullable public XWikiUser setUser(@Nullable XWikiUser user); @NotNull public String getUserName(); /** * @return the default language for the current wiki */ @NotNull public String getDefaultLanguage(); /** * @param ref * from which the default language is extracted (document, space, or wiki) * @return the default language for the given reference */ @NotNull public String getDefaultLanguage(@NotNull EntityReference ref); }