View Javadoc

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   * *** Centre de Calcul de l'IN2P3 - Lyon (France) ***
15   * ***             http://cc.in2p3.fr/             ***
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      /** constructor */
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      /** clone */
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  }