// Generated by Haxe 4.3.3
package code;

import haxe.root.*;

@SuppressWarnings(value={"rawtypes", "unchecked"})
public class HaxeCode extends haxe.lang.HxObject
{
	static
	{
		//line 10 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/code/HaxeCode.hx"
		{
			//line 10 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/code/HaxeCode.hx"
			java.lang.Object __temp_odecl2 = null;
			//line 10 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/code/HaxeCode.hx"
			{
				//line 10 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/code/HaxeCode.hx"
				java.lang.Object __temp_odecl1 = new haxe.lang.DynamicObject(new java.lang.String[]{"SuppressWarnings"}, new java.lang.Object[]{new haxe.root.Array(new java.lang.Object[]{"checkstyle:CyclomaticComplexity"})}, new java.lang.String[]{}, new double[]{});
				//line 10 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/code/HaxeCode.hx"
				__temp_odecl2 = new haxe.lang.DynamicObject(new java.lang.String[]{"generateMethods"}, new java.lang.Object[]{__temp_odecl1}, new java.lang.String[]{}, new double[]{});
			}
			
			//line 10 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/code/HaxeCode.hx"
			code.HaxeCode.__meta__ = new haxe.lang.DynamicObject(new java.lang.String[]{"statics"}, new java.lang.Object[]{__temp_odecl2}, new java.lang.String[]{}, new double[]{});
		}
		
	}
	
	public HaxeCode(haxe.lang.EmptyObject empty)
	{
	}
	
	
	public HaxeCode()
	{
		//line 10 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/code/HaxeCode.hx"
		code.HaxeCode.__hx_ctor_code_HaxeCode(this);
	}
	
	
	protected static void __hx_ctor_code_HaxeCode(code.HaxeCode __hx_this)
	{
	}
	
	
	public static java.lang.Object __meta__;
	
