View Javadoc

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: IGeneralDataSet.java
13   * Created: 2009-03-25
14   * Author: kpietak
15   * $Id: IGeneralDataSet.java 3227 2009-08-20 10:01:23Z tmilos $
16   */
17  
18  package pl.edu.agh.cast.data.model.general;
19  
20  import java.util.Arrays;
21  import java.util.Collection;
22  import java.util.Collections;
23  
24  import pl.edu.agh.cast.data.model.Type;
25  import pl.edu.agh.cast.data.model.domain.IDomainDataSet;
26  
27  /**
28   * General data set which is set of entities ({@link IEntity}) connected with relations ({@link IManyToManyRelation}).
29   * It can contain alone entities (without any associated relations) but each relation has to be associated with at least
30   * two entities.
31   *
32   * @param <T>
33   *            type of contained elements
34   *
35   * @author AGH CAST Team
36   */
37  public interface IGeneralDataSet<T extends IGeneralElement> extends IDomainDataSet<T> {
38  
39  	/**
40  	 * The type of {@link IGeneralDataSet}.
41  	 */
42  	public static final Type TYPE = Type.fromClass(IGeneralDataSet.class);
43  
44  	/**
45  	 * Collection of element types accepted by this type of data set.
46  	 */
47  	public static final Collection<Type> ACCEPTED_TYPES = Collections.unmodifiableCollection(Arrays.asList(
48  	        IGeneralElement.TYPE, IEntity.TYPE, IManyToManyRelation.TYPE, IOneToOneRelation.TYPE,
49  	        ITimedManyToManyRelation.TYPE, ITimedOneToOneRelation.TYPE));
50  
51  	/**
52  	 * Returns all entities contained in the data set.
53  	 *
54  	 * @return collection of all entities from the data set; if data set contains no entities then an empty collection
55  	 */
56  	public Collection<IEntity> getEntities();
57  
58  	/**
59  	 * Returns all relations (many-to-many) contained in the data set.
60  	 *
61  	 * @return collection of all many-to-many relations from the data set; if data set contains no relations then an
62  	 *         empty collection
63  	 */
64  	public Collection<IManyToManyRelation> getRelations();
65  
66  }