1 5 package com.teamkonzept.webman.attr; 6 7 import java.util.*; 8 9 import com.teamkonzept.lib.*; 10 import com.teamkonzept.publishing.markups.*; 11 12 public class TKWMAttrMarkupParser extends TKDefinedMarkupParser { 13 14 private TKHashtable ids; 16 17 public TKWMAttrMarkupParser (TKVector diagnostics) { 18 19 super (diagnostics); 20 21 this.ids = new TKHashtable(); 22 } 23 24 public TKWMAttrMarkup markupById (String id) { 25 26 return id == null ? null : (TKWMAttrMarkup) ids.get (id.toUpperCase()); 27 } 28 29 public void registerMarkupById (TKWMAttrMarkup markup) { 30 31 if (markup != null) ids.put (markup.toId().toUpperCase(),markup); 32 } 33 34 public void deregisterMarkupById (String id) { 35 36 if (id != null) ids.remove (id.toUpperCase()); 37 } 38 39 public void deregisterMarkupById (TKWMAttrMarkup markup) { 40 41 if (markup != null) deregisterMarkupById (markup.toId().toUpperCase()); 42 } 43 44 public Enumeration registeredMarkupsById () { 45 46 return ids.elements(); 47 } 48 49 public TKMarkup createMarkup (String name, TKHashtable params, int pos) { 50 51 if (TKMarkupDefinition.lookup(name) == null) 52 53 return super.createMarkup (name,params,pos); 54 55 try { 56 TKWMAttrMarkup markup = null; 57 58 String id = TKWMAttrMarkup.toId (name,currentDefinition,params); 59 60 62 75 76 markup = markupById (id);; 77 if (markup == null) markup = new TKWMAttrMarkup (name,params,pos); 78 79 return markup; 80 81 } catch (Exception ex) { 82 83 addDiagnostic (TKMarkupParserException.demandMsg (ex)); 84 return super.createMarkup (name,params,pos); 85 } 86 } 87 88 public void deregister (TKMarkup markup) { 89 90 super.deregister(markup); 91 92 if (markup instanceof TKWMAttrMarkup) 93 deregisterMarkupById((TKWMAttrMarkup)markup); 94 } 95 96 public void register (TKMarkup markup) { 97 98 super.register(markup); 99 100 if (markup instanceof TKWMAttrMarkup) 101 registerMarkupById((TKWMAttrMarkup)markup); 102 } 103 } 104 | Popular Tags |