4 package eu
.etaxonomy
.taxeditor
.editor
.key
.polytomous
;
6 import java
.util
.ArrayList
;
7 import java
.util
.Arrays
;
8 import java
.util
.HashMap
;
11 import java
.util
.UUID
;
13 import eu
.etaxonomy
.cdm
.api
.conversation
.ConversationHolder
;
14 import eu
.etaxonomy
.cdm
.api
.service
.IPolytomousKeyService
;
15 import eu
.etaxonomy
.cdm
.model
.description
.PolytomousKey
;
16 import eu
.etaxonomy
.taxeditor
.editor
.key
.AbstractIdentificationEditorInput
;
17 import eu
.etaxonomy
.taxeditor
.store
.CdmStore
;
23 public class PolytomousKeyEditorInput
extends AbstractIdentificationEditorInput
<PolytomousKey
> {
25 private final String name
;
26 private final UUID keyUuid
;
27 private PolytomousKey key
;
30 protected PolytomousKeyEditorInput(ConversationHolder conversation
,
31 UUID polytomousKeyUuid
) {
33 this.keyUuid
= polytomousKeyUuid
;
34 List
<String
> propertyPath
= new ArrayList
<>();
35 propertyPath
.add("root");
36 propertyPath
.add("root.*");
37 this.key
= CdmStore
.getService(IPolytomousKeyService
.class).load(polytomousKeyUuid
, propertyPath
);
38 this.name
= key
.getTitleCache();
41 // public PolytomousKeyEditorInput(UUID polytomousKeyUuid, String name) {
42 // super(CdmStore.createConversation());
43 // this.keyUuid = polytomousKeyUuid;
48 public static PolytomousKeyEditorInput
NewInstance(UUID polytomousKeyUuid
) throws Exception
{
50 ConversationHolder conversation
= CdmStore
.createConversation();
51 return new PolytomousKeyEditorInput(conversation
, polytomousKeyUuid
);
59 * @see org.eclipse.ui.IEditorInput#getName()
62 public String
getName() {
67 public PolytomousKey
getKey() {
72 * @see java.lang.Object#equals(java.lang.Object)
75 public boolean equals(Object object
) {
76 if (object
instanceof PolytomousKeyEditorInput
78 && getKey().equals(((PolytomousKeyEditorInput
) object
).getKey())
82 return super.equals(object
);
86 * @see eu.etaxonomy.taxeditor.session.ICdmEntitySessionEnabled#getRootEntities()
89 public List
<PolytomousKey
> getRootEntities() {
90 return Arrays
.asList(key
);
94 * @see eu.etaxonomy.taxeditor.editor.CdmEntitySessionInput#merge()
98 key
= CdmStore
.getService(IPolytomousKeyService
.class).merge(key
,true).getMergedEntity();
103 public Map
<Object
, List
<String
>> getPropertyPathsMap() {
104 Map
<Object
,List
<String
>> propertyPathsMap
= new HashMap
<Object
,List
<String
>>();
106 List
<String
> polytomousKeyNodePropertyPaths
= Arrays
.asList(new String
[] {
107 "statement" //$NON-NLS-1$
109 propertyPathsMap
.put("children", polytomousKeyNodePropertyPaths
); //$NON-NLS-1$
110 return propertyPathsMap
;