1 /* 2 PlantUMLClassesDiagram.java 3 Creation date : 6/12/2011 4 Copyright © Benjamin Croizet (graffity2199@yahoo.fr) 5 6 This program is free software; you can redistribute it and/or 7 modify it under the terms of the GNU General Public License 8 or GNU Lesser General Public License as published by the 9 Free Software Foundation; either version 3 of the License, 10 or (at your option) any later version. 11 12 This program is distributed in the hope that it will be useful, 13 but WITHOUT ANY WARRANTY; without even the implied warranty of 14 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 GNU General Public License for more details. 16 17 You should have received copies of the GNU General Public License 18 and GNU Lesser General Public License along with this program; 19 if not, write to the Free Software Foundation, Inc., 20 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. 21 http://www.fsf.org/licensing/licenses/gpl.html 22 http://www.gnu.org/licenses/lgpl.html 23 */ 24 25 package net.sourceforge.plantumldependency.cli.plantumldiagram.classes; 26 27 import java.util.Set; 28 29 import net.sourceforge.plantumldependency.cli.plantumldiagram.PlantUMLDiagram; 30 import net.sourceforge.plantumldependency.cli.plantumldiagram.classes.element.PlantUMLClassesDiagramElement; 31 import net.sourceforge.plantumldependency.cli.plantumldiagram.classes.relation.PlantUMLClassesDiagramRelation; 32 33 /** 34 * The interface which represents a plantUML classes diagram. A plantUML classes diagram is mainly 35 * defined by two things : the elements and their relations to each other.<br> 36 * For instance, this class may be an object oriented description of the following plantUML text :<br> 37 * <code> 38 * {@literal @}startuml<br> 39 * Class01 "1" *-- "many" Class02 : contains<br> 40 * Class03 o-- Class04 : agregation<br> 41 * Class05 --> "1" Class06<br> 42 * {@literal @}enduml 43 * </code> 44 * 45 * @see <a href="http://plantuml.sourceforge.net/classes.html">PlantUML classes diagram page</a> 46 * @author Benjamin Croizet (<a href="mailto:graffity2199@yahoo.fr>graffity2199@yahoo.fr</a>) 47 * @since 1.1.1 48 * @version 1.3.0 49 */ 50 public interface PlantUMLClassesDiagram extends PlantUMLDiagram { 51 52 /** 53 * Gets all elements contained in the plantUML classes diagram. 54 * 55 * @return the {@link Set} of all {@link PlantUMLClassesDiagramElement} contained in the 56 * plantUML classes diagram. 57 * @since 1.1.1 58 */ 59 Set < PlantUMLClassesDiagramElement > getPlantUMLClassesDiagramElements(); 60 61 /** 62 * Gets all relations contained in the plantUML classes diagram. 63 * 64 * @return the {@link Set} of all {@link PlantUMLClassesDiagramRelation} contained in the 65 * plantUML classes diagram. 66 * @since 1.1.1 67 */ 68 Set < PlantUMLClassesDiagramRelation > getPlantUMLClassesDiagramRelations(); 69 }