1 22 23 24 package com.mchange.v2.codegen.bean; 25 26 import java.util.*; 27 28 import java.lang.reflect.Modifier ; 29 import java.io.IOException ; 30 import com.mchange.v2.codegen.CodegenUtils; 31 import com.mchange.v2.codegen.IndentedWriter; 32 33 public class PropertyMapConstructorGeneratorExtension implements GeneratorExtension 34 { 35 int ctor_modifiers = Modifier.PUBLIC; 36 37 public Collection extraGeneralImports() 38 { return Collections.EMPTY_SET; } 39 40 public Collection extraSpecificImports() 41 { 42 Set set = new HashSet(); 43 set.add("java.util.Map"); 44 return set; 45 } 46 47 public Collection extraInterfaceNames() 48 { return Collections.EMPTY_SET; } 49 50 public void generate(ClassInfo info, Class superclassType, Property[] props, Class [] propTypes, IndentedWriter iw) 51 throws IOException 52 { 53 iw.print( CodegenUtils.getModifierString( ctor_modifiers ) ); 54 iw.print(' ' + info.getClassName() + "( Map map )"); 55 iw.println("{"); 56 iw.upIndent(); 57 58 iw.println( "Object raw;" ); 59 for (int i = 0, len = props.length; i < len; ++i) 60 { 61 Property prop = props[i]; 62 String propName = prop.getName(); 63 Class propType = propTypes[i]; 64 iw.println("raw = map.get( \"" + propName + "\" );"); 65 iw.println("if (raw != null)"); 66 iw.println("{"); 67 iw.upIndent(); 68 69 iw.print("this." + propName + " = "); 70 if ( propType == boolean.class ) 71 iw.println( "((Boolean) raw ).booleanValue();" ); 72 else if ( propType == byte.class ) 73 iw.println( "((Byte) raw ).byteValue();" ); 74 else if ( propType == char.class ) 75 iw.println( "((Character) raw ).charValue();" ); 76 else if ( propType == short.class ) 77 iw.println( "((Short) raw ).shortValue();" ); 78 else if ( propType == int.class ) 79 iw.println( "((Integer) raw ).intValue();" ); 80 else if ( propType == long.class ) 81 iw.println( "((Long) raw ).longValue();" ); 82 else if ( propType == float.class ) 83 iw.println( "((Float) raw ).floatValue();" ); 84 else if ( propType == double.class ) 85 iw.println( "((Double) raw ).doubleValue();" ); 86 iw.println("raw = null;"); 87 88 iw.downIndent(); 89 iw.println("}"); 90 } 91 92 iw.downIndent(); 93 iw.println("}"); 94 } 95 } 96 | Popular Tags |