package jfreechart_demo; import org.jfree.chart.*; public abstract class ChartCreator { public abstract JFreeChart createChart(); public String getName() { String fullName = this.getClass().getName(); String name = fullName.substring(fullName.lastIndexOf('.') + 1); char[] chars = name.toCharArray(); StringBuffer sb = new StringBuffer(); boolean prevIsUpperOrDigit = true; for (int i = 0; i < chars.length; i++) { char c = chars[i]; boolean isUpperOrDigit = Character.isUpperCase(c) || Character.isDigit(c); if ((!prevIsUpperOrDigit && isUpperOrDigit) || (isUpperOrDigit && Character.isLowerCase(chars[i + 1]))) sb.append(' '); sb.append(c); prevIsUpperOrDigit = isUpperOrDigit; } return sb.toString().trim(); } }