Switch some new services to using a tagging service method, rather than doing the work internally

git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@29535 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
Nick Burch
2011-08-03 16:31:19 +00:00
parent 2e6df326bf
commit e707401353
2 changed files with 3 additions and 99 deletions

View File

@@ -124,53 +124,6 @@ public class CalendarServiceImpl implements CalendarService
siteShortName, CALENDAR_COMPONENT, create, siteShortName, CALENDAR_COMPONENT, create,
siteService, transactionService, taggingService); siteService, transactionService, taggingService);
} }
private void handleTags(CalendarEntry entry)
{
NodeRef nodeRef = entry.getNodeRef();
List<String> currentTags = taggingService.getTags(nodeRef);
List<String> newTags = entry.getTags();
if(currentTags.size() == 0 && newTags.size() == 0)
{
// No tags, easy
return;
}
// Figure out what (if anything) changed
Set<String> toAdd = new HashSet<String>(newTags);
Set<String> toDel = new HashSet<String>(currentTags);
for(String tag : currentTags)
{
if(toAdd.contains(tag))
{
toAdd.remove(tag);
}
}
for(String tag : newTags)
{
if(toDel.contains(tag))
{
toDel.remove(tag);
}
}
if(toDel.size() == 0 && toAdd.size() == 0)
{
// No changes
}
// Make the changes
for(String tag : toDel)
{
taggingService.removeTag(nodeRef, tag);
}
for(String tag : toAdd)
{
taggingService.addTag(nodeRef, tag);
}
}
@Override @Override
public CalendarEntry getCalendarEntry(String siteShortName, String entryName) public CalendarEntry getCalendarEntry(String siteShortName, String entryName)
@@ -237,7 +190,7 @@ public class CalendarServiceImpl implements CalendarService
} }
// Tag it // Tag it
handleTags(entryImpl); taggingService.setTags(nodeRef, entry.getTags());
// All done // All done
return entryImpl; return entryImpl;
@@ -267,7 +220,7 @@ public class CalendarServiceImpl implements CalendarService
nodeService.setProperties(entry.getNodeRef(), properties); nodeService.setProperties(entry.getNodeRef(), properties);
// Update the tags // Update the tags
handleTags(entry); taggingService.setTags(entry.getNodeRef(), entry.getTags());
// Nothing was changed on the entry itself // Nothing was changed on the entry itself
return entry; return entry;

View File

@@ -22,10 +22,8 @@ import java.io.Serializable;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Date; import java.util.Date;
import java.util.HashMap; import java.util.HashMap;
import java.util.HashSet;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Set;
import org.alfresco.model.ContentModel; import org.alfresco.model.ContentModel;
import org.alfresco.query.CannedQueryFactory; import org.alfresco.query.CannedQueryFactory;
@@ -138,53 +136,6 @@ public class LinksServiceImpl implements LinksService
siteService, transactionService, taggingService); siteService, transactionService, taggingService);
} }
private void handleTags(LinkInfo link)
{
NodeRef nodeRef = link.getNodeRef();
List<String> currentTags = taggingService.getTags(nodeRef);
List<String> newTags = link.getTags();
if(currentTags.size() == 0 && newTags.size() == 0)
{
// No tags, easy
return;
}
// Figure out what (if anything) changed
Set<String> toAdd = new HashSet<String>(newTags);
Set<String> toDel = new HashSet<String>(currentTags);
for(String tag : currentTags)
{
if(toAdd.contains(tag))
{
toAdd.remove(tag);
}
}
for(String tag : newTags)
{
if(toDel.contains(tag))
{
toDel.remove(tag);
}
}
if(toDel.size() == 0 && toAdd.size() == 0)
{
// No changes
}
// Make the changes
for(String tag : toDel)
{
taggingService.removeTag(nodeRef, tag);
}
for(String tag : toAdd)
{
taggingService.addTag(nodeRef, tag);
}
}
private LinkInfo buildLink(NodeRef nodeRef, NodeRef container, String name) private LinkInfo buildLink(NodeRef nodeRef, NodeRef container, String name)
{ {
LinkInfoImpl link = new LinkInfoImpl(nodeRef, container, name); LinkInfoImpl link = new LinkInfoImpl(nodeRef, container, name);
@@ -313,7 +264,7 @@ public class LinksServiceImpl implements LinksService
} }
// Now do the tags // Now do the tags
handleTags(link); taggingService.setTags(nodeRef, link.getTags());
// All done // All done
return link; return link;