package de.espirit.firstspirit.access.editor;
import de.espirit.firstspirit.access.Language; import de.espirit.firstspirit.access.editor.value.ElementReference; import de.espirit.firstspirit.access.editor.value.InvalidValueException; import de.espirit.firstspirit.access.store.IDProvider; import de.espirit.firstspirit.access.store.Referenceable; import de.espirit.firstspirit.access.store.pagestore.Section; import org.jetbrains.annotations.Nullable;
/** * Example how to store and get the ElementReference from the PageRefEditorValue * * @since 4.2.34 */ public class PageRefEditorValueExample {
/** * Stores given ElementReference as language specific value (specified by the given language) for the given PageRefEditor * * @since 4.2.34 */ public PageRefEditorValue setValueForLanguage(final PageRefEditorValue editor, final ElementReference referenceContainer, final Referenceable object, final Language language) throws InvalidValueException {
// 1. check if language is provided if editor is language dependent ("useLanguages='yes'" in gom syntax) if (editor.isLanguageDependent() && (language == null)) { throw new NullPointerException("Language is missing!"); }
// 2. store the reference to reference container referenceContainer.set(object);
// 3. store this instance in the editor value editor.set(language, referenceContainer);
// 4. and return the instance for further processing return editor; }
/** * Gets the language specific Referenceable for the given language and pageref editor * * @since 4.2.34 */ @Nullable public Referenceable getValueForLanguage(final PageRefEditorValue editor, final Language language) {
// 1. get the stored instance in the editor value final ElementReference elementReference = editor.get(language);
// 2. and return the referenced object from the container for further processing if (elementReference != null) { return elementReference.get(); } return null; }
/** * Gets the language specific IDProvider for the given language and pageref editor * * @since 4.2.34 */ @Nullable public IDProvider getReferenceForLanguage(final PageRefEditorValue editor, final Language language) {
// 1. get the {@link TargetReference } container. final ElementReference elementReference = editor.get(language);
// 2. get the referenced {@link Referenceable } element. Referenceable referenceable = null; if (elementReference != null) { referenceable = elementReference.get(); }
// 3. and return the instance for further processing return referenceable; }
/** * Stores the section name to the given referenceContainer and loads the section. * * @since 4.2.34 */ @Nullable public Section setSectionNameForValue(final ElementReference referenceContainer, final String sectionName) {
// 1. set a new section to reference. The section will be loaded by it's name. referenceContainer.setSectionName(sectionName);
// 2. return the loaded section instance for further processing return referenceContainer.getSection();
}
/** * Sets the section to the given referenceContainer and loads the section. * * @since 4.2.34 */ @Nullable public Section setSectionForValue(final ElementReference referenceContainer, final Section section) {
// 1. set a new section to reference. referenceContainer.setSection(section);
// 2. return the loaded section instance for further processing return referenceContainer.getSection();
} }
|