Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- interface firstInterface{}
- abstract class ReadOnly extends Forward{}
- class Reference extends ReadOnly implements firstInterface{}
- class baseReference implements firstInterface{}
- abstract class ReadOnly extends Forward{}
- class Reference extends baseReference, Readonly{}
- class Loading extends baseReference, Forward{}
- public class ReadOnly implements Forward{
- private Forward delegate;
- public ReadOnly(Forward adaptee){
- //check for null here if you want
- this.delegate = adaptee;
- }
- public void loadFoo(Foo foo){
- //invalid since this is read-only
- //this is the exception mentioned in OP
- throw new UnsupportedAction():
- }
- public Foo readFoo(){
- //allowed return delegate's foo
- return delegate.readFoo();
- }
- }
- .....................................
- ..+-------------------------------+..
- ..|.........<<interface>>.........|..
- ..|........FirstInterface.........|..
- ..+-------------------------------+..
- ..|.[+].void Load()...............|..
- ..+-------------------------------+..
- .....................................
- .....................................
- ..+-------------------------------+..
- ..|.........<<interface>>.........|..
- ..|........FirstInterface.........|..
- ..+-------------------------------+..
- ..|.[+].void Load()...............|..
- ..+-------------------------------+..
- ..................|..................
- ................/---................
- ................|.O.|................
- ..................|..................
- ..+-------------------------------+..
- ..|...........<<class>>...........|..
- ..|.........ForwardClass..........|..
- ..+-------------------------------+..
- ..|.[+].void Load()...<<virtual>>.|..
- ..+-------------------------------+..
- .....................................
- .....................................
- ..+-------------------------------+..
- ..|...........<<class>>...........|..
- ..|.........ForwardClass..........|..
- ..+-------------------------------+..
- ..|.[+].void Load()...<<virtual>>.|..
- ..+-------------------------------+..
- ..................|..................
- ..................^..................
- ................./..................
- ................/---................
- ..................|...........................................................
- ..+---------------------------------+......+-------------------------------+..
- ..|............<<class>>............|...+--|.........<<exception>>.........|..
- ..|..........ReadOnlyClass..........|...|..|...UnsupportedActionException..|..
- ..+---------------------------------+...|..+-------------------------------+..
- ..|.[+].void Load()....<<override>>.|---+.....................................
- ..|.[+].void DoExtra()..<<virtual>>.|.........................................
- ..+---------------------------------+.........................................
- ..............................................................................
- ..............................................................................
- ..+---------------------------------+......+-------------------------------+..
- ..|............<<class>>............|...+--|.........<<exception>>.........|..
- ..|..........ReadOnlyClass..........|...|..|...UnsupportedActionException..|..
- ..+---------------------------------+...|..+-------------------------------+..
- ..|.[+].void Load()....<<override>>.|---+.....................................
- ..|.[+].void DoExtra()..<<virtual>>.|.........................................
- ..+---------------------------------+.........................................
- ..................|..................
- ..................^..................
- ................./..................
- ................/---................
- ..................|..................
- ..+----------------------------------+..
- ..|............<<class>>.............|..
- ..|...........LoadingClass...........|..
- ..+----------------------------------+..
- ..|.[+].void DoExtra()..<<override>>.|..
- ..+----------------------------------+..
- ........................................
- ............................................
- ..+---------------------------------------+..
- ..|...............<<class>>...............|..
- ..|.............ForwardClass..............|..
- ..+---------------------------------------+..
- ..|.[#].void ConfirmedLoad()..............|..
- ..|.[+].void Load()...........<<virtual>>.|..
- ..+---------------------------------------+..
- .............................................
- ............................................
- ..+---------------------------------------+..
- ..|...............<<class>>...............|..
- ..|.............ForwardClass..............|..
- ..+---------------------------------------+..
- ..|.[#].void ConfirmedLoad()..............|..
- ..|.[+].void Load()...........<<virtual>>.|..
- ..+---------------------------------------+..
- ..................|..................
- ..................^..................
- ................./..................
- ................/---................
- ..................|..................
- ..+---------------------------------------+..
- ..|...............<<class>>...............|........+-------------------------------+..
- ..|.............ReadOnlyClass.............|.....+--|.........<<exception>>.........|..
- ..+---------------------------------------+.....|..|...UnsupportedActionException..|..
- ..|.[+].bool CanLoad()........<<virtual>>.|.....|..+-------------------------------+..
- ..|.[+].void Load()..........<<override>>.|..---+.....................................
- ..|.[+].void DoExtra()........<<virtual>>.|..
- ..+---------------------------------------+..
- .............................................
- .............................................
- ..+---------------------------------------+..
- ..|...............<<class>>...............|..
- ..|.............ForwardClass..............|..
- ..+---------------------------------------+..
- ..|.[#].void ConfirmedLoad()..............|..
- ..|.[+].void Load()...........<<virtual>>.|..
- ..+---------------------------------------+..
- .......................|..................
- .......................^..................
- ....................../..................
- ...................../---................
- .......................|..................
- ..+---------------------------------------+..
- ..|...............<<class>>...............|........+-------------------------------+..
- ..|.............ReadOnlyClass.............|.....+--|.........<<exception>>.........|..
- ..+---------------------------------------+.....|..|...UnsupportedActionException..|..
- ..|.[+].bool CanLoad()........<<virtual>>.|.....|..+-------------------------------+..
- ..|.[+].void Load()..........<<override>>.|..---+.....................................
- ..|.[+].void DoExtra()........<<virtual>>.|..
- ..+---------------------------------------+..
- .......................|..................
- .......................^..................
- ....................../..................
- ...................../---................
- .......................|..................
- ..+---------------------------------------+..
- ..|...............<<class>>...............|..
- ..|.............LoadingClass..............|..
- ..+---------------------------------------+..
- ..|.[+].bool CanLoad().......<<override>>.|..
- ..+---------------------------------------+..
- .............................................
- .............................................
- ..+---------------------------------------+..
- ..|...............<<class>>...............|..
- ..|............FirstInterface.............|..
- ..+---------------------------------------+..
- ..|.[+].void Load().......................|..
- ..+---------------------------------------+..
- .......................|......................
- ...................../---....................
- .....................|.O.|........................
- .......................|..........................
- .......................+-----------------------+..
- .......................|.......................|..
- .......................|.......................|..
- ..+---------------------------------------+....|..
- ..|...............<<class>>...............|....|..
- ..|.............ForwardClass..............|....|..
- ..+---------------------------------------+....|..
- ..|.[#].void ConfirmedLoad()..............|....|..
- ..|.[+].void Load()...........<<virtual>>.|....|..
- ..+---------------------------------------+....|..
- .......................|.......................|..
- .......................^.......................|..
- ....................../.......................|..
- ...................../---.....................|..
- .......................|.......................|..
- ..+---------------------------------------+....|..
- ..|...............<<class>>...............|....|..
- ..|.............ReadOnlyClass.............|....|..
- ..+---------------------------------------+....|..
- ..|.[+].bool CanLoad()........<<virtual>>.|....|..
- ..|.[+].void Load()..........<<override>>.|....|..
- ..|.[+].void DoExtra()........<<virtual>>.|....|..
- ..+---------------------------------------+....|..
- .......................|.......................|..
- .......................^.......................|..
- ....................../.......................|..
- ...................../---.....................|..
- .......................|.......................|..
- ..+---------------------------------------+....|..
- ..|...............<<class>>...............|....|..
- ..|.............LoadingClass..............|....|..
- ..+---------------------------------------+....|..
- ..|.[+].bool CanLoad().......<<override>>.|....|..
- ..+---------------------------------------+....|..
- .......................|.......................|..
- .......................^.......................|..
- ....................../.......................|..
- ...................../---.....................|..
- .......................|.......................|..
- ..+---------------------------------------+....|..
- ..|...............<<class>>...............|----+..
- ..|...........BaseReferenceClass..........|.......
- ..+---------------------------------------+.......
- ..................................................
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement