package fr.itldev.koya.repo.node.db;
import java.io.Serializable;
import java.util.Collections;
import java.util.List;
import java.util.Set;
import org.alfresco.model.ContentModel;
import org.alfresco.service.cmr.repository.ChildAssociationRef;
import org.alfresco.service.cmr.repository.NodeRef;
import org.alfresco.service.namespace.QName;
import org.alfresco.service.namespace.QNamePattern;
import fr.itldev.koya.repo.model.filefolder.NaturalOrderComparator;
public class DbNodeServiceImpl extends org.alfresco.repo.node.db.DbNodeServiceImpl {
@Override
public List<ChildAssociationRef> getChildAssocs(NodeRef nodeRef,
QNamePattern typeQNamePattern, QNamePattern qnamePattern,
int maxResults, boolean preload) {
// TODO Auto-generated method stub
List<ChildAssociationRef> results = super.getChildAssocs(nodeRef, typeQNamePattern, qnamePattern,
maxResults, preload);
Collections.sort(results, new NodeRefChildTitleComparator());
return results;
}
@Override
public List<ChildAssociationRef> getChildAssocs(NodeRef nodeRef,
Set<QName> childNodeTypeQNames) {
// TODO Auto-generated method stub
List<ChildAssociationRef> results = super.getChildAssocs(nodeRef, childNodeTypeQNames);
Collections.sort(results, new NodeRefChildTitleComparator());
return results;
}
private class NodeRefChildTitleComparator extends NaturalOrderComparator<ChildAssociationRef> {
@Override
protected String stringify(ChildAssociationRef childAssociationRef) {
Serializable title = getProperty(childAssociationRef.getChildRef(), ContentModel.PROP_TITLE);
return (title!=null)?title.toString():getProperty(childAssociationRef.getChildRef(), ContentModel.PROP_NAME).toString();
}
}
}