package de.espirit.firstspirit.access.editor; import de.espirit.firstspirit.access.Language; import de.espirit.firstspirit.access.editor.value.InvalidValueException; import de.espirit.firstspirit.access.link.Link; import java.util.ArrayList; import java.util.List; /** * Example how to get the value of a LinkListEditorValue and how to store a value into a LinkListEditorValue. * * @since 4.2.34 */ public class LinkListEditorValueExample { /** * Stores the value into the LinkListEditorValue for the given language. * * @since 4.2.34 */ public void setValueForLanguage(final LinkListEditorValue editor, final List<Link> value, 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 value into the editor value editor.set(language, value); } /** * Returns the value of the LinkListEditorValue for the given language. * * @since 4.2.34 */ public List<Link> getValueForLanguage(final LinkListEditorValue editor, final Language language) { // 1. get the stored instance in the editor value final List<Link> value = editor.get(language); // 2. and return the value for further processing return value; } /** * Adds the value to the LinkListEditorValue for the given language. * * @since 4.2.34 */ public void addValueForLanguage(final LinkListEditorValue editor, final Link valueToAdd, 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. get the stored instance in the editor value List<Link> value = editor.get(language); // 3. ensure the value is not null if (value == null) { value = new ArrayList<Link>(); } // 4. add the new entry to list of values value.add(valueToAdd); // 5. store value into the editor value editor.set(language, value); } /** * Removes the value out of the LinkListEditorValue for the given language. * * @since 4.2.34 */ public void removeValueForLanguage(final LinkListEditorValue editor, final Link valueToRemove, 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. get the stored instance in the editor value final List<Link> value = editor.get(language); // 3. if the value is null there is no need to do anything if (value == null) { return; } // 4. remove the entry from list of values if (value.contains(valueToRemove)) { value.remove(valueToRemove); } // 5. store value into the editor value editor.set(language, value); } }