Re: [Informa-developer] Suggestions for changes to core
Status: Beta
Brought to you by:
niko_schmuck
From: Jason C. <ja...@ze...> - 2002-10-14 15:23:41
|
Niko Schmuck wrote: > >No, those are really two different concepts. CategoryIF is meant >for being used to reflect the metadatum about what an item/channel >is about (in the sense of the author who contributed the news). >While ChannelGroupIF is more related for building up a convenient >hierarchy for displaying the channels a user is interested in (and >may be switched from user to user perspective), the groups must >therefore totally separated from the original channel/item content. > > Why do we need an object for CategoryIF, if this is just the tag given to the item by the author? Wouldn't this be better as just a text field with the name of the category given by the author? We aren't going to want to re-use catrgories across authors/publishers, are we? I would also suggest that get/setTitle() be added to ChannelGroupIF, since you'll want some way to name the groups, and adding nesting like the get/setParent(), getChildren(), and add/removeChild() would be valuable for ChannelGroupIF, since you'll want to be able to have hierarchical groups of channels (at least I do). >>2) Why is there an ItemMetaDataIF? Couldn't this just be rolled >>into ItemIF? Maybe not all readers want it, is all I can think... >> >> > >The intention was to obtain a clear separation between a news item >intrinsics and metadata about that item. Unfortunately (on the >programatic side) the downside is, that it does mean a bit longer >code to gather all interesting facts for an item object together. >If readers don't want to use it, this causes no headache just >ignore ItemMetaDataIF (the builder cares about initialisation). > > Ok, I can see that. The problem is that the ItemMetaData is wired into the Item. In a multi-user world, the item meta data is user-specific. Different users may have different strategies for scoring items, and will definitely want different values for isMarkedRead(). > > >>3) What are the FeedIF and FeedParserIF for? Are they just old >>versions of ChannelIF and ChannelParserIF? >> >> > >No, FeedIF and FeedParserIF are may be not very good names, but >those two interfaces are for storing information about a news >metadata feed, which may contain information about more than one >news channel (like OCS and OPML). Still futuristic, no >implementation yet, just ideas ... > Aaahh. Ok. Sorry, didn't catch the intention here. >>4) Maybe it's just me, but Informa seems too single-user only. I >>think we need a UserIF, Categories need to be owned by a user, >>and ChannelBuilderIF needs to create categories, etc. for one >>user.. >> >> > >Very good point (to introduce UserIF), while I don't agree that the >user should assign categores (see my notes on 1). I have to think >more about the implications, though. If you would elaborate more on >your multi-user idea, this could defn help. > > I want to have a (potentially) multi-user app, with different settings for each user. Each user can have their own subscriptions, altough the app will maintain a single set of all of the channels and items. When a user wants to add a channel subscription, they can either choose one of the channels already being loaded by the app, or add a new one. When users unsubscribe, if no-one else is subscribed, then the channel is de-activated. Each user should also have their own meta-data about channels and items, such as the last time the channel was read, the item score and read status. This doesn't necessarily need to be implemented by adding a UserIF, we could use java.security.Principal, or this could be something I implement in my own code. >Hope this helps a bit more to understand the design of the >interfaces. Looking forward to hear more of such detailed >feedback :-) > Here's another one for you. I think the ChannelBuilderIF should be pared down to just what the ChannelParser needs, with ChannelIF makeChannel(String title); ItemIF makeItem(String title, String description, URL link); TextInputIF makeTextInput(String title, String description, URL link); so I can implement the groups in my own code, without having to shoehorn some kind of implementation in a ChannelBuilder and cast all the time to get the methods I need. At least, that is, unless we can add that other stuff into ChannelGroupIF. Jason > >Cheers, >Niko > > > >------------------------------------------------------- >This sf.net email is sponsored by:ThinkGeek >Welcome to geek heaven. >http://thinkgeek.com/sf >_______________________________________________ >Informa-developer mailing list >Inf...@li... >https://lists.sourceforge.net/lists/listinfo/informa-developer > > > > > |