[Biojava-l] circular sequences
Thomas Down
td2@sanger.ac.uk
Sun, 28 Jan 2001 20:53:48 +0000
On Mon, Jan 29, 2001 at 09:29:52AM +1300, Mark Schreiber wrote:
>
> I'll look into making a circular location.
Great.
> So far I have started making a subclass of ViewSequence to act as a view
> onto a linear SymbolList. Can anyone see problems with this?
>
> I am a little uncomfortable with the fact that all added features will not
> be added to the underlying sequence so the view and sequence must always
> be kept together (as long as they are circular anyhow).
What functionality do you want to re-use from ViewSequence
(which is a kind-of misleading name, FeatureOverlaySequence
would be more descriptive)?
As I see it, the functions of CircularSequence are:
- Offer a circularized view onto a SymbolList
- Act as a holder for Features with CircularLocations
- (As with all Sequences) hold an Annotation
In Biojava, a sequence is really just the intersection of
SymbolList, FeatureHolder, and Annotatable (plus a couple
of methods for fetching an ID). If you take a look at
SimpleSequence, you'll see is implements almost all it's
functionality by delegation to:
- An arbitrary SymbolList
- SimpleAnnotation
- SimpleFeatureHolder
- The default in-memory FeatureRealizer.
There's almost no `real' code in SimpleSequence at all.
The only difference in CircularSequence is that you need
to circularize the SymbolList.
I'd be inclined to implment this without any subclassing
at all -- my recent experience in Java has almost always been
that subclassing is something of a blunt instrument, and
delegation is a neater way to get the job done.
Anyway, end-of-hand-waving-design-philosophy-thingumybob...
It'll be good to see this working -- I'm looking forward
to a really pretty java2d plasmid-drawing program :).
Thomas.