Advertisement
Guest User

Untitled

a guest
Apr 25th, 2014
48
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 9.87 KB | None | 0 0
  1. interface firstInterface{}
  2.  
  3. abstract class ReadOnly extends Forward{}
  4.  
  5. class Reference extends ReadOnly implements firstInterface{}
  6.  
  7. class baseReference implements firstInterface{}
  8.  
  9. abstract class ReadOnly extends Forward{}
  10.  
  11. class Reference extends baseReference, Readonly{}
  12.  
  13. class Loading extends baseReference, Forward{}
  14.  
  15. public class ReadOnly implements Forward{
  16.  
  17. private Forward delegate;
  18.  
  19. public ReadOnly(Forward adaptee){
  20. //check for null here if you want
  21. this.delegate = adaptee;
  22. }
  23.  
  24. public void loadFoo(Foo foo){
  25. //invalid since this is read-only
  26. //this is the exception mentioned in OP
  27. throw new UnsupportedAction():
  28.  
  29. }
  30.  
  31.  
  32. public Foo readFoo(){
  33. //allowed return delegate's foo
  34. return delegate.readFoo();
  35. }
  36.  
  37. }
  38.  
  39. .....................................
  40. ..+-------------------------------+..
  41. ..|.........<<interface>>.........|..
  42. ..|........FirstInterface.........|..
  43. ..+-------------------------------+..
  44. ..|.[+].void Load()...............|..
  45. ..+-------------------------------+..
  46. .....................................
  47.  
  48. .....................................
  49. ..+-------------------------------+..
  50. ..|.........<<interface>>.........|..
  51. ..|........FirstInterface.........|..
  52. ..+-------------------------------+..
  53. ..|.[+].void Load()...............|..
  54. ..+-------------------------------+..
  55. ..................|..................
  56. ................/---................
  57. ................|.O.|................
  58. ..................|..................
  59. ..+-------------------------------+..
  60. ..|...........<<class>>...........|..
  61. ..|.........ForwardClass..........|..
  62. ..+-------------------------------+..
  63. ..|.[+].void Load()...<<virtual>>.|..
  64. ..+-------------------------------+..
  65. .....................................
  66.  
  67. .....................................
  68. ..+-------------------------------+..
  69. ..|...........<<class>>...........|..
  70. ..|.........ForwardClass..........|..
  71. ..+-------------------------------+..
  72. ..|.[+].void Load()...<<virtual>>.|..
  73. ..+-------------------------------+..
  74. ..................|..................
  75. ..................^..................
  76. ................./..................
  77. ................/---................
  78. ..................|...........................................................
  79. ..+---------------------------------+......+-------------------------------+..
  80. ..|............<<class>>............|...+--|.........<<exception>>.........|..
  81. ..|..........ReadOnlyClass..........|...|..|...UnsupportedActionException..|..
  82. ..+---------------------------------+...|..+-------------------------------+..
  83. ..|.[+].void Load()....<<override>>.|---+.....................................
  84. ..|.[+].void DoExtra()..<<virtual>>.|.........................................
  85. ..+---------------------------------+.........................................
  86. ..............................................................................
  87.  
  88. ..............................................................................
  89. ..+---------------------------------+......+-------------------------------+..
  90. ..|............<<class>>............|...+--|.........<<exception>>.........|..
  91. ..|..........ReadOnlyClass..........|...|..|...UnsupportedActionException..|..
  92. ..+---------------------------------+...|..+-------------------------------+..
  93. ..|.[+].void Load()....<<override>>.|---+.....................................
  94. ..|.[+].void DoExtra()..<<virtual>>.|.........................................
  95. ..+---------------------------------+.........................................
  96. ..................|..................
  97. ..................^..................
  98. ................./..................
  99. ................/---................
  100. ..................|..................
  101. ..+----------------------------------+..
  102. ..|............<<class>>.............|..
  103. ..|...........LoadingClass...........|..
  104. ..+----------------------------------+..
  105. ..|.[+].void DoExtra()..<<override>>.|..
  106. ..+----------------------------------+..
  107. ........................................
  108.  
  109. ............................................
  110. ..+---------------------------------------+..
  111. ..|...............<<class>>...............|..
  112. ..|.............ForwardClass..............|..
  113. ..+---------------------------------------+..
  114. ..|.[#].void ConfirmedLoad()..............|..
  115. ..|.[+].void Load()...........<<virtual>>.|..
  116. ..+---------------------------------------+..
  117. .............................................
  118.  
  119. ............................................
  120. ..+---------------------------------------+..
  121. ..|...............<<class>>...............|..
  122. ..|.............ForwardClass..............|..
  123. ..+---------------------------------------+..
  124. ..|.[#].void ConfirmedLoad()..............|..
  125. ..|.[+].void Load()...........<<virtual>>.|..
  126. ..+---------------------------------------+..
  127. ..................|..................
  128. ..................^..................
  129. ................./..................
  130. ................/---................
  131. ..................|..................
  132. ..+---------------------------------------+..
  133. ..|...............<<class>>...............|........+-------------------------------+..
  134. ..|.............ReadOnlyClass.............|.....+--|.........<<exception>>.........|..
  135. ..+---------------------------------------+.....|..|...UnsupportedActionException..|..
  136. ..|.[+].bool CanLoad()........<<virtual>>.|.....|..+-------------------------------+..
  137. ..|.[+].void Load()..........<<override>>.|..---+.....................................
  138. ..|.[+].void DoExtra()........<<virtual>>.|..
  139. ..+---------------------------------------+..
  140. .............................................
  141.  
  142. .............................................
  143. ..+---------------------------------------+..
  144. ..|...............<<class>>...............|..
  145. ..|.............ForwardClass..............|..
  146. ..+---------------------------------------+..
  147. ..|.[#].void ConfirmedLoad()..............|..
  148. ..|.[+].void Load()...........<<virtual>>.|..
  149. ..+---------------------------------------+..
  150. .......................|..................
  151. .......................^..................
  152. ....................../..................
  153. ...................../---................
  154. .......................|..................
  155. ..+---------------------------------------+..
  156. ..|...............<<class>>...............|........+-------------------------------+..
  157. ..|.............ReadOnlyClass.............|.....+--|.........<<exception>>.........|..
  158. ..+---------------------------------------+.....|..|...UnsupportedActionException..|..
  159. ..|.[+].bool CanLoad()........<<virtual>>.|.....|..+-------------------------------+..
  160. ..|.[+].void Load()..........<<override>>.|..---+.....................................
  161. ..|.[+].void DoExtra()........<<virtual>>.|..
  162. ..+---------------------------------------+..
  163. .......................|..................
  164. .......................^..................
  165. ....................../..................
  166. ...................../---................
  167. .......................|..................
  168. ..+---------------------------------------+..
  169. ..|...............<<class>>...............|..
  170. ..|.............LoadingClass..............|..
  171. ..+---------------------------------------+..
  172. ..|.[+].bool CanLoad().......<<override>>.|..
  173. ..+---------------------------------------+..
  174. .............................................
  175.  
  176. .............................................
  177. ..+---------------------------------------+..
  178. ..|...............<<class>>...............|..
  179. ..|............FirstInterface.............|..
  180. ..+---------------------------------------+..
  181. ..|.[+].void Load().......................|..
  182. ..+---------------------------------------+..
  183. .......................|......................
  184. ...................../---....................
  185. .....................|.O.|........................
  186. .......................|..........................
  187. .......................+-----------------------+..
  188. .......................|.......................|..
  189. .......................|.......................|..
  190. ..+---------------------------------------+....|..
  191. ..|...............<<class>>...............|....|..
  192. ..|.............ForwardClass..............|....|..
  193. ..+---------------------------------------+....|..
  194. ..|.[#].void ConfirmedLoad()..............|....|..
  195. ..|.[+].void Load()...........<<virtual>>.|....|..
  196. ..+---------------------------------------+....|..
  197. .......................|.......................|..
  198. .......................^.......................|..
  199. ....................../.......................|..
  200. ...................../---.....................|..
  201. .......................|.......................|..
  202. ..+---------------------------------------+....|..
  203. ..|...............<<class>>...............|....|..
  204. ..|.............ReadOnlyClass.............|....|..
  205. ..+---------------------------------------+....|..
  206. ..|.[+].bool CanLoad()........<<virtual>>.|....|..
  207. ..|.[+].void Load()..........<<override>>.|....|..
  208. ..|.[+].void DoExtra()........<<virtual>>.|....|..
  209. ..+---------------------------------------+....|..
  210. .......................|.......................|..
  211. .......................^.......................|..
  212. ....................../.......................|..
  213. ...................../---.....................|..
  214. .......................|.......................|..
  215. ..+---------------------------------------+....|..
  216. ..|...............<<class>>...............|....|..
  217. ..|.............LoadingClass..............|....|..
  218. ..+---------------------------------------+....|..
  219. ..|.[+].bool CanLoad().......<<override>>.|....|..
  220. ..+---------------------------------------+....|..
  221. .......................|.......................|..
  222. .......................^.......................|..
  223. ....................../.......................|..
  224. ...................../---.....................|..
  225. .......................|.......................|..
  226. ..+---------------------------------------+....|..
  227. ..|...............<<class>>...............|----+..
  228. ..|...........BaseReferenceClass..........|.......
  229. ..+---------------------------------------+.......
  230. ..................................................
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement