1 20 package org.enhydra.barracuda.contrib.sam.models; 21 22 import java.util.*; 23 import org.enhydra.barracuda.core.comp.*; 24 import org.enhydra.barracuda.core.comp.model.*; 25 26 28 42 public abstract class TemplateModelDecorator implements TemplateModel, IterativeModel { 43 44 45 protected TemplateModel _templateModel; 46 47 public TemplateModelDecorator(TemplateModel tm) { 48 _templateModel = tm; 49 } 50 51 public String getName() { 52 return _templateModel.getName(); 53 } 54 55 public boolean processDirective(TemplateDirective td) { 56 return _templateModel.processDirective(td); 57 } 58 59 public Object getItem(TemplateDirective td) { 61 return _templateModel.getItem(td); 62 } 63 64 66 67 68 public void addModelListener(ModelListener ml) { 70 _templateModel.addModelListener(ml); 71 } 72 73 public void removeModelListener(ModelListener ml) { 74 _templateModel.removeModelListener(ml); 75 } 76 77 public ViewContext getViewContext() { 79 return _templateModel.getViewContext(); 80 } 81 82 public void setViewContext(ViewContext vc) { 83 _templateModel.setViewContext(vc); 84 } 85 86 88 private boolean isIterativeModel() { 89 return _templateModel instanceof IterativeModel; 90 } 91 92 public boolean hasNext() { 93 if (isIterativeModel()) { 94 return ((IterativeModel)_templateModel).hasNext(); 95 } else { 96 return false; 97 } 98 } 99 100 public void loadNext() { 101 if (isIterativeModel()) { 102 ((IterativeModel)_templateModel).loadNext(); 103 } 104 } 105 106 public void postIterate() { 107 if (isIterativeModel()) { 108 ((IterativeModel)_templateModel).postIterate(); 109 } 110 } 111 112 public void preIterate() { 113 if (isIterativeModel()) { 114 ((IterativeModel)_templateModel).preIterate(); 115 } 116 } 117 118 } 119 | Popular Tags |