package de.espirit.firstspirit.access.editor; import de.espirit.firstspirit.access.Language; import de.espirit.firstspirit.access.editor.value.InvalidValueException; import de.espirit.or.schema.Entity; import java.util.ArrayList; import java.util.List; /** * Example how to get the value of a ContentListEditorValue and how to store a value into ContentListEditorValue. * * @since 4.2.34 */ public class ContentListEditorValueExample { /** * Stores the value into the ContentListEditorValue for the given language. * * @since 4.2.34 */ public void setValueForLanguage(final ContentListEditorValue editor, final List<Entity> 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 ContentListEditorValue for the given language. * * @since 4.2.34 */ public List<Entity> getValueForLanguage(final ContentListEditorValue editor, final Language language) { // 1. get the stored instance in the editor value final List<Entity> value = editor.get(language); // 2. and return the value for further processing return value; } /** * Adds the value to the ContentListEditorValue for the given language. * * * @since 4.2.34 */ public void addValueForLanguage(final ContentListEditorValue editor, final Entity 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<Entity> value = editor.get(language); // 3. ensure the value is not null if (value == null) { value = new ArrayList<Entity>(); } // 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 ContentListEditorValue for the given language. * * @since 4.2.34 */ public void removeValueForLanguage(final ContentListEditorValue editor, final Entity 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<Entity> 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); } }