Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.lang.java.programmer > #18571
| From | Steven Simpson <ss@domain.invalid> |
|---|---|
| Newsgroups | comp.lang.java.programmer |
| Subject | Re: Wormholes |
| Date | 2012-09-06 11:47 +0100 |
| Organization | A noiseless patient Spider |
| Message-ID | <libmh9-9h7.ln1@s.simpson148.btinternet.com> (permalink) |
| References | <0ska4895k2mp2j5fb5p4qnue7lsbdpoeoo@4ax.com> <9mbhh9-mce.ln1@s.simpson148.btinternet.com> <aapoq4F75iU1@mid.individual.net> <u40lh9-726.ln1@s.simpson148.btinternet.com> <slrnk4grd8.u9l.avl@gamma.logic.tuwien.ac.at> |
On 06/09/12 10:32, Andreas Leitgeb wrote:
> Steven Simpson <ss@domain.invalid> wrote:
>> So, we throw in a ThreadLocal:
>>
>> static ThreadLocal<Context> context = ...;
>>
>> class MyAppSpecBox extends Box {
>> InputStream getFieldContent() {
>> Context ctxt = context.get();
>> ...
>> }
>> }
>>
>> We set it before invoking the hierarchy:
>>
>> Box root = cache.fetch(key);
>> Context ctxt = new Context(...);
>> context.set(ctxt);
>> InputStream in = root.getContent();
> What strikes me odd in this scenario is the coincidence of
> two things:
> There's *only one* specific Box-subclass, that requires
> specific extra information
> The code that kicks off processing of the object tree does
> know about this specific need and does know how to
> cater to it specifically (and the specific piece of
> information is even available at that place).
The odd part is that the custom box is lost in the structure before a
context can be supplied to it, which is the result of caching the
structure, and only knowing the context just when recovering the
structure from the cache. That means you either find the custom box to
inform it of the context, or you leave the context somewhere the box
will look.
> Then either you end up with "invoking" code, that sets up
> a number of different ThreadLocal<...>s for those specific
> Boxes (that may or may not actually show up in the tree),
> or you still set up only one such ThreadLocal<Context>,
> and a couple of specific Boxes use it.
>
> in the former case it seems like the Box abstraction
> completely missed the point.
I don't get what you mean, but the point of the Box abstraction is just
to handle the aspects common to all boxes: they have some
box-type-specific fields, followed by zero or more nested boxes. It's
not aware of the application-specific Context.
> In the latter case, it seems as if it might then turn out to
> be reasonable to modify the Box baseclass to pass along the
> Context directly (even if some Boxes still don't need it):
>
> class Box {
> InputStream getContent(Context ctx) {
This is out of the question - the library to which Box belongs knows
nothing about the application that defines Context.
Cheers!
--
ss at comp dot lancs dot ac dot uk
Back to comp.lang.java.programmer | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
Wormholes Roedy Green <see_website@mindprod.com.invalid> - 2012-09-03 18:12 -0700
Re: Wormholes eric@invalid.com (EricF) - 2012-09-04 02:06 +0000
Re: Wormholes Roedy Green <see_website@mindprod.com.invalid> - 2012-09-04 10:08 -0700
Re: Wormholes Wanja Gayk <brixomatic@yahoo.com> - 2012-09-09 13:55 +0200
Re: Wormholes Arne Vajhøj <arne@vajhoej.dk> - 2012-09-03 22:34 -0400
Re: Wormholes Stuart <DerTopper@web.de> - 2012-09-04 12:15 +0200
Re: Wormholes markspace <-@.> - 2012-09-03 21:00 -0700
Re: Wormholes Robert Klemme <shortcutter@googlemail.com> - 2012-09-04 07:08 +0200
Re: Wormholes Zermelo <zermelo@teletu.it.nospam.invalid> - 2012-09-04 08:47 +0200
Re: Wormholes Lew <noone@lewscanon.com> - 2012-09-04 03:10 -0700
Re: Wormholes Zermelo <zermelo@teletu.it.nospam.invalid> - 2012-09-04 16:09 +0200
Re: Wormholes Gene Wirchenko <genew@ocis.net> - 2012-09-04 08:34 -0700
Re: Wormholes Zermelo <zermelo@teletu.it.nospam.invalid> - 2012-09-04 17:46 +0200
Re: Wormholes Daniel Pitts <newsgroup.nospam@virtualinfinity.net> - 2012-09-04 09:31 -0700
Re: Wormholes Lew <lewbloch@gmail.com> - 2012-09-04 11:14 -0700
Re: Wormholes Arne Vajhøj <arne@vajhoej.dk> - 2012-09-04 19:59 -0400
Re: Wormholes Roedy Green <see_website@mindprod.com.invalid> - 2012-09-04 13:20 -0700
Re: Wormholes Arne Vajhøj <arne@vajhoej.dk> - 2012-09-04 20:00 -0400
Re: Wormholes Zermelo <zermelo@teletu.it.nospam.invalid> - 2012-09-05 09:01 +0200
Re: Wormholes Zermelo <zermelo@teletu.it.nospam.invalid> - 2012-09-05 09:02 +0200
Re: Wormholes Zermelo <zermelo@teletu.it.nospam.invalid> - 2012-09-05 09:02 +0200
Re: Wormholes Zermelo <zermelo@teletu.it.nospam.invalid> - 2012-09-05 09:03 +0200
Re: Wormholes markspace <-@.> - 2012-09-05 17:34 -0700
Re: Wormholes Steven Simpson <ss@domain.invalid> - 2012-09-04 14:18 +0100
Re: Wormholes Robert Klemme <shortcutter@googlemail.com> - 2012-09-05 21:51 +0200
Re: Wormholes Steven Simpson <ss@domain.invalid> - 2012-09-05 23:26 +0100
Re: Wormholes Andreas Leitgeb <avl@gamma.logic.tuwien.ac.at> - 2012-09-06 09:32 +0000
Re: Wormholes Steven Simpson <ss@domain.invalid> - 2012-09-06 11:47 +0100
Re: Wormholes Andreas Leitgeb <avl@gamma.logic.tuwien.ac.at> - 2012-09-06 15:10 +0000
Re: Wormholes Steven Simpson <ss@domain.invalid> - 2012-09-06 20:12 +0100
Re: Wormholes Andreas Leitgeb <avl@gamma.logic.tuwien.ac.at> - 2012-09-06 21:08 +0000
Re: Wormholes Nigel Wade <nmw@ion.le.ac.uk> - 2012-09-04 17:26 +0100
Re: Wormholes Daniel Pitts <newsgroup.nospam@virtualinfinity.net> - 2012-09-04 09:28 -0700
Re: Wormholes David Lamb <dalamb@cs.queensu.ca> - 2012-09-04 16:54 -0400
csiph-web