+1 for the revised proposal.

Jean-Vincent Drean wrote:
> On Tue, Jan 20, 2009 at 6:50 PM, Sergiu Dumitriu <[email protected]> wrote:
>> Is this global? I mean, does it get all tags found in the wiki, or just
>> the tags for the current document? I'd like to also have a method to get
>> tags for a document (+ for translations), since the getTags method does
>> not belong to the Document class (although it is part of the current
>> API, I'd like to see it removed in the new model). Maybe we should
>> deprecate it after we add this plugin/application.
> 
> It is global and was named getAllTags at first, ok to rename it.
> 
>> What does "distinct" do? I'd rather have a caseSensitive parameter, or
>> different methods for this.
> 
> Distinct was not about case but about tag occurences here which
> appears to be misleading.
> 
>>> public List<String> getPagesWithTag(String tag);
>> Pages? This is not our terminology.
>>
> 
> I hesitated for this. We're kind of mixing both and I tend to use page
> everywhere since I vaguely remember we discussed in the past that in
> the future we should move from Document to Page like we did (and do)
> from Web to Space. Anyway I agree that it's not consistent with the
> other APIs, I'll rename.
> 
>>> public boolean renameTag(String tag, String newTag);
>>> public boolean deleteTag(String tag);
>> What happens when the user does not have the right to alter all the
>> documents, only some of them? Will the changes appear in whatsnew? Will
>> they create new versions? Will they change the author?
> 
> I check XWiki.hasAdminRights() in the API since I consider this as an
> administration task.
> Those renames create new minor versions thus not appearing in whats new.
> 
>> We'd also need a method to get all tags with their occurrence count (for
>> the tag cloud).
> 
> I did it with more logic on the velocity side (and with the 'distinct'
> above) but this would be better.
> 
>> So, how about this API:
>>
>> - List<String> getAllTags() -> all wiki tags, case insensitive (CI)
>> - List<String> getAllTags(boolean caseInsensitive) -> all tags
> 
> At first I put a ignoreCase argument in getPagesWithTag, renameTag,
> deleteTag .. then I decided not to take care of the case since this is
> not something we usualy do in XWiki (document names for example) and
> thought that if we really need it we could still have a global option
> for this in the future.
> 
>> - HashMap<String, Integer> getTagCount() -> all wiki tags with
>> occurrence, CI
>> - HashMap<String, Integer> getTagCount(boolean caseInsensitive) -> all
>> wiki tags with occurrence
>> - List<String> getTagsForDocument(Document doc) -> document tags
>> --> Debate: XWikiDocument, Document or String? Or all?
> 
> I'd say juste a String ftm, aka fullName.
> 
>> - boolean addTagToDocument(String tag, Document doc) -> returns true if
>> the tag was successfully added, false if the tag was already associated.
>> Throws exceptions in other cases (not enough rights, db issues, etc). -
>> boolean removeTagFromDocument(String tag, Document doc) -> returns true
>> if the tag was successfully removed, false if the tag was not
>> associated. Throws exceptions in other cases (not enough rights, db
>> issues, etc).
>> - public List<String> getDocumentsWithTag(String tag)
>> - public boolean renameTag(String tag, String newTag)
>> - public boolean deleteTag(String tag)
> 
> Fine with this. Revised proposal:
> 
> List<String>       getAllTags()
> HashMap<String, Integer>        getTagCount()
> List<String>        getDocumentsWithTag(String tag)
> boolean      renameTag(String tag, String newTag)
> boolean      deleteTag(String tag)
> boolean      addTagToDocument(String tag, String fullName)
> boolean      removeTagFromDocument(String tag,String fullName)
> List<String>      getTagsForDocument(String fullName)
> 
>> Debate: how to identify a document
> [snip]
> 
> I'm snipping the debate since I think it is related to a more broader
> discussion about the new model.
> 
> Thanks,
> JV.
> _______________________________________________
> devs mailing list
> [email protected]
> http://lists.xwiki.org/mailman/listinfo/devs
_______________________________________________
devs mailing list
[email protected]
http://lists.xwiki.org/mailman/listinfo/devs

Reply via email to