/** <summary> * Return a list of all template sigs that are present in the group, but * that have wrong formal argument lists. Return null if all is well. * </summary> */ public virtual IList<string> GetMismatchedTemplates( StringTemplateGroup group ) { List<string> mismatched = new List<string>(); foreach ( TemplateDefinition d in _templates.Values ) { if ( group.IsDefined( d.name ) ) { StringTemplate defST = group.GetTemplateDefinition( d.name ); var formalArgs = defST.FormalArguments; bool ack = false; if ( ( d.formalArgs != null && formalArgs == null ) || ( d.formalArgs == null && formalArgs != null ) || d.formalArgs.Count != formalArgs.Count ) { ack = true; } if ( !ack ) { foreach ( var arg in formalArgs ) { FormalArgument arg2; if ( !d.formalArgs.TryGetValue( arg.name, out arg2 ) || arg2 == null ) { ack = true; break; } } } if ( ack ) { //System.out.println(d.formalArgs+"!="+formalArgs); mismatched.Add( GetTemplateSignature( d ) ); } } } if ( mismatched.Count == 0 ) { mismatched = null; } return mismatched; }