1 package fr.in2p3.jsaga.impl.resource.instance;
2
3 import fr.in2p3.jsaga.impl.attributes.ScalarAttributeImpl;
4 import fr.in2p3.jsaga.impl.attributes.VectorAttributeImpl;
5 import fr.in2p3.jsaga.impl.monitoring.MetricMode;
6 import fr.in2p3.jsaga.impl.monitoring.MetricType;
7 import org.ogf.saga.resource.Type;
8 import org.ogf.saga.resource.instance.Resource;
9
10
11
12
13
14 public class ResourceAttributes implements Cloneable {
15 ScalarAttributeImpl<Type> m_Type;
16 public ScalarAttributeImpl<String> m_ResourceID;
17 ScalarAttributeImpl<String> m_ManagerID;
18 VectorAttributeImpl<String> m_Access;
19 ScalarAttributeImpl<String> m_Description;
20
21
22 ResourceAttributes(final AbstractResourceImpl resource) {
23 m_Type = resource._addAttribute(new ScalarAttributeImpl<Type>(
24 Resource.RESOURCE_TYPE,
25 "the resource type",
26 MetricMode.ReadOnly,
27 MetricType.Enum,
28 null));
29 m_ResourceID = resource._addAttribute(new ScalarAttributeImpl<String>(
30 Resource.RESOURCE_ID,
31 "SAGA representation of the resource identifier",
32 MetricMode.ReadOnly,
33 MetricType.String,
34 null));
35 m_ManagerID = resource._addAttribute(new ScalarAttributeImpl<String>(
36 Resource.MANAGER_ID,
37 "URL representation of the resource manager that created the resource",
38 MetricMode.ReadOnly,
39 MetricType.String,
40 null));
41 m_Access = resource._addVectorAttribute(new VectorAttributeImpl<String>(
42 Resource.ACCESS,
43 "list of access URLs",
44 MetricMode.ReadOnly,
45 MetricType.String,
46 null));
47 m_Description = resource._addAttribute(new ScalarAttributeImpl<String>(
48 Resource.RESOURCE_DESCRIPTION,
49 "the resource description",
50 MetricMode.ReadOnly,
51 MetricType.String,
52 null));
53 }
54
55
56 public ResourceAttributes clone() throws CloneNotSupportedException {
57 ResourceAttributes clone = (ResourceAttributes) super.clone();
58 clone.m_Type = m_Type.clone();
59 clone.m_ResourceID = m_ResourceID.clone();
60 clone.m_ManagerID = m_ManagerID.clone();
61 clone.m_Access = m_Access.clone();
62 clone.m_Description = m_Description.clone();
63 return clone;
64 }
65 }