]> gerrit.simantics Code Review - simantics/platform.git/blob - bundles/org.simantics.db.common/src/org/simantics/db/common/utils/VersionInfo.java
ListUtils.create(g,elements) creates a list without element inverses
[simantics/platform.git] / bundles / org.simantics.db.common / src / org / simantics / db / common / utils / VersionInfo.java
1 package org.simantics.db.common.utils;
2
3 import java.util.ArrayList;
4 import java.util.Collection;
5
6 import org.simantics.db.common.NamedResource;
7 import org.simantics.utils.strings.AlphanumComparator;
8
9 public class VersionInfo {
10
11         public String baseName;
12         public String version;
13         public Collection<NamedResource> versions;
14
15         public VersionInfo(String baseName, String version, Collection<NamedResource> versions) {
16                 this.baseName = baseName;
17                 this.version = version;
18                 this.versions = versions;
19         }
20         
21         public boolean containsVersion(String version) {
22                 for(NamedResource r : versions) if(r.getName().equals(version)) return true;
23                 return false;
24         }
25         
26         public Collection<NamedResource> getOlderVersions() {
27                 ArrayList<NamedResource> result = new ArrayList<NamedResource>();
28                 for(NamedResource r : versions) {
29                         if(AlphanumComparator.COMPARATOR.compare(r.getName(), version) < 0) result.add(r);
30                 }
31                 return result;
32         }
33         
34         public Collection<NamedResource> getNewerVersions() {
35                 ArrayList<NamedResource> result = new ArrayList<NamedResource>();
36                 for(NamedResource r : versions) {
37                         if(AlphanumComparator.COMPARATOR.compare(r.getName(), version) > 0) result.add(r);
38                 }
39                 return result;
40         }
41
42         @Override
43         public boolean equals(Object object) {
44         if (this == object)
45             return true;
46         else if (object == null)
47             return false;
48         else if (!(object instanceof VersionInfo))
49             return false;
50         VersionInfo r = (VersionInfo)object;
51         return r.baseName.equals(baseName) && r.version.equals(version) && r.versions.equals(versions);
52         }
53         
54         @Override
55         public int hashCode() {
56                 return baseName.hashCode() + 31*version.hashCode() + 41*versions.hashCode();
57         }
58         
59         
60 }