1 package com.teamkonzept.lib; 2 3 import java.util.*; 4 5 public class TKVectorIteratorPlugin extends TKIteratorPlugin { 6 7 private String itemName; 8 private boolean doSort; 9 private TKHashtable subPlugins = new TKHashtable(); 10 11 public TKVectorIteratorPlugin (String listName, String itemName, TKVector vec, boolean doSort) { 12 13 super (vec,listName,doSort); 14 15 this.itemName = itemName; 16 this.doSort = doSort; 17 } 18 19 public boolean applyThis (Object item, TKTemplate template, String path) 20 { 21 Integer idx = (Integer )template.getEnumerationContext(name); 22 TKHashtable subs = (TKHashtable) subPlugins.get(idx); 23 if (subs == null) 24 { 25 subs = new TKHashtable(); 26 subPlugins.put(idx, subs); 27 } 28 template.set("ITERATOR_PATH",path); 29 if (item instanceof TKHashtable) 30 { 31 subs.put (name+".SUB",new TKHashtableIteratorPlugin 32 (name+".SUB",itemName,(TKHashtable) item,true)); 33 template.set(name+".SUB.LEN",new Integer (((TKHashtable) item).size())); 34 35 TKHashtableIteratorPlugin.applyTable (name,template, (TKHashtable) item, 36 itemName,subs,path); 37 return true; 38 39 } else if (item instanceof TKVector) 40 { 41 subs.put (name+".SUB",new TKVectorIteratorPlugin 42 (name+".SUB",itemName,(TKVector) item,doSort)); 43 template.set(name+".SUB.LEN",new Integer (((TKVector) item).size())); 44 return true; 45 46 } else if (item instanceof TKHashable) 47 { 48 TKHashtable sub = ((TKHashable) item).toHashtable(); 49 subs.put (name+".SUB",new TKHashtableIteratorPlugin(name+".SUB",itemName,sub,true)); 50 template.set(name+".SUB.LEN",new Integer (sub.size())); 51 52 TKHashtableIteratorPlugin.applyTable (name,template,((TKHashable) item).toHashtable(), 53 itemName,subs,path); 54 return true; 55 56 } else if (item instanceof TKVectorizable) 57 { 58 TKVector sub = ((TKVectorizable) item).toVector(); 59 subs.put (name+".SUB",new TKVectorIteratorPlugin(name+".SUB",itemName,sub,doSort)); 60 template.set(name+".SUB.LEN",new Integer (sub.size())); 61 return true; 62 } 63 64 if (itemName == null) itemName = "ITEM_VALUE"; 65 else template.set(itemName,item.toString()); 66 67 template.set(itemName,item.toString()); 68 template.set("ITEM_NAME",itemName); 69 template.set("ITEM_VALUE",item.toString()); 70 71 return true; 72 } 73 74 public boolean applyChilds (TKTemplate template, int i, String currListName, String path) 75 { 76 if (subPlugins == null) return false; 77 Integer idx = (Integer )template.getEnumerationContext(name); 78 if (idx == null) 79 return false; 80 TKHashtable subs = (TKHashtable) subPlugins.get(idx); 81 if (subs == null) 82 return false; 83 84 Enumeration e = subs.elements(); 85 while (e.hasMoreElements()) 86 { 87 TKIteratorPlugin plugin = (TKIteratorPlugin) e.nextElement(); 88 if (plugin.apply (template,i,currListName,null)) return true; 89 } 90 91 return false; 92 } 93 } 94 | Popular Tags |