else
} else {
  public String toString()  {    if (m_entries == null)      return "Can't print decision table classifier!";    else    {      StringBuffer text = new StringBuffer();            text.append("Decision Table classifier:"+		  "\n\nNumber of training instances: "+m_numInstances+		  "\nNumber of Rules : "+m_entries.size()+"\n");      if (m_useIBk)	text.append("Non matches covered by IB1.\n");      else	text.append("Non matches covered by Majority class.\n");      text.append("Best first search for feature set,\nterminated after "+		  m_maxStale+" non improving subsets.\n");      	text.append("Evaluation (for feature selection): CV ");	if (m_CVFolds > 1)	  text.append("("+m_CVFolds+" fold) ");	else	  text.append("(leave one out) ");	text.append("\nFeature set: "+printFeatures());      if (m_displayRules)      {	text.append("\n\nRules:\n");	StringBuffer tm = new StringBuffer();	for (int i=0;i<m_decisionFeatures.length;i++)	{	  if (m_theInstances.classIndex() != m_decisionFeatures[i])	    tm.append(m_theInstances.attribute(i).name()+"  ");		}	tm.append(m_theInstances.attribute(m_theInstances.classIndex()).name()+"  ");	for (int i=0;i<tm.length()+10;i++)	  text.append("=");	text.append("\n");	text.append(tm);	text.append("\n");	for (int i=0;i<tm.length()+10;i++)	  text.append("=");	text.append("\n");    	Enumeration e = m_entries.keys();	while (e.hasMoreElements())	{	  hashKey tt = (hashKey)e.nextElement();	  text.append(tt.toString(m_theInstances));	  double [] ClassDist = (double []) m_entries.get(tt);	  if (m_classIsNominal)	  {	    int m = Utils.maxIndex(ClassDist);	    try {	      text.append(m_theInstances.classAttribute().value(m)+"\n");	    }	    catch (Exception ee) {	      System.out.println(ee.getMessage());	    }	  }	  else	    text.append((ClassDist[0] / ClassDist[1])+"\n");	}	for (int i=0;i<tm.length()+10;i++)	  text.append("=");	text.append("\n");	text.append("\n");      }      return text.toString();    }  }