1 30 package com.genimen.djeneric.tools.strongtyper; 31 32 import com.genimen.djeneric.repository.DjExtent; 33 34 public class SessionGenerator extends Generator 35 { 36 DjExtent[] _extents = null; 37 38 public SessionGenerator(DjExtent[] extents) throws Exception 39 { 40 _extents = extents; 41 if (extents == null || extents.length == 0) throw new Exception ( 42 "Can not generate a session without any Extents selected"); 43 } 44 45 public String getClassName() 46 { 47 return getSessionClassName() + (isAbstract() ? getGeneratedSuffix() : ""); 48 } 49 50 public String getPackageName() 51 { 52 return getImplPackageName(); 53 } 54 55 public String getCode() throws Exception 56 { 57 StringBuffer code = new StringBuffer (5000); 58 if (getPackageName().trim().length() > 0) code.append("package " + getPackageName() + ";\n\n"); 59 60 code.append("// THIS FILE CAN BE MODIFED SAFELY\n"); 61 code.append("// THIS FILE WILL NEVER BE OVERWRITTEN BY THE STRONGTYPER\n\n"); 62 63 code.append("import com.genimen.djeneric.repository.exceptions.*;\n\n"); 64 code.append("public class " + getClassName() + " extends " + getAbstractSessionClassName() + "\n{\n"); 65 66 code.append("\n" + " protected " + getClassName() + "(" + getManagerClassName() 67 + " mgr) throws ObjectNotDefinedException\n" + " { \n" + " super(mgr);\n" + " }\n\n" 68 + " // Uncomment and modify the following code to activate your own sub classes:\n" + " /*\n" 69 + " public DjObject createObject(DjExtent extent) throws DjenericException\n" + " { \n" 70 + " if(!isValid())\n" + " throw new Exception(\"Session closed\");\n" 71 + " DjObject po = null;\n" + " // for example:\n" + " if(extent == _" + _extents[0].getName() 72 + "Extent)\n" + " {\n" + " po = new SubClassed" + getClassName(_extents[0]) + "(this, _" 73 + _extents[0].getName() + "Extent);\n" + " cacheObject(po);\n" + " }\n" + " else\n" 74 + " po = super.createObject(extent);\n" + " return po;\n" + " }\n\n" + " */\n"); 75 76 code.append("\n}\n"); 77 78 return code.toString(); 79 } 80 81 } | Popular Tags |