1 package fr.in2p3.jsaga.impl.resource.description;
2
3 import java.util.Date;
4
5 import fr.in2p3.jsaga.impl.attributes.ScalarAttributeImpl;
6 import fr.in2p3.jsaga.impl.attributes.VectorAttributeImpl;
7 import fr.in2p3.jsaga.impl.monitoring.MetricMode;
8 import fr.in2p3.jsaga.impl.monitoring.MetricType;
9 import org.ogf.saga.resource.Type;
10 import org.ogf.saga.resource.description.ResourceDescription;
11 import org.ogf.saga.resource.instance.Resource;
12
13
14
15
16
17 public class ResourceDescriptionAttributes implements Cloneable {
18 ScalarAttributeImpl<Type> m_Type;
19 VectorAttributeImpl<String> m_template;
20 ScalarAttributeImpl<Boolean> m_dynamic;
21 ScalarAttributeImpl<String> m_placement;
22 ScalarAttributeImpl<Date> m_start;
23 ScalarAttributeImpl<Date> m_end;
24 ScalarAttributeImpl<Date> m_duration;
25
26
27 ResourceDescriptionAttributes(final AbstractResourceDescriptionImpl resourceDescription) {
28 m_Type = resourceDescription._addAttribute(new ScalarAttributeImpl<Type>(
29 Resource.RESOURCE_TYPE,
30 "the description type",
31 MetricMode.ReadWrite,
32 MetricType.Enum,
33 null));
34 m_template = resourceDescription._addVectorAttribute(new VectorAttributeImpl<String>(
35 ResourceDescription.TEMPLATE,
36 "An array of SAGA representation of the template identifier",
37 MetricMode.ReadWrite,
38 MetricType.String,
39 null));
40 m_dynamic = resourceDescription._addAttribute(new ScalarAttributeImpl<Boolean>(
41 ResourceDescription.DYNAMIC,
42 "???",
43 MetricMode.ReadWrite,
44 MetricType.Bool,
45 null));
46 m_placement = resourceDescription._addAttribute(new ScalarAttributeImpl<String>(
47 ResourceDescription.PLACEMENT,
48 "???",
49 MetricMode.ReadWrite,
50 MetricType.String,
51 null));
52 m_start = resourceDescription._addAttribute(new ScalarAttributeImpl<Date>(
53 ResourceDescription.START,
54 "Date/time to start the resource",
55 MetricMode.ReadWrite,
56 MetricType.Time,
57 null));
58 m_end = resourceDescription._addAttribute(new ScalarAttributeImpl<Date>(
59 ResourceDescription.END,
60 "Date/time to stop the resource",
61 MetricMode.ReadWrite,
62 MetricType.Time,
63 null));
64 m_duration = resourceDescription._addAttribute(new ScalarAttributeImpl<Date>(
65 ResourceDescription.DURATION,
66 "Duration of the resource",
67 MetricMode.ReadWrite,
68 MetricType.Time,
69 null));
70 }
71
72
73 public ResourceDescriptionAttributes clone() throws CloneNotSupportedException {
74 ResourceDescriptionAttributes clone = (ResourceDescriptionAttributes) super.clone();
75 clone.m_Type = m_Type.clone();
76 clone.m_template = this.m_template;
77 clone.m_dynamic = this.m_dynamic;
78 clone.m_placement = this.m_placement;
79 clone.m_start = this.m_start;
80 clone.m_end = this.m_end;
81 clone.m_duration = this.m_duration;
82 return clone;
83 }
84 }