|
From: Eric P. <th...@us...> - 2010-12-16 18:28:32
|
Update of /cvsroot/sandev/sand/apps/basics/build/generate/org/sandev/generator In directory sfp-cvsdas-3.v30.ch3.sourceforge.com:/tmp/cvs-serv29615 Modified Files: InstanceGeneratorBase.java Log Message: Changed isEquivalent so that it calls a new diff method which will report back what the differences are between two instances. Same functionality but much more useful when debugging. Index: InstanceGeneratorBase.java =================================================================== RCS file: /cvsroot/sandev/sand/apps/basics/build/generate/org/sandev/generator/InstanceGeneratorBase.java,v retrieving revision 1.55 retrieving revision 1.56 diff -C2 -d -r1.55 -r1.56 *** InstanceGeneratorBase.java 31 Mar 2009 01:19:30 -0000 1.55 --- InstanceGeneratorBase.java 16 Dec 2010 18:28:24 -0000 1.56 *************** *** 1,5 **** /* * SAND development/deployment environment ! * Copyright (C) 2003,2006-2009 SAND Services Inc. * * This library is free software; you can redistribute it and/or --- 1,5 ---- /* * SAND development/deployment environment ! * Copyright (C) 2003,2006-2010 SAND Services Inc. * * This library is free software; you can redistribute it and/or *************** *** 2022,2031 **** out.println(" * equivalent to another null array element. </p>"); out.println(" */"); ! out.println(" public boolean isEquivalent(SandMessage sm) {"); out.println(" if(sm==null) {"); ! out.println(" return false; }"); out.println(" if(!(sm instanceof " + classname + ")) {"); ! out.println(" return false; }"); out.println(" " + classname + " msg=(" + classname + ")sm;"); for(int i=0;i<fields.length;i++) { FieldDoc fd=fields[i]; --- 2022,2047 ---- out.println(" * equivalent to another null array element. </p>"); out.println(" */"); ! out.println(" public boolean isEquivalent(SandMessage sm)"); ! out.println(" {"); ! out.println(" if(!StringUtil.haveValue(diff(sm,false))) {"); ! out.println(" return true; }"); ! out.println(" return false;"); ! out.println(" }"); ! out.println(""); ! out.println(""); ! out.println(" /**"); ! out.println(" * Compare the given message and return a description of which"); ! out.println(" * fields are different. If allFields is true then allfields"); ! out.println(" * are compared, otherwise only the first differing field is"); ! out.println(" * returned."); ! out.println(" */"); ! out.println(" public String diff(SandMessage sm,boolean allFields)"); ! out.println(" {"); out.println(" if(sm==null) {"); ! out.println(" return \"Given message is null\"; }"); out.println(" if(!(sm instanceof " + classname + ")) {"); ! out.println(" return \"Given message not a " + classname + ".\"; }"); out.println(" " + classname + " msg=(" + classname + ")sm;"); + out.println(" StringBuffer sbuf=new StringBuffer();"); for(int i=0;i<fields.length;i++) { FieldDoc fd=fields[i]; *************** *** 2049,2053 **** isArray=true; } writeEquivalenceCheck(out,fieldName,fieldType,isStruct,isArray); } ! out.println(" return true;"); out.println(" }"); out.println(""); --- 2065,2069 ---- isArray=true; } writeEquivalenceCheck(out,fieldName,fieldType,isStruct,isArray); } ! out.println(" return sbuf.toString();"); out.println(" }"); out.println(""); *************** *** 2075,2082 **** out.println(indent + "if(((" + thisacc + "==null)&&(" + thatacc + "!=null))||"); out.println(indent + " ((" + thisacc + "!=null)&&(" + thatacc + "==null))) {"); ! out.println(indent + " return false; } //valid array not same as null"); out.println(indent + "if((" + thisacc + "!=null)&&(" + thatacc + "!=null)) {"); out.println(indent + " if(" + thisacc + ".length!=" + thatacc + ".length) {"); ! out.println(indent + " return false; } //array lengths differ"); out.println(indent + " for(int i=0;i<" + fieldName + ".length;i++) {"); indent+=" "; } --- 2091,2100 ---- out.println(indent + "if(((" + thisacc + "==null)&&(" + thatacc + "!=null))||"); out.println(indent + " ((" + thisacc + "!=null)&&(" + thatacc + "==null))) {"); ! out.println(indent + " sbuf.append(\"" + fieldName + " array not same as null. \");"); ! out.println(indent + " if(!allFields) return sbuf.toString(); }"); out.println(indent + "if((" + thisacc + "!=null)&&(" + thatacc + "!=null)) {"); out.println(indent + " if(" + thisacc + ".length!=" + thatacc + ".length) {"); ! out.println(indent + " sbuf.append(\"" + fieldName + " array lengths differ. \");"); ! out.println(indent + " if(!allFields) return sbuf.toString(); }"); out.println(indent + " for(int i=0;i<" + fieldName + ".length;i++) {"); indent+=" "; } *************** *** 2126,2130 **** out.print(")"); } out.println(" {"); ! out.println(indent + " " + "return false; }"); if(isArray) { out.println(indent + "} }"); } --- 2144,2149 ---- out.print(")"); } out.println(" {"); ! out.println(indent + " sbuf.append(\"" + fieldName + " not equivalent. \");"); ! out.println(indent + " if(!allFields) return sbuf.toString(); }"); if(isArray) { out.println(indent + "} }"); } |