1 4 package gnu.kawa.xml; 5 import gnu.mapping.*; 6 import gnu.lists.*; 7 import gnu.xml.TextUtils; 8 9 public class MakeCDATA extends MethodProc { 11 public static final MakeCDATA makeCDATA 12 = new MakeCDATA(); 13 14 public void apply (CallContext ctx) 15 { 16 Consumer saved = ctx.consumer; 17 XConsumer out = NodeConstructor.pushNodeContext(ctx); 18 try 19 { 20 StringBuffer sbuf = new StringBuffer (); 21 Object endMarker = Location.UNBOUND; 22 for (;;) 23 { 24 Object arg = ctx.getNextArg(endMarker); 25 if (arg == endMarker) 26 break; 27 TextUtils.stringValue(arg, sbuf); 28 } 29 int n = sbuf.length(); 30 char[] chars = new char[n]; 31 sbuf.getChars(0, n, chars, 0); 32 out.writeCDATA(chars, 0, n); 33 } 34 finally 35 { 36 NodeConstructor.popNodeContext(saved, ctx); 37 } 38 } 39 40 53 } 54 | Popular Tags |