From: Eric P. <th...@us...> - 2010-03-01 16:09:22
|
Update of /cvsroot/sandev/sand/platform/tools/build/generate/org/sandev/generator In directory sfp-cvsdas-3.v30.ch3.sourceforge.com:/tmp/cvs-serv5179 Modified Files: XMLSerializerGenerator.java Log Message: If you delete a struct, then previously saved info would crash trying to read any instances of that struct. This now spits a message and ignores the old value instead. More useful that way. Index: XMLSerializerGenerator.java =================================================================== RCS file: /cvsroot/sandev/sand/platform/tools/build/generate/org/sandev/generator/XMLSerializerGenerator.java,v retrieving revision 1.22 retrieving revision 1.23 diff -C2 -d -r1.22 -r1.23 *** XMLSerializerGenerator.java 1 May 2009 17:34:17 -0000 1.22 --- XMLSerializerGenerator.java 1 Mar 2010 16:09:09 -0000 1.23 *************** *** 1,5 **** /* * SAND development/deployment environment ! * Copyright (C) 2003-2009 SAND Services Inc. * * This library is free software; you can redistribute it and/or --- 1,5 ---- /* * SAND development/deployment environment ! * Copyright (C) 2003-2010 SAND Services Inc. * * This library is free software; you can redistribute it and/or *************** *** 868,871 **** --- 868,875 ---- out.println(" readArray(classLabel,st);"); out.println(" return null; }"); + out.println(" else if((classLabel.startsWith(\"<\"))&&(classLabel.length()>2)) {"); + out.println(" info(\"Returning null element for class label name: \" + classLabel);"); + out.println(" skipToClose(classLabel,st);"); + out.println(" return null; }"); out.println(" throw new IOException(\"Unknown class label name: \" + classLabel);"); out.println(" }"); *************** *** 1285,1288 **** --- 1289,1329 ---- protected void writeTokenUtilityMethods(PrintStream out) { out.println(" /**"); + out.println(" * Skip to the closing label matching the given open label."); + out.println(" */"); + out.println(" protected static void skipToClose(String open,StreamTokenizer st)"); + out.println(" throws IOException"); + out.println(" {"); + out.println(" StringBuffer sbuf=new StringBuffer(open);"); + out.println(" String tagname=open.substring(1).trim();"); + out.println(" boolean justReadLT=false;"); + out.println(" boolean justReadLTS=false;"); + out.println(" boolean done=false;"); + out.println(" int tokType=st.nextToken();"); + out.println(" while((!done)&&(tokType!=StreamTokenizer.TT_EOF)) {"); + out.println(" switch(tokType) {"); + out.println(" case StreamTokenizer.TT_WORD:"); + out.println(" if((justReadLTS)&&(tagname.equalsIgnoreCase(st.sval))) {"); + out.println(" done=true; }"); + out.println(" else {"); + out.println(" justReadLT=justReadLTS=false; }"); + out.println(" sbuf.append(\" \" + st.sval);"); + out.println(" break;"); + out.println(" case '<': "); + out.println(" justReadLT=true; "); + out.println(" sbuf.append(\"<\");"); + out.println(" break;"); + out.println(" case '/': "); + out.println(" if(justReadLT) {"); + out.println(" justReadLTS=true; }"); + out.println(" justReadLT=false;"); + out.println(" sbuf.append(\"/\");"); + out.println(" break; }"); + out.println(" if(!done) {"); + out.println(" tokType=st.nextToken(); } }"); + out.println(" //info(\"skipToClose skipped \" + sbuf.toString());"); + out.println(" }"); + out.println(""); + out.println(""); + out.println(" /**"); out.println(" * Read a token corresponding to an element. Examples return values"); out.println(" * would be \"<Configuration\" or \"<NodeInstanceArray\" or \"</Configuration>\"."); |