	public static haxe.ds.StringMap<java.lang.String> generate(model.Diagram diagram)
	{
		//line 12 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/code/HaxeCode.hx"
		haxe.ds.StringMap<java.lang.String> files = new haxe.ds.StringMap<java.lang.String>();
		//line 13 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/code/HaxeCode.hx"
		{
			//line 13 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/code/HaxeCode.hx"
			java.lang.Object set = diagram.iterator();
			//line 13 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/code/HaxeCode.hx"
			while (haxe.lang.Runtime.toBool(((java.lang.Boolean) (haxe.lang.Runtime.callField(set, "hasNext", null)) )))
			{
				//line 13 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/code/HaxeCode.hx"
				model.Set set1 = ((model.Set) (haxe.lang.Runtime.callField(set, "next", null)) );
				//line 14 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/code/HaxeCode.hx"
				if ((  ! (haxe.root.Std.isOfType(set1, model.Association.class))  || (((model.Association) (set1) )).isClass() )) 
				{
					//line 15 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/code/HaxeCode.hx"
					files.set(( set1.className + ".hx" ), code.HaxeCode.generateClass(set1));
				}
				
			}
			
		}
		
		//line 18 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/code/HaxeCode.hx"
		return files;
	}
	
	
	public static java.lang.String generateClass(model.Set set)
	{
		//line 22 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/code/HaxeCode.hx"
		java.lang.String content = "";
		//line 23 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/code/HaxeCode.hx"
		if (set.isGeneric()) 
		{
			//line 23 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/code/HaxeCode.hx"
			content += "@:generic\n";
		}
		
		//line 24 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/code/HaxeCode.hx"
		if (set.isInterface) 
		{
			//line 25 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/code/HaxeCode.hx"
			content += ( ( ( "interface " + set.className ) + (( (set.isGeneric()) ? ("<T>") : ("") )) ) + " {\n" );
		}
		else
		{
			//line 27 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/code/HaxeCode.hx"
			content += ( ( ( ( ( (( (set.isAbstract) ? ("abstract ") : ("") )) + "class " ) + set.className ) + (( (set.isGeneric()) ? ("<T> ") : (" ") )) ) + (( (( set.superset != null )) ? (( ( "extends " + set.superset.className ) + (( (set.superset.isGeneric()) ? ("<T> ") : (" ") )) )) : ("") )) ) + "{\n" );
		}
		
		//line 30 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/code/HaxeCode.hx"
		content += code.HaxeCode.generateFields(set);
		//line 31 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/code/HaxeCode.hx"
		content += code.HaxeCode.generateConstructor(set);
		//line 32 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/code/HaxeCode.hx"
		content += code.HaxeCode.generateMethods(set);
		//line 33 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/code/HaxeCode.hx"
		content += "}\n";
		//line 34 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/code/HaxeCode.hx"
		return content;
	}
	
	
	public static java.lang.String generateFields(model.Set set)
	{
		//line 38 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/code/HaxeCode.hx"
		java.lang.String content = "";
		//line 39 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/code/HaxeCode.hx"
		{
			//line 39 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/code/HaxeCode.hx"
			{
				//line 39 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/code/HaxeCode.hx"
				haxe.root.Array<model.Field> fields = set.fields;
				//line 40 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/code/HaxeCode.hx"
				{
					//line 40 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/code/HaxeCode.hx"
					int _g = 0;
					//line 40 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/code/HaxeCode.hx"
					while (( _g < fields.length ))
					{
						//line 40 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/code/HaxeCode.hx"
						model.Field field = fields.__get(_g);
						//line 40 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/code/HaxeCode.hx"
						 ++ _g;
						//line 41 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/code/HaxeCode.hx"
						content += ( ( ( ( ( ( ( "\t" + (( (( ( field.visibility == model.Field.ACCESS_PRIVATE ) || ( field.visibility == model.Field.ACCESS_PROTECTED ) )) ? ("") : ("public ") )) ) + (( (field.isStatic) ? ("static ") : ("") )) ) + "var " ) + field.className ) + ": " ) + code.HaxeCode.getType(field.classType) ) + ";\n" );
					}
					
				}
				
			}
			
			//line 39 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/code/HaxeCode.hx"
			{
				//line 39 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/code/HaxeCode.hx"
				haxe.root.Array<model.Field> fields1 = set.navFields;
				//line 40 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/code/HaxeCode.hx"
				{
					//line 40 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/code/HaxeCode.hx"
					int _g1 = 0;
					//line 40 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/code/HaxeCode.hx"
					while (( _g1 < fields1.length ))
					{
						//line 40 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/code/HaxeCode.hx"
						model.Field field1 = fields1.__get(_g1);
						//line 40 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/code/HaxeCode.hx"
						 ++ _g1;
						//line 41 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/code/HaxeCode.hx"
						content += ( ( ( ( ( ( ( "\t" + (( (( ( field1.visibility == model.Field.ACCESS_PRIVATE ) || ( field1.visibility == model.Field.ACCESS_PROTECTED ) )) ? ("") : ("public ") )) ) + (( (field1.isStatic) ? ("static ") : ("") )) ) + "var " ) + field1.className ) + ": " ) + code.HaxeCode.getType(field1.classType) ) + ";\n" );
					}
					
				}
				
			}
			
		}
		
		//line 45 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/code/HaxeCode.hx"
		return content;
	}
	
	
	public static java.lang.String generateMethods(model.Set set)
	{
		//line 50 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/code/HaxeCode.hx"
		java.lang.String content = "";
		//line 51 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/code/HaxeCode.hx"
		{
			//line 51 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/code/HaxeCode.hx"
			int _g = 0;
			//line 51 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/code/HaxeCode.hx"
			haxe.root.Array<haxe.root.Array<model.Method>> _g1 = new haxe.root.Array<haxe.root.Array<model.Method>>(new haxe.root.Array[]{set.accessors, set.methods});
			//line 51 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/code/HaxeCode.hx"
			while (( _g < _g1.length ))
			{
				//line 51 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/code/HaxeCode.hx"
				haxe.root.Array<model.Method> methods = _g1.__get(_g);
				//line 51 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/code/HaxeCode.hx"
				 ++ _g;
				//line 52 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/code/HaxeCode.hx"
				{
					//line 52 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/code/HaxeCode.hx"
					int _g2 = 0;
					//line 52 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/code/HaxeCode.hx"
					while (( _g2 < methods.length ))
					{
						//line 52 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/code/HaxeCode.hx"
						model.Method method = methods.__get(_g2);
						//line 52 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/code/HaxeCode.hx"
						 ++ _g2;
						//line 53 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/code/HaxeCode.hx"
						boolean content1 = ( method.isStatic && method.isGeneric() );
						//line 54 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/code/HaxeCode.hx"
						boolean content2 = ( ( method.visibility == model.Field.ACCESS_PRIVATE ) || ( method.visibility == model.Field.ACCESS_PROTECTED ) );
						//line 55 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/code/HaxeCode.hx"
						java.lang.String content3 = ( (method.isStatic) ? ("static ") : ("") );
						//line 55 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/code/HaxeCode.hx"
						java.lang.String content4 = ( (code.Code.overrides(set, method)) ? ("override ") : ("") );
						//line 53 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/code/HaxeCode.hx"
						java.lang.String content5 = ( ( ( ( ( ( ( ( "\n\t" + (( (content1) ? ("@:generic ") : ("") )) ) + (( (content2) ? ("") : ("public ") )) ) + content3 ) + content4 ) + "function " ) + method.className ) + (( (( method.isStatic && method.isGeneric() )) ? ("<T>") : ("") )) ) + "(" );
						//line 57 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/code/HaxeCode.hx"
						haxe.root.Array<java.lang.String> _g3 = new haxe.root.Array<java.lang.String>(new java.lang.String[]{});
						//line 57 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/code/HaxeCode.hx"
						{
							//line 57 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/code/HaxeCode.hx"
							java.lang.Object x = ((java.lang.Object) (haxe.lang.Runtime.callField(((java.lang.Object) (method.params) ), "iterator", null)) );
							//line 57 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/code/HaxeCode.hx"
							while (haxe.lang.Runtime.toBool(((java.lang.Boolean) (haxe.lang.Runtime.callField(x, "hasNext", null)) )))
							{
								//line 57 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/code/HaxeCode.hx"
								model.Field x1 = ((model.Field) (haxe.lang.Runtime.callField(x, "next", null)) );
								//line 57 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/code/HaxeCode.hx"
								_g3.push(( ( x1.className + ": " ) + code.HaxeCode.getType(x1.classType) ));
							}
							
						}
						
						//line 53 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/code/HaxeCode.hx"
						content += ( ( ( ( content5 + _g3.join(", ") ) + ")" ) + (( (haxe.lang.Runtime.valEq(method.classType, "")) ? ("") : (( ": " + code.HaxeCode.getType(method.classType) )) )) ) + " {\n" );
						//line 59 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/code/HaxeCode.hx"
						if (( haxe.lang.Runtime.valEq(haxe.lang.StringExt.substr(method.className, 0, 3), "get") || haxe.lang.Runtime.valEq(haxe.lang.StringExt.substr(method.className, 0, 3), "set") )) 
						{
							//line 60 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/code/HaxeCode.hx"
							model.Field field = set.getFieldCode(code.Code.extractFieldName(method.className, null));
							//line 61 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/code/HaxeCode.hx"
							if (( field != null )) 
							{
								//line 62 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/code/HaxeCode.hx"
								if (haxe.lang.Runtime.valEq(haxe.lang.StringExt.substr(method.className, 0, 3), "set")) 
								{
									//line 63 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/code/HaxeCode.hx"
									content += ( ( ( ( "\t\tthis." + field.className ) + " = " ) + field.className ) + ";\n" );
								}
								
								//line 65 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/code/HaxeCode.hx"
								content += ( ( ( "\t\treturn this." + field.className ) + (( (haxe.lang.Runtime.valEq(haxe.lang.StringExt.substr(field.classType, 0, 5), "Array")) ? (".copy()") : ("") )) ) + ";\n" );
							}
							
						}
						else
						{
							//line 67 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/code/HaxeCode.hx"
							if (( ( method.params.length == 1 ) && (( haxe.lang.Runtime.valEq(haxe.lang.StringExt.substr(method.className, 0, 3), "add") || haxe.lang.Runtime.valEq(haxe.lang.StringExt.substr(method.className, 0, 6), "remove") )) )) 
							{
								//line 68 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/code/HaxeCode.hx"
								model.Field field1 = set.getFieldFromArrayType(method.params.__get(0).classType);
								//line 69 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/code/HaxeCode.hx"
								if (( field1 != null )) 
								{
									//line 70 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/code/HaxeCode.hx"
									content += ( ( ( ( "\t\tthis." + field1.className ) + (( (haxe.lang.Runtime.valEq(haxe.lang.StringExt.substr(method.className, 0, 3), "add")) ? (".push(") : (".remove(") )) ) + method.params.__get(0).className ) + ");\n" );
									//line 72 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/code/HaxeCode.hx"
									content += "\t\treturn this;\n";
								}
								
							}
							else
							{
								//line 74 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/code/HaxeCode.hx"
								if ( ! (haxe.lang.Runtime.valEq(method.classType, "")) ) 
								{
									//line 75 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/code/HaxeCode.hx"
									content += ( ( "\t\treturn " + code.Code.getDefaultValue(method.classType, "new Array()", null) ) + ";\n" );
								}
								
							}
							
						}
						
						//line 77 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/code/HaxeCode.hx"
						content += "\t}\n";
					}
					
				}
				
			}
			
		}
		
		//line 80 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/code/HaxeCode.hx"
		return content;
	}
	
	
	public static java.lang.String generateConstructor(model.Set set)
	{
		//line 84 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/code/HaxeCode.hx"
		java.lang.String content = "";
		//line 85 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/code/HaxeCode.hx"
		if (( set.constructors.length != 0 )) 
		{
			//line 86 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/code/HaxeCode.hx"
			model.Method method = set.constructors.__get(0);
			//line 87 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/code/HaxeCode.hx"
			haxe.root.Array<java.lang.String> _g = new haxe.root.Array<java.lang.String>(new java.lang.String[]{});
			//line 87 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/code/HaxeCode.hx"
			{
				//line 87 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/code/HaxeCode.hx"
				java.lang.Object x = ((java.lang.Object) (haxe.lang.Runtime.callField(((java.lang.Object) (method.params) ), "iterator", null)) );
				//line 87 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/code/HaxeCode.hx"
				while (haxe.lang.Runtime.toBool(((java.lang.Boolean) (haxe.lang.Runtime.callField(x, "hasNext", null)) )))
				{
					//line 87 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/code/HaxeCode.hx"
					model.Field x1 = ((model.Field) (haxe.lang.Runtime.callField(x, "next", null)) );
					//line 87 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/code/HaxeCode.hx"
					_g.push(( ( x1.className + ": " ) + code.HaxeCode.getType(x1.classType) ));
				}
				
			}
			
			//line 87 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/code/HaxeCode.hx"
			content += ( ( "\n\tpublic function new(" + _g.join(", ") ) + ") {\n" );
			//line 88 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/code/HaxeCode.hx"
			if (( set.superset != null )) 
			{
				//line 89 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/code/HaxeCode.hx"
				haxe.root.Array<model.Field> parentFields = ((haxe.root.Array<model.Field>) (((haxe.root.Array) (haxe.root.Lambda.filter(((java.lang.Object) (method.params) ), ((haxe.lang.Function) (new code.HaxeCode_generateConstructor_89__Fun(set)) ))) )) );
				//line 90 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/code/HaxeCode.hx"
				haxe.root.Array<java.lang.String> _g1 = new haxe.root.Array<java.lang.String>(new java.lang.String[]{});
				//line 90 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/code/HaxeCode.hx"
				{
					//line 90 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/code/HaxeCode.hx"
					int _g_current = 0;
					//line 90 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/code/HaxeCode.hx"
					haxe.root.Array<model.Field> _g_array = parentFields;
					//line 90 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/code/HaxeCode.hx"
					while (( _g_current < _g_array.length ))
					{
						//line 90 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/code/HaxeCode.hx"
						model.Field x2 = _g_array.__get(_g_current++);
						//line 90 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/code/HaxeCode.hx"
						_g1.push(x2.className);
					}
					
				}
				
				//line 90 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/code/HaxeCode.hx"
				content += ( ( "\t\tsuper(" + _g1.join(", ") ) + ");\n" );
			}
			
			//line 92 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/code/HaxeCode.hx"
			{
				//line 92 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/code/HaxeCode.hx"
				int _g2 = 0;
				//line 92 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/code/HaxeCode.hx"
				haxe.root.Array<model.Field> _g3 = method.params;
				//line 92 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/code/HaxeCode.hx"
				while (( _g2 < _g3.length ))
				{
					//line 92 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/code/HaxeCode.hx"
					model.Field param = _g3.__get(_g2);
					//line 92 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/code/HaxeCode.hx"
					 ++ _g2;
					//line 93 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/code/HaxeCode.hx"
					model.Field field = set.getFieldCode(param.className);
					//line 94 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/code/HaxeCode.hx"
					if (( field != null )) 
					{
						//line 95 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/code/HaxeCode.hx"
						content += ( ( ( ( "\t\tthis." + field.className ) + " = " ) + param.className ) + ";\n" );
					}
					
				}
				
			}
			
			//line 98 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/code/HaxeCode.hx"
			{
				//line 98 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/code/HaxeCode.hx"
				{
					//line 98 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/code/HaxeCode.hx"
					haxe.root.Array<model.Field> fields = set.fields;
					//line 99 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/code/HaxeCode.hx"
					{
						//line 99 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/code/HaxeCode.hx"
						int _g4 = 0;
						//line 99 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/code/HaxeCode.hx"
						while (( _g4 < fields.length ))
						{
							//line 99 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/code/HaxeCode.hx"
							model.Field field1 = fields.__get(_g4);
							//line 99 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/code/HaxeCode.hx"
							 ++ _g4;
							//line 100 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/code/HaxeCode.hx"
							if ((  ! (field1.isStatic)  &&  ! (haxe.lang.Runtime.toBool(((java.lang.Boolean) (haxe.root.Lambda.exists(((java.lang.Object) (method.params) ), ((haxe.lang.Function) (new code.HaxeCode_generateConstructor_100__Fun_0(field1)) ))) )))  )) 
							{
								//line 101 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/code/HaxeCode.hx"
								content += ( ( ( ( "\t\tthis." + field1.className ) + " = " ) + code.Code.getDefaultValue(field1.classType, "new Array()", null) ) + ";\n" );
							}
							
						}
						
					}
					
				}
				
				//line 98 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/code/HaxeCode.hx"
				{
					//line 98 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/code/HaxeCode.hx"
					haxe.root.Array<model.Field> fields1 = set.navFields;
					//line 99 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/code/HaxeCode.hx"
					{
						//line 99 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/code/HaxeCode.hx"
						int _g5 = 0;
						//line 99 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/code/HaxeCode.hx"
						while (( _g5 < fields1.length ))
						{
							//line 99 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/code/HaxeCode.hx"
							model.Field field2 = fields1.__get(_g5);
							//line 99 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/code/HaxeCode.hx"
							 ++ _g5;
							//line 100 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/code/HaxeCode.hx"
							if ((  ! (field2.isStatic)  &&  ! (haxe.lang.Runtime.toBool(((java.lang.Boolean) (haxe.root.Lambda.exists(((java.lang.Object) (method.params) ), ((haxe.lang.Function) (new code.HaxeCode_generateConstructor_100__Fun(field2)) ))) )))  )) 
							{
								//line 101 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/code/HaxeCode.hx"
								content += ( ( ( ( "\t\tthis." + field2.className ) + " = " ) + code.Code.getDefaultValue(field2.classType, "new Array()", null) ) + ";\n" );
							}
							
						}
						
					}
					
				}
				
			}
			
			//line 105 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/code/HaxeCode.hx"
			content += "\t}\n";
		}
		
		//line 107 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/code/HaxeCode.hx"
		return content;
	}
	
	
	public static java.lang.String getType(java.lang.String classType)
	{
		//line 111 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/code/HaxeCode.hx"
		java.lang.String languageType = classType;
		//line 112 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/code/HaxeCode.hx"
		if (( haxe.lang.Runtime.valEq(classType, "Time") || haxe.lang.Runtime.valEq(classType, "DateTime") )) 
		{
			//line 113 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/code/HaxeCode.hx"
			languageType = "Date";
		}
		
		//line 115 "/home/frank/Documents/Developpements/dbconcept-0.5.1/src/code/HaxeCode.hx"
		return languageType;
	}
	
	
}


