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: VisualDataSetDescriptor.java
13 * Created: 2009-05-19
14 * Author: tmilos
15 * $Id: VisualDataSetDescriptor.java 3558 2009-11-10 16:21:57Z tmilos $
16 */
17
18 package pl.edu.agh.cast.data.model.visual;
19
20 import java.util.Date;
21 import java.util.UUID;
22
23 import pl.edu.agh.cast.data.model.DataSetDescriptor;
24 import pl.edu.agh.cast.data.model.Type;
25 import pl.edu.agh.cast.data.model.presentation.PresentationDataSetDescriptor;
26
27 /**
28 * Enhanced descriptor of a domain data set (see {@link IVisualDataSet}).
29 *
30 * @author AGH CAST Team
31 */
32 public final class VisualDataSetDescriptor extends DataSetDescriptor {
33
34 /**
35 * Serial version UID.
36 */
37 private static final long serialVersionUID = -7229963240037929886L;
38
39 private PresentationDataSetDescriptor presentationDescriptor;
40
41 /**
42 * Default constructor.
43 *
44 * <p>
45 * Usage of this constructor is discouraged, since it does not provide any integrity control. If, however, this
46 * constructor is used, the {@link #isValid()} method should be called in order to check the integrity.
47 */
48 public VisualDataSetDescriptor() {
49 }
50
51 /**
52 * Initializes descriptor with type.
53 *
54 * <p>
55 * The ID has to be set manually - until then the data set descriptor is <strong>invalid</strong>.
56 *
57 * @param type
58 * the data set type
59 */
60 public VisualDataSetDescriptor(Type type) {
61 super(type);
62 }
63
64 /**
65 * Constructor for descriptors of new data sets.
66 *
67 * <p>
68 * The new descriptor has a random ID and current creation date.
69 *
70 * @param type
71 * the data set type
72 * @param name
73 * the data set name
74 */
75 public VisualDataSetDescriptor(Type type, String name) {
76 super(type, name);
77 }
78
79 /**
80 * Constructor.
81 *
82 * @param id
83 * the data set ID
84 * @param type
85 * the data set type
86 * @param name
87 * the data set name
88 * @param creationDate
89 * the data set creation date
90 */
91 public VisualDataSetDescriptor(UUID id, Type type, String name, Date creationDate) {
92 this(id, type, name, creationDate, null);
93 }
94
95 /**
96 * Constructor.
97 *
98 * @param id
99 * the data set ID
100 * @param type
101 * the data set type
102 * @param name
103 * the data set name
104 * @param creationDate
105 * the data set creation date
106 * @param descriptor
107 * presentation data set descriptor
108 */
109 public VisualDataSetDescriptor(UUID id, Type type, String name, Date creationDate,
110 PresentationDataSetDescriptor descriptor) {
111 super(type, id, name, creationDate);
112 setPresentationDataSetDescriptor(descriptor);
113 }
114
115 /**
116 * Gets the descriptor of presentation data set wrapped by visual data set described by this descriptor.
117 *
118 * @return presentation data set descriptor
119 *
120 * @see PresentationDataSetDescriptor
121 */
122 public PresentationDataSetDescriptor getPresentationDataSetDescriptor() {
123 return this.presentationDescriptor;
124 }
125
126 /**
127 * Sets the descriptor of presentation data set wrapped by visual data set described by this descriptor.
128 *
129 * @param descriptor
130 * presentation data set descriptor
131 *
132 * @see PresentationDataSetDescriptor
133 */
134 public void setPresentationDataSetDescriptor(PresentationDataSetDescriptor descriptor) {
135 this.presentationDescriptor = descriptor;
136 }
137
138 }