out.println("");
newline(out);
        public void generateCode(PrintWriter out, HashMap clonerMap)        {            newline(out);            out.print("public ");            if (!generate)            {                out.print("abstract ");            }            out.print(targetPlainName);            out.print(" ");            out.print(name);            out.print("(");            out.print(sourcePlainName);            out.print(" source)");            if (!generate)            {                out.print(";");                return;            }            out.print(" {");            indentMore();            newline(out);            out.println("if (source == null) { return null;");            out.println(" }");            out.println("");            // insert assertion            out.print("assertClass(source, ");            out.print(sourceConcreteType.getName());            out.print(".class);");            newline(out);            out.print(targetPlainName);            out.print(" target = new ");            out.print(onlyClassName(targetConcreteType.getName()));            out.print("();");            newline(out);            out.print("target.setIdInternal(source.getIdInternal());");            newline(out);            generateCopyingCode(out, clonerMap);            out.print("return target;");            indentLess();            newline(out);            out.print("}");            newline(out);        }