]> gerrit.simantics Code Review - simantics/platform.git/blob - bundles/org.simantics.project/src/org/simantics/project/management/BundleInfo.java
Merge commit '728147df5d63a3333daff3d8c0e9bfd4f5597e3a'
[simantics/platform.git] / bundles / org.simantics.project / src / org / simantics / project / management / BundleInfo.java
1 /*******************************************************************************\r
2  * Copyright (c) 2007, 2010 Association for Decentralized Information Management\r
3  * in Industry THTH ry.\r
4  * All rights reserved. This program and the accompanying materials\r
5  * are made available under the terms of the Eclipse Public License v1.0\r
6  * which accompanies this distribution, and is available at\r
7  * http://www.eclipse.org/legal/epl-v10.html\r
8  *\r
9  * Contributors:\r
10  *     VTT Technical Research Centre of Finland - initial API and implementation\r
11  *******************************************************************************/\r
12 package org.simantics.project.management;\r
13 \r
14 import org.eclipse.equinox.p2.metadata.IInstallableUnit;\r
15 import org.eclipse.equinox.p2.metadata.IVersionedId;\r
16 import org.eclipse.equinox.p2.metadata.Version;\r
17 import org.eclipse.equinox.p2.metadata.VersionedId;\r
18 \r
19 public class BundleInfo implements Comparable<BundleInfo>, IVersionedId {\r
20 \r
21         public static BundleInfo read(IInstallableUnit iu) {\r
22         String name = iu.getProperty("org.eclipse.equinox.p2.name");\r
23         String description = iu.getProperty("org.eclipse.equinox.p2.description");\r
24         return new BundleInfo(iu, name, description);\r
25         }\r
26         \r
27         public IVersionedId vid;\r
28         public String name;\r
29         public String description;\r
30         \r
31         public BundleInfo(String id, String version, String name, String description) {\r
32                 vid = new VersionedId(id, version);\r
33                 this.name = name;\r
34                 this.description = description;\r
35         }\r
36         \r
37         public BundleInfo(IVersionedId vid, String name, String description) {\r
38                 this.vid = vid;\r
39                 this.name = name;\r
40                 this.description = description;          \r
41         }\r
42 \r
43         @Override\r
44         public String toString() {\r
45                 return name;\r
46         }\r
47         \r
48         public String toVersionString() {               \r
49                 return Version.emptyVersion.equals(vid.getVersion()) ? vid.getId() : vid.getId() + '/' + vid.getVersion().toString();\r
50         }\r
51         \r
52         @Override\r
53         public int compareTo(BundleInfo o) {            \r
54                 return name.compareTo( o.name );\r
55         }\r
56 \r
57         public String getId() {\r
58                 return vid.getId();\r
59         }\r
60 \r
61         public void setId(IVersionedId vid) {\r
62                 this.vid = vid;\r
63         }\r
64 \r
65         public Version getVersion() {\r
66                 return vid.getVersion();\r
67         }\r
68 \r
69         public String getDescription() {\r
70                 return description;\r
71         }\r
72 \r
73         public void setDescription(String description) {\r
74                 this.description = description;\r
75         }\r
76 \r
77         public String getName() {\r
78                 return name;\r
79         }\r
80 \r
81         public void setName(String name) {\r
82                 this.name = name;\r
83         }\r
84         \r
85         @Override\r
86         public int hashCode() {\r
87                 return vid.hashCode();\r
88         }\r
89         \r
90         @Override\r
91         public boolean equals(Object obj) {\r
92                 return vid.equals(obj);\r
93         }\r
94         \r
95 }\r
96 \r