1 /* 2 * This file is a part of CAST project. 3 * (c) Copyright 2007, AGH University of Science & Technology 4 * https://caribou.iisg.agh.edu.pl/trac/cast 5 * 6 * Licensed under the Eclipse Public License, Version 1.0 (the "License"). 7 * You may not use this file except in compliance with the License. 8 * You may obtain a copy of the License at 9 * http://www.eclipse.org/legal/epl-v10.html 10 */ 11 /* 12 * File: IModel.java 13 * Created: 2007-12-15 14 * Author: apohllo 15 * $Id: IModel.java 2232 2009-01-04 22:59:53Z apohllo $ 16 */ 17 18 package pl.edu.agh.cast.model.base; 19 20 import java.util.Collection; 21 import java.util.List; 22 23 import pl.edu.agh.cast.model.mapper.Mappable; 24 25 /** 26 * <p> 27 * The model interface represents single unit of work. One model may contain many data sets. The model name must be uniq 28 * globally (i.e. within the Eclipse workspace). <br/> 29 * The model primarly consists of entities and relations. The relations are organized into data sets. 30 * </p> 31 * 32 * <p> 33 * Model corresponds to the IProject, but since it does not contain diagrams (while IProject does) it is separated from 34 * it. The diagrams in the IProject contain some visual data (e.g. the entity icon) while IModel only contains "raw" 35 * data. <br> 36 * 37 * The other difference is that in the default implementation the model is mapped to base model, while IProject is not 38 * (it is kept in the Eclipse Workspace). 39 * </p> 40 * 41 * 42 * @author AGH CAST Team 43 * 44 */ 45 public interface IModel extends Mappable { 46 47 /** 48 * Return all relations which belong to this model. 49 * 50 * @return The collection of all relations 51 */ 52 List<IRelation> getRelations(); 53 54 /** 55 * Return all data sets which belong to this model. 56 * 57 * @return The collection of all data sets 58 */ 59 List<IDataSet> getDataSets(); 60 61 /** 62 * Data sets setter. 63 * 64 * @param dataSets 65 * The data sets to set. 66 */ 67 void setDataSets(List<IDataSet> dataSets); 68 69 /** 70 * Add data set to the collection of data sets. 71 * 72 * @param dataSet 73 * The data set to add. 74 * @return True if the set was add 75 */ 76 boolean addDataSet(IDataSet dataSet); 77 78 /** 79 * Model name getter. 80 * 81 * @return the name of the model. 82 */ 83 String getName(); 84 85 /** 86 * Model name setter. 87 * 88 * @param name 89 * New name of the model 90 */ 91 void setName(String name); 92 93 /** 94 * Return all entities which are present in this model. 95 * 96 * @return Collection of entities 97 */ 98 Collection<IEntity> getEntities(); 99 }