1 17 package org.alfresco.jcr.dictionary; 18 19 import java.io.Serializable ; 20 import java.util.HashMap ; 21 import java.util.Map ; 22 23 import javax.jcr.RepositoryException; 24 25 import org.alfresco.jcr.session.SessionImpl; 26 import org.alfresco.model.ContentModel; 27 import org.alfresco.service.cmr.repository.NodeRef; 28 import org.alfresco.service.namespace.QName; 29 30 31 36 public class ClassMap 37 { 38 39 private static Map <QName, QName> JCRToAlfresco = new HashMap <QName, QName>(); 40 static 41 { 42 JCRToAlfresco.put(NodeTypeImpl.MIX_REFERENCEABLE, ContentModel.ASPECT_REFERENCEABLE); 43 JCRToAlfresco.put(NodeTypeImpl.MIX_LOCKABLE, ContentModel.ASPECT_LOCKABLE); 44 JCRToAlfresco.put(NodeTypeImpl.MIX_VERSIONABLE, ContentModel.ASPECT_VERSIONABLE); 45 } 46 47 48 private static Map <QName, QName> AlfrescoToJCR = new HashMap <QName, QName>(); 49 static 50 { 51 AlfrescoToJCR.put(ContentModel.ASPECT_REFERENCEABLE, NodeTypeImpl.MIX_REFERENCEABLE); 52 AlfrescoToJCR.put(ContentModel.ASPECT_LOCKABLE, NodeTypeImpl.MIX_LOCKABLE); 53 AlfrescoToJCR.put(ContentModel.ASPECT_VERSIONABLE, NodeTypeImpl.MIX_VERSIONABLE); 54 } 55 56 57 private static Map <QName, AddMixin> addMixin = new HashMap <QName, AddMixin>(); 58 static 59 { 60 addMixin.put(ContentModel.ASPECT_VERSIONABLE, new VersionableMixin()); 61 } 62 63 64 private static Map <QName, RemoveMixin> removeMixin = new HashMap <QName, RemoveMixin>(); 65 static 66 { 67 removeMixin.put(ContentModel.ASPECT_VERSIONABLE, new VersionableMixin()); 68 } 69 70 71 78 public static QName convertTypeToClass(QName jcrType) 79 { 80 return JCRToAlfresco.get(jcrType); 81 } 82 83 90 public static QName convertClassToType(QName alfrescoClass) 91 { 92 return JCRToAlfresco.get(alfrescoClass); 93 } 94 95 101 public static AddMixin getAddMixin(QName alfrescoClass) 102 { 103 return addMixin.get(alfrescoClass); 104 } 105 106 112 public static RemoveMixin getRemoveMixin(QName alfrescoClass) 113 { 114 return removeMixin.get(alfrescoClass); 115 } 116 117 122 public interface AddMixin 123 { 124 public Map <QName, Serializable > preAddMixin(SessionImpl session, NodeRef nodeRef); 125 public void postAddMixin(SessionImpl session, NodeRef nodeRef); 126 } 127 128 133 public interface RemoveMixin 134 { 135 public void preRemoveMixin(SessionImpl session, NodeRef nodeRef); 136 public void postRemoveMixin(SessionImpl session, NodeRef nodeRef); 137 } 138 139 } 140 | Popular Tags |