001/*
002 *  Copyright 2011 Anyware Services
003 *
004 *  Licensed under the Apache License, Version 2.0 (the "License");
005 *  you may not use this file except in compliance with the License.
006 *  You may obtain a copy of the License at
007 *
008 *      http://www.apache.org/licenses/LICENSE-2.0
009 *
010 *  Unless required by applicable law or agreed to in writing, software
011 *  distributed under the License is distributed on an "AS IS" BASIS,
012 *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
013 *  See the License for the specific language governing permissions and
014 *  limitations under the License.
015 */
016package org.ametys.plugins.glossary;
017
018import java.util.Collection;
019import java.util.Set;
020
021import org.ametys.plugins.repository.AmetysRepositoryException;
022
023/**
024 * A glossary definition.
025 */
026public interface Definition
027{
028    
029    /**
030     * Get the word.
031     * @return the word
032     * @throws AmetysRepositoryException if an error occurs.
033     */
034    public String getWord() throws AmetysRepositoryException;
035    
036    /**
037     * Set the word.
038     * @param word the word to set
039     * @throws AmetysRepositoryException if an error occurs.
040     */
041    public void setWord(String word) throws AmetysRepositoryException;
042    
043    /**
044     * Get the variants.
045     * @return the variants
046     * @throws AmetysRepositoryException if an error occurs.
047     */
048    public Set<String> getVariants() throws AmetysRepositoryException;
049    
050    /**
051     * Set the variants.
052     * @param variants the variants to set
053     * @throws AmetysRepositoryException if an error occurs.
054     */
055    public void setVariants(Collection<String> variants) throws AmetysRepositoryException;
056    
057    /**
058     * Get the content.
059     * @return _the content
060     * @throws AmetysRepositoryException if an error occurs.
061     */
062    public String getContent() throws AmetysRepositoryException;
063    
064    /**
065     * Set the content.
066     * @param content the content to set
067     * @throws AmetysRepositoryException if an error occurs.
068     */
069    public void setContent(String content) throws AmetysRepositoryException;
070    
071    /**
072     * Get the displayOnText.
073     * @return _the displayOnText
074     * @throws AmetysRepositoryException if an error occurs.
075     */
076    public boolean displayOnText() throws AmetysRepositoryException;
077    
078    /**
079     * Set the displayOnText.
080     * @param displayOnText the displayOnText to set
081     * @throws AmetysRepositoryException if an error occurs.
082     */
083    public void setDisplayOnText(boolean displayOnText) throws AmetysRepositoryException;
084    
085    /**
086     * Get the themes.
087     * 
088     * @return the themes in an Array
089     * @throws AmetysRepositoryException if an error occurs.
090     */
091    public String[] getThemes() throws AmetysRepositoryException;
092
093    /**
094     * Set the themes.
095     * 
096     * @param themes the themes to set.
097     * @throws AmetysRepositoryException if an error occurs.
098     */
099    public void setThemes(String[] themes) throws AmetysRepositoryException;
100
101    /**
102     * Remove theme if exist
103     * 
104     * @param themeId The id of theme to remove
105     * @throws AmetysRepositoryException if an error occurs
106     */
107    public void removeTheme(String themeId) throws AmetysRepositoryException;
108    
109    /**
110     * Get all forms.
111     * @return a list of all the word forms (word + variants).
112     * @throws AmetysRepositoryException if an error occurs.
113     */
114    public Set<String> getAllForms() throws AmetysRepositoryException;
115    
116}