1 17 package org.alfresco.jcr.item.property; 18 19 import java.util.ArrayList ; 20 import java.util.List ; 21 import java.util.Set ; 22 23 import javax.jcr.RepositoryException; 24 25 import org.alfresco.jcr.dictionary.JCRNamespace; 26 import org.alfresco.jcr.dictionary.NodeTypeImpl; 27 import org.alfresco.jcr.item.NodeImpl; 28 import org.alfresco.jcr.item.PropertyImpl; 29 import org.alfresco.service.cmr.repository.NodeService; 30 import org.alfresco.service.namespace.QName; 31 32 37 public class JCRMixinTypesProperty extends PropertyImpl 38 { 39 public static QName PROPERTY_NAME = QName.createQName(JCRNamespace.JCR_URI, "mixinTypes"); 40 41 42 47 public JCRMixinTypesProperty(NodeImpl node) 48 { 49 super(node, PROPERTY_NAME); 50 } 51 52 @Override 53 protected Object getPropertyValue() throws RepositoryException 54 { 55 NodeImpl nodeImpl = getNodeImpl(); 57 NodeService nodeService = nodeImpl.getSessionImpl().getRepositoryImpl().getServiceRegistry().getNodeService(); 58 Set <QName> aspects = nodeService.getAspects(nodeImpl.getNodeRef()); 59 60 List <String > aspectNames = new ArrayList <String >(aspects.size() + 1); 62 for (QName aspect : aspects) 63 { 64 aspectNames.add(aspect.toPrefixString(nodeImpl.getSessionImpl().getNamespaceResolver())); 65 } 66 67 aspectNames.add(NodeTypeImpl.MIX_REFERENCEABLE.toPrefixString(nodeImpl.getSessionImpl().getNamespaceResolver())); 69 70 return aspectNames; 71 } 72 73 } 74 | Popular Tags |