001: // @@
002: // @@
003: /*
004: * Wi.Ser Framework
005: *
006: * Version: 1.8.1, 20-September-2007
007: * Copyright (C) 2005 Dirk von der Weiden <dvdw@imail.de>
008: *
009: * This library is free software; you can redistribute it and/or
010: * modify it under the terms of the GNU Lesser General Public
011: * License as published by the Free Software Foundation; either
012: * version 2 of the License, or (at your option) any later version.
013: *
014: * This library is distributed in the hope that it will be useful,
015: * but WITHOUT ANY WARRANTY; without even the implied warranty of
016: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
017: * Lesser General Public License for more details.
018: *
019: * You should have received a copy of the GNU Lesser General Public
020: * License along with this library located in LGPL.txt in the
021: * license directory; if not, write to the
022: * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
023: * Boston, MA 02111-1307, USA.
024: *
025: * If this agreement does not cover your requirements, please contact us
026: * via email to get detailed information about the commercial license
027: * or our service offerings!
028: *
029: */
030: // @@
031: package de.ug2t.model.values;
032:
033: import java.util.*;
034:
035: import de.ug2t.kernel.*;
036: import de.ug2t.model.*;
037: import de.ug2t.model.persistence.*;
038: import de.ug2t.unifiedGui.*;
039: import de.ug2t.unifiedGui.transformer.*;
040: import de.ug2t.unifiedGui.validator.*;
041:
042: public class MoLazyValueReference extends MoValue implements
043: IMoValueContainer, IMoSingleValue {
044: private String pem_ref = null;
045: private IMoValue pem_deref = null;
046: private IMoValueContainer pem_parent = null;
047:
048: private void pemf_derefObj() {
049: if (pem_deref == null)
050: pem_deref = (IMoValue) KeRegisteredObject
051: .pcmf_getObjByName(pem_ref);
052:
053: return;
054: };
055:
056: /**
057: *
058: */
059: public MoLazyValueReference(String l_ref) {
060: super ();
061:
062: pem_ref = l_ref;
063: }
064:
065: /**
066: *
067: */
068: public MoLazyValueReference(IMoValue l_ref) {
069: super ();
070:
071: pem_deref = l_ref;
072: }
073:
074: /**
075: * <p>
076: * Does...
077: * </p>
078: * <p>
079: *
080: * @return a Type with
081: * </p>
082: * <p>
083: * @param
084: * </p>
085: */
086: public IUnValidator pcmf_setValidator(IUnValidator xValidator) {
087: this .pemf_derefObj();
088: return (this .pem_deref.pcmf_setValidator(xValidator));
089: }
090:
091: /**
092: * <p>
093: * Does...
094: * </p>
095: * <p>
096: *
097: * @return a Type with
098: * </p>
099: * <p>
100: * @param
101: * </p>
102: */
103: public UnComponent pcmf_setUiMap(UnComponent xMap) {
104: this .pemf_derefObj();
105: return (this .pem_deref.pcmf_setUiMap(xMap));
106: }
107:
108: /**
109: * <p>
110: * Does...
111: * </p>
112: * <p>
113: *
114: * @return a Type with
115: * </p>
116: * <p>
117: * @param
118: * </p>
119: */
120: public IUnTransformer pcmf_setTransformer(IUnTransformer xTr) {
121: this .pemf_derefObj();
122: return (this .pem_deref.pcmf_setTransformer(xTr));
123: }
124:
125: /**
126: * <p>
127: * Does...
128: * </p>
129: * <p>
130: *
131: * @return a Type with
132: * </p>
133: * <p>
134: * @param
135: * </p>
136: */
137: public IMoObserver pcmf_addObserver(IMoObserver xObserv) {
138: this .pemf_derefObj();
139: return (this .pem_deref.pcmf_addObserver(xObserv));
140: }
141:
142: /**
143: * <p>
144: * Does...
145: * </p>
146: * <p>
147: *
148: * @return a Type with
149: * </p>
150: * <p>
151: * @param
152: * </p>
153: */
154: public IMoObserver pcmf_removeObserver(IMoObserver xObs) {
155: this .pemf_derefObj();
156: return (this .pem_deref.pcmf_removeObserver(xObs));
157: }
158:
159: /**
160: * <p>
161: * Does...
162: * </p>
163: * <p>
164: *
165: * @return a Type with
166: * </p>
167: * <p>
168: * @param
169: * </p>
170: */
171: public IMoReader pcmf_setReader(IMoReader xReader) {
172: this .pemf_derefObj();
173: return (this .pem_deref.pcmf_setReader(xReader));
174: }
175:
176: /**
177: * <p>
178: * Does...
179: * </p>
180: * <p>
181: *
182: * @return a Type with
183: * </p>
184: * <p>
185: * @param
186: * </p>
187: */
188: public IMoWriter pcmf_setWriter(IMoWriter xWriter) {
189: this .pemf_derefObj();
190: return (this .pem_deref.pcmf_setWriter(xWriter));
191: }
192:
193: /**
194: * <p>
195: * Does...
196: * </p>
197: * <p>
198: *
199: * @return a Type with
200: * </p>
201: * <p>
202: * @param
203: * </p>
204: */
205: public boolean pcmf_read(IMoValue xTpl) {
206: this .pemf_derefObj();
207: return (this .pem_deref.pcmf_read(xTpl));
208: }
209:
210: /**
211: * <p>
212: * Does...
213: * </p>
214: * <p>
215: *
216: * @return a Type with
217: * </p>
218: * <p>
219: * @param
220: * </p>
221: */
222: public boolean pcmf_write() {
223: this .pemf_derefObj();
224: return (this .pem_deref.pcmf_write());
225: }
226:
227: /**
228: * <p>
229: * Does...
230: * </p>
231: * <p>
232: *
233: * @return a Type with
234: * </p>
235: * <p>
236: * @param
237: * </p>
238: */
239: public IMoMappingErrorHandler pcmf_setUiErrorGW(
240: IMoMappingErrorHandler xGw) {
241: this .pemf_derefObj();
242: return (this .pem_deref.pcmf_setUiErrorGW(xGw));
243: }
244:
245: /**
246: * <p>
247: * Does...
248: * </p>
249: * <p>
250: *
251: * @return a Type with
252: * </p>
253: * <p>
254: * @param
255: * </p>
256: */
257: public IMoReader pcmf_getReader() {
258: this .pemf_derefObj();
259: return (this .pem_deref.pcmf_getReader());
260: }
261:
262: /**
263: * <p>
264: * Does ...
265: * </p>
266: * <p>
267: *
268: *
269: *
270: * @return a IUnTransformer with ...
271: * </p>
272: * <p>
273: * @param xTr
274: * ...
275: * </p>
276: */
277: public IUnTransformer pcmf_getTransformer() {
278: this .pemf_derefObj();
279: return (this .pem_deref.pcmf_getTransformer());
280: }
281:
282: /**
283: * <p>
284: * Does ...
285: * </p>
286: * <p>
287: *
288: *
289: *
290: * @return a Type with ...
291: * </p>
292: * <p>
293: * @param ...
294: * </p>
295: */
296: public IMoMappingErrorHandler pcmf_getUiErrorGW() {
297: this .pemf_derefObj();
298: return (this .pem_deref.pcmf_getUiErrorGW());
299: }
300:
301: /**
302: * <p>
303: * Does ...
304: * </p>
305: * <p>
306: *
307: *
308: *
309: * @return a UnComponent with ...
310: * </p>
311: * <p>
312: * @param xMap
313: * ...
314: * </p>
315: */
316: public UnComponent pcmf_getUiMap() {
317: this .pemf_derefObj();
318: return (this .pem_deref.pcmf_getUiMap());
319: }
320:
321: /**
322: * <p>
323: * Does ...
324: * </p>
325: * <p>
326: *
327: *
328: *
329: * @return a UnComponent with ...
330: * </p>
331: * <p>
332: * @param xMap
333: * ...
334: * </p>
335: */
336: public Vector pcmf_getObservers() {
337: this .pemf_derefObj();
338: return (this .pem_deref.pcmf_getObservers());
339: }
340:
341: /**
342: * <p>
343: * Does...
344: * </p>
345: * <p>
346: *
347: * @return a Type with
348: * </p>
349: * <p>
350: * @param
351: * </p>
352: */
353: public IMoWriter pcmf_getWriter() {
354: this .pemf_derefObj();
355: return (this .pem_deref.pcmf_getWriter());
356: }
357:
358: /**
359: * <p>
360: * Does...
361: * </p>
362: * <p>
363: *
364: * @return a Type with
365: * </p>
366: * <p>
367: * @param
368: * </p>
369: */
370: public String pcmf_getMyTemplate() {
371: this .pemf_derefObj();
372: return (this .pem_deref.pcmf_getMyTemplate());
373: }
374:
375: /**
376: * <p>
377: * Does...
378: * </p>
379: * <p>
380: *
381: * @return a Type with
382: * </p>
383: * <p>
384: * @param
385: * </p>
386: */
387: public String pcmf_setMyTemplate(String xTpl) {
388: this .pemf_derefObj();
389: return (this .pem_deref.pcmf_setMyTemplate(xTpl));
390: }
391:
392: /**
393: * <p>
394: * Does...
395: * </p>
396: * <p>
397: *
398: * @return a Type with
399: * </p>
400: * <p>
401: * @param
402: * </p>
403: */
404: public IMoValue pcmf_cloneModelValue(boolean xChilds) {
405: return (pcmf_cloneModelValue(true, true));
406: }
407:
408: public IMoValue pcmf_cloneModelValue(boolean xChilds, boolean xFull) {
409: this .pemf_derefObj();
410: return (this .pem_deref.pcmf_cloneModelValue(xChilds, xFull));
411: }
412:
413: /**
414: * <p>
415: * Does...
416: * </p>
417: * <p>
418: *
419: * @return a Type with
420: * </p>
421: * <p>
422: * @param
423: * </p>
424: */
425: public MoChildDescriptor pcmf_addDesc(String xName,
426: MoChildDescriptor xDesc) {
427: this .pemf_derefObj();
428: if (this .pem_deref instanceof IMoValueContainer)
429: return (((IMoValueContainer) this .pem_deref).pcmf_addDesc(
430: xName, xDesc));
431: else
432: KeLog.pcmf_log("ug2t",
433: "no multipleModelValue type enclosed in reference",
434: this , KeLog.MESSAGE);
435:
436: return (null);
437: }
438:
439: /**
440: * <p>
441: * Does...
442: * </p>
443: * <p>
444: *
445: * @return a Type with
446: * </p>
447: * <p>
448: * @param
449: * </p>
450: */
451: public IMoValue pcmf_addValue(String xName, IMoValue xValue) {
452: this .pemf_derefObj();
453: if (this .pem_deref instanceof IMoValueContainer)
454: return (((IMoValueContainer) this .pem_deref).pcmf_addValue(
455: xName, xValue));
456: else
457: KeLog.pcmf_log("ug2t",
458: "no multipleModelValue type enclosed in reference",
459: this , KeLog.MESSAGE);
460:
461: return (null);
462: }
463:
464: /**
465: * <p>
466: * Does...
467: * </p>
468: * <p>
469: *
470: * @return a Type with
471: * </p>
472: * <p>
473: * @param
474: * </p>
475: */
476: public MoChildDescriptor pcmf_getDesc(String xName) {
477: this .pemf_derefObj();
478: if (this .pem_deref instanceof IMoValueContainer)
479: return (((IMoValueContainer) this .pem_deref)
480: .pcmf_getDesc(xName));
481: else
482: KeLog.pcmf_log("ug2t",
483: "no multipleModelValue type enclosed in reference",
484: this , KeLog.MESSAGE);
485:
486: return (null);
487: }
488:
489: /**
490: * <p>
491: * Does...
492: * </p>
493: * <p>
494: *
495: * @return a Type with
496: * </p>
497: * <p>
498: * @param
499: * </p>
500: */
501: public IMoValue pcmf_getModelValue(String xName) {
502: this .pemf_derefObj();
503: if (this .pem_deref instanceof IMoValueContainer)
504: return (((IMoValueContainer) this .pem_deref)
505: .pcmf_getModelValue(xName));
506: else
507: KeLog.pcmf_log("ug2t",
508: "no multipleModelValue type enclosed in reference",
509: this , KeLog.MESSAGE);
510:
511: return (null);
512: }
513:
514: /**
515: * <p>
516: * Does...
517: * </p>
518: * <p>
519: *
520: * @return a Type with
521: * </p>
522: * <p>
523: * @param
524: * </p>
525: */
526: public IMoValue pcmf_getNewModelValue(String xName, boolean xChilds) {
527: this .pemf_derefObj();
528: if (this .pem_deref instanceof IMoValueContainer)
529: return (((IMoValueContainer) this .pem_deref)
530: .pcmf_getNewModelValue(xName, xChilds));
531: else
532: KeLog.pcmf_log("ug2t",
533: "no multipleModelValue type enclosed in reference",
534: this , KeLog.MESSAGE);
535:
536: return (null);
537: }
538:
539: /**
540: * <p>
541: * Does...
542: * </p>
543: * <p>
544: *
545: * @return a Type with
546: * </p>
547: * <p>
548: * @param
549: * </p>
550: */
551: public Iterator pcmf_getSubValueNameIt() {
552: this .pemf_derefObj();
553: if (this .pem_deref instanceof IMoValueContainer)
554: return (((IMoValueContainer) this .pem_deref)
555: .pcmf_getSubValueNameIt());
556: else
557: KeLog.pcmf_log("ug2t",
558: "no multipleModelValue type enclosed in reference",
559: this , KeLog.MESSAGE);
560:
561: return (null);
562: }
563:
564: /**
565: * <p>
566: * Does...
567: * </p>
568: * <p>
569: *
570: * @return a Type with
571: * </p>
572: * <p>
573: * @param
574: * </p>
575: */
576: public Iterator pcmf_getSubValueIt() {
577: this .pemf_derefObj();
578: if (this .pem_deref instanceof IMoValueContainer)
579: return (((IMoValueContainer) this .pem_deref)
580: .pcmf_getSubValueNameIt());
581: else
582: KeLog.pcmf_log("ug2t",
583: "no multipleModelValue type enclosed in reference",
584: this , KeLog.MESSAGE);
585:
586: return (null);
587: }
588:
589: /**
590: * <p>
591: * Does...
592: * </p>
593: * <p>
594: *
595: * @return a Type with
596: * </p>
597: * <p>
598: * @param
599: * </p>
600: */
601: public IMoValue pcmf_removeValue(String xName) {
602: this .pemf_derefObj();
603: if (this .pem_deref instanceof IMoValueContainer)
604: return (((IMoValueContainer) this .pem_deref)
605: .pcmf_removeValue(xName));
606: else
607: KeLog.pcmf_log("ug2t",
608: "no multipleModelValue type enclosed in reference",
609: this , KeLog.MESSAGE);
610:
611: return (null);
612: }
613:
614: /**
615: * <p>
616: * Does...
617: * </p>
618: * <p>
619: *
620: * @return a Type with
621: * </p>
622: * <p>
623: * @param
624: * </p>
625: */
626: public Object pcmf_getValue() {
627: this .pemf_derefObj();
628: if (this .pem_deref instanceof IMoSingleValue)
629: return (((IMoSingleValue) this .pem_deref).pcmf_getValue());
630: else
631: KeLog.pcmf_log("ug2t",
632: "no singleModelValue type enclosed in reference",
633: this , KeLog.MESSAGE);
634:
635: return (null);
636: }
637:
638: /**
639: * <p>
640: * Does...
641: * </p>
642: * <p>
643: *
644: * @return a Type with
645: * </p>
646: * <p>
647: * @param
648: * </p>
649: */
650: public void pcmf_setValue(Object xValue) {
651: this .pemf_derefObj();
652: if (this .pem_deref instanceof IMoSingleValue)
653: ((IMoSingleValue) this .pem_deref).pcmf_setValue(xValue);
654: else
655: KeLog.pcmf_log("ug2t",
656: "no singleModelValue type enclosed in reference",
657: this , KeLog.MESSAGE);
658: }
659:
660: /**
661: * <p>
662: * Does...
663: * </p>
664: * <p>
665: *
666: * @return a Type with
667: * </p>
668: * <p>
669: * @param
670: * </p>
671: */
672: public Object pcmf_setValueValidate(Object xValue) {
673: this .pemf_derefObj();
674: if (this .pem_deref instanceof IMoSingleValue)
675: return (((IMoSingleValue) this .pem_deref)
676: .pcmf_setValueValidate(xValue));
677: else
678: KeLog.pcmf_log("ug2t",
679: "no singleModelValue type enclosed in reference",
680: this , KeLog.MESSAGE);
681:
682: return (null);
683: }
684:
685: public IUnTransformer pcmf_setToUITransformer(IUnTransformer xTrans) {
686: this .pemf_derefObj();
687: if (this .pem_deref instanceof IMoSingleValue)
688: return (((IMoSingleValue) this .pem_deref)
689: .pcmf_setToUITransformer(xTrans));
690: else
691: KeLog.pcmf_log("ug2t",
692: "no singleModelValue type enclosed in reference",
693: this , KeLog.MESSAGE);
694:
695: return (null);
696: }
697:
698: public IUnTransformer pcmf_setFromUITransformer(
699: IUnTransformer xTrans) {
700: this .pemf_derefObj();
701: if (this .pem_deref instanceof IMoSingleValue)
702: return (((IMoSingleValue) this .pem_deref)
703: .pcmf_setFromUITransformer(xTrans));
704: else
705: KeLog.pcmf_log("ug2t",
706: "no singleModelValue type enclosed in reference",
707: this , KeLog.MESSAGE);
708:
709: return (null);
710: }
711:
712: public IMoValueContainer pcmf_getValueContainer(String xName) {
713: return ((IMoValueContainer) this .pcmf_getModelValue(xName));
714: }
715:
716: public IMoSingleValue pcmf_getSingleValue(String xName) {
717: return ((IMoSingleValue) this .pcmf_getModelValue(xName));
718: }
719:
720: public void pcmf_setParent(IMoValueContainer xParent) {
721: this .pem_parent = xParent;
722: }
723:
724: public IMoValueContainer pcmf_getParent() {
725: return (this.pem_parent);
726: }
727: };
|