1 22 23 24 package com.mchange.v2.codegen.bean; 25 26 import java.util.*; 27 import java.lang.reflect.Modifier ; 28 import java.io.IOException ; 29 import com.mchange.v2.codegen.CodegenUtils; 30 import com.mchange.v2.codegen.IndentedWriter; 31 32 public class CompleteConstructorGeneratorExtension implements GeneratorExtension 33 { 34 int ctor_modifiers = Modifier.PUBLIC; 35 36 public Collection extraGeneralImports() 37 { return Collections.EMPTY_SET; } 38 39 public Collection extraSpecificImports() 40 { return Collections.EMPTY_SET; } 41 42 public Collection extraInterfaceNames() 43 { return Collections.EMPTY_SET; } 44 45 public void generate(ClassInfo info, Class superclassType, Property[] props, Class [] propTypes, IndentedWriter iw) 46 throws IOException 47 { 48 iw.print( CodegenUtils.getModifierString( ctor_modifiers ) ); 49 iw.print( info.getClassName() + "( "); 50 BeangenUtils.writeArgList(props, true, iw); 51 iw.println(" )"); 52 iw.println("{"); 53 iw.upIndent(); 54 55 for (int i = 0, len = props.length; i < len; ++i) 56 { 57 iw.print("this." + props[i].getName() + " = "); 58 String setExp = props[i].getDefensiveCopyExpression(); 59 if (setExp == null) 60 setExp = props[i].getName(); 61 iw.println(setExp + ';'); 62 } 63 64 iw.downIndent(); 65 iw.println("}"); 66 } 67 } 68 | Popular Tags |