1 package org.simantics.interop.mapping.data;
\r
4 import org.simantics.db.Resource;
\r
6 public class ResourceSplitIdentifiable2 extends ResourceIdentifiable {
\r
9 private String identifier;
\r
12 public ResourceSplitIdentifiable2(Resource resource, String identifier) {
\r
14 this.identifier = identifier;
\r
17 public static Identifiable createIdentifiable(ResourceIdentifiable identifiable, String identifier) {
\r
18 return new ResourceSplitIdentifiable2(identifiable.getResource(), identifier);
\r
22 public static Identifiable createIdentifiable(Identifiable identifiable, String identifier) {
\r
23 Resource res = identifiable.getAdapter(Resource.class);
\r
27 Resource resources[] = identifiable.getAdapter(Resource[].class);
\r
29 if (resources.length > 1) {
\r
30 return ResourceSetSplitIdentifiable2.createIdentifiable(identifiable, identifier);
\r
32 return new ResourceSplitIdentifiable2(res, identifier);
\r
38 public boolean equals(Object arg0) {
\r
41 if (this.getClass() != arg0.getClass())
\r
43 ResourceSplitIdentifiable2 other = (ResourceSplitIdentifiable2)arg0;
\r
44 if (!identifier.equals(other.identifier))
\r
46 return resource.equals(other.resource);
\r
49 public String getIdentifier() {
\r
54 public Identifiable merge(Identifiable other) {
\r
55 if (other instanceof ResourceSplitIdentifiable2) {
\r
56 ResourceSplitIdentifiable2 o = (ResourceSplitIdentifiable2)other;
\r
57 if (!o.identifier.equals(identifier))
\r
58 throw new RuntimeException("Cannot be merged, Identifiers do not match " + identifier + " " + o.identifier);
\r
59 ResourceSetSplitIdentifiable2 id = new ResourceSetSplitIdentifiable2(identifier, resource, o.resource);
\r
62 if (other instanceof ResourceSetSplitIdentifiable2) {
\r
63 ResourceSetSplitIdentifiable2 o = (ResourceSetSplitIdentifiable2)other;
\r
64 if (!o.getIdentifier().equals(identifier))
\r
65 throw new RuntimeException("Cannot be merged, Identifiers do not match " + identifier + " " + o.getIdentifier());
\r
66 ResourceSetSplitIdentifiable2 id = new ResourceSetSplitIdentifiable2(resource, o.getResources(),identifier);
\r
69 throw new RuntimeException("Cannot be merged");
\r