// Generated by Haxe 4.3.1
package model;

import haxe.root.*;

@SuppressWarnings(value={"rawtypes", "unchecked"})
public class Relation extends model.Obj
{
	public Relation(haxe.lang.EmptyObject empty)
	{
		//line 3 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/model/Relation.hx"
		super(((haxe.lang.EmptyObject) (haxe.lang.EmptyObject.EMPTY) ));
	}
	
	
	public Relation(java.lang.String name)
	{
		//line 8 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/model/Relation.hx"
		super(((haxe.lang.EmptyObject) (haxe.lang.EmptyObject.EMPTY) ));
		//line 8 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/model/Relation.hx"
		model.Relation.__hx_ctor_model_Relation(this, name);
	}
	
	
	protected static void __hx_ctor_model_Relation(model.Relation __hx_this, java.lang.String name)
	{
		//line 8 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/model/Relation.hx"
		model.Obj.__hx_ctor_model_Obj(__hx_this, name);
		//line 9 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/model/Relation.hx"
		__hx_this.key = new haxe.root.Array<java.lang.String>();
		//line 10 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/model/Relation.hx"
		__hx_this.foreignKeys = new haxe.root.Array<java.lang.Object>();
	}
	
	
	public haxe.root.Array<java.lang.String> key;
	
	public haxe.root.Array<java.lang.Object> foreignKeys;
	
	public haxe.root.Array<java.lang.Object> mergeForeignKeys()
	{
		//line 14 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/model/Relation.hx"
		haxe.root.Array<java.lang.Object> mergedFKList = new haxe.root.Array<java.lang.Object>();
		//line 15 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/model/Relation.hx"
		int i = 0;
		//line 16 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/model/Relation.hx"
		while (( i < this.foreignKeys.length ))
		{
			//line 17 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/model/Relation.hx"
			java.lang.Object currentFK = null;
			//line 17 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/model/Relation.hx"
			{
				//line 17 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/model/Relation.hx"
				haxe.root.Array<java.lang.String> __temp_odecl1 = new haxe.root.Array<java.lang.String>(new java.lang.String[]{haxe.lang.Runtime.toString(haxe.lang.Runtime.getField(this.foreignKeys.__get(i), "name", true))});
				//line 17 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/model/Relation.hx"
				model.Relation __temp_odecl2 = ((model.Relation) (haxe.lang.Runtime.getField(this.foreignKeys.__get(i), "relation", true)) );
				//line 17 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/model/Relation.hx"
				haxe.root.Array<java.lang.String> __temp_odecl3 = new haxe.root.Array<java.lang.String>(new java.lang.String[]{haxe.lang.Runtime.toString(haxe.lang.Runtime.getField(this.foreignKeys.__get(i), "key", true))});
				//line 17 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/model/Relation.hx"
				currentFK = new haxe.lang.DynamicObject(new java.lang.String[]{"keys", "names", "relation"}, new java.lang.Object[]{__temp_odecl3, __temp_odecl1, __temp_odecl2}, new java.lang.String[]{}, new double[]{});
			}
			
			//line 18 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/model/Relation.hx"
			{
				//line 18 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/model/Relation.hx"
				int _g = 1;
				//line 18 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/model/Relation.hx"
				int _g1 = ((model.Relation) (haxe.lang.Runtime.getField(currentFK, "relation", true)) ).key.length;
				//line 18 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/model/Relation.hx"
				while (( _g < _g1 ))
				{
					//line 18 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/model/Relation.hx"
					int j = _g++;
					//line 19 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/model/Relation.hx"
					((haxe.root.Array<java.lang.String>) (haxe.lang.Runtime.getField(currentFK, "names", true)) ).push(haxe.lang.Runtime.toString(haxe.lang.Runtime.getField(this.foreignKeys.__get(( i + j )), "name", true)));
					//line 20 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/model/Relation.hx"
					((haxe.root.Array<java.lang.String>) (haxe.lang.Runtime.getField(currentFK, "keys", true)) ).push(haxe.lang.Runtime.toString(haxe.lang.Runtime.getField(this.foreignKeys.__get(( i + j )), "key", true)));
					//line 21 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/model/Relation.hx"
					 ++ i;
				}
				
			}
			
			//line 23 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/model/Relation.hx"
			 ++ i;
			//line 24 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/model/Relation.hx"
			mergedFKList.push(currentFK);
		}
		
		//line 26 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/model/Relation.hx"
		return mergedFKList;
	}
	
	
	public java.lang.String toENString()
	{
		//line 30 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/model/Relation.hx"
		java.lang.String tmp = ( this.name + " (" );
		//line 30 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/model/Relation.hx"
		haxe.root.Array<model.Field> _this = this.fields;
		//line 30 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/model/Relation.hx"
		haxe.root.Array<java.lang.String> ret = ((haxe.root.Array<java.lang.String>) (((haxe.root.Array) (haxe.root.Array.alloc(((int) (_this.length) ))) )) );
		//line 30 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/model/Relation.hx"
		{
			//line 30 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/model/Relation.hx"
			int _g = 0;
			//line 30 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/model/Relation.hx"
			int _g1 = _this.length;
			//line 30 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/model/Relation.hx"
			while (( _g < _g1 ))
			{
				//line 30 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/model/Relation.hx"
				int i = _g++;
				//line 30 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/model/Relation.hx"
				ret.__set(i, _this.__get(i).name);
			}
			
		}
		
		//line 30 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/model/Relation.hx"
		java.lang.String tmp1 = ( ( ( ( ( tmp + ret.join(", ") ) + ")\n" ) + "    cl\u00e9 primaire : " ) + this.key.join(", ") ) + (( (( this.foreignKeys.length == 0 )) ? ("") : ("\n") )) );
		//line 33 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/model/Relation.hx"
		haxe.root.Array<java.lang.Object> _this1 = this.mergeForeignKeys();
		//line 33 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/model/Relation.hx"
		haxe.root.Array<java.lang.String> ret1 = ((haxe.root.Array<java.lang.String>) (((haxe.root.Array) (haxe.root.Array.alloc(((int) (_this1.length) ))) )) );
		//line 33 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/model/Relation.hx"
		{
			//line 33 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/model/Relation.hx"
			int _g2 = 0;
			//line 33 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/model/Relation.hx"
			int _g3 = _this1.length;
			//line 33 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/model/Relation.hx"
			while (( _g2 < _g3 ))
			{
				//line 33 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/model/Relation.hx"
				int i1 = _g2++;
				//line 33 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/model/Relation.hx"
				java.lang.Object mfk = _this1.__get(i1);
				//line 33 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/model/Relation.hx"
				ret1.__set(i1, ( ( ( ( ( ( "    cl\u00e9 \u00e9trang\u00e8re : " + ((haxe.root.Array<java.lang.String>) (haxe.lang.Runtime.getField(mfk, "names", true)) ).join(", ") ) + " r\u00e9f\u00e9rence " ) + ((model.Relation) (haxe.lang.Runtime.getField(mfk, "relation", true)) ).name ) + "(" ) + ((haxe.root.Array<java.lang.String>) (haxe.lang.Runtime.getField(mfk, "keys", true)) ).join(", ") ) + ")" ));
			}
			
		}
		
		//line 30 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/model/Relation.hx"
		return ( ( tmp1 + ret1.join("\n") ) + "\n" );
	}
	
	
	public java.lang.String toUnivString()
	{
		//line 38 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/model/Relation.hx"
		haxe.root.Array<java.lang.String> strings = new haxe.root.Array<java.lang.String>();
		//line 39 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/model/Relation.hx"
		{
			//line 39 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/model/Relation.hx"
			int _g = 0;
			//line 39 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/model/Relation.hx"
			haxe.root.Array<java.lang.String> _g1 = this.key;
			//line 39 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/model/Relation.hx"
			while (( _g < _g1.length ))
			{
				//line 39 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/model/Relation.hx"
				java.lang.String k = _g1.__get(_g);
				//line 39 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/model/Relation.hx"
				 ++ _g;
				//line 40 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/model/Relation.hx"
				haxe.root.Array<java.lang.String> _g2 = new haxe.root.Array<java.lang.String>(new java.lang.String[]{});
				//line 40 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/model/Relation.hx"
				{
					//line 40 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/model/Relation.hx"
					java.lang.Object x = ((java.lang.Object) (haxe.lang.Runtime.callField(((java.lang.Object) (this.foreignKeys) ), "iterator", null)) );
					//line 40 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/model/Relation.hx"
					while (haxe.lang.Runtime.toBool(((java.lang.Boolean) (haxe.lang.Runtime.callField(x, "hasNext", null)) )))
					{
						//line 40 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/model/Relation.hx"
						java.lang.Object x1 = ((java.lang.Object) (haxe.lang.Runtime.callField(x, "next", null)) );
						//line 40 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/model/Relation.hx"
						_g2.push(haxe.lang.Runtime.toString(haxe.lang.Runtime.getField(x1, "name", true)));
					}
					
				}
				
				//line 40 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/model/Relation.hx"
				strings.push(( ( ( "\u001b[4m" + (( (( _g2.indexOf(k, null) == -1 )) ? ("") : ("#") )) ) + k ) + "\u001b[0m" ));
			}
			
		}
		
		//line 42 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/model/Relation.hx"
		{
			//line 42 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/model/Relation.hx"
			int _g3 = 0;
			//line 42 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/model/Relation.hx"
			haxe.root.Array<model.Field> _g4 = this.fields;
			//line 42 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/model/Relation.hx"
			while (( _g3 < _g4.length ))
			{
				//line 42 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/model/Relation.hx"
				model.Field f = _g4.__get(_g3);
				//line 42 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/model/Relation.hx"
				 ++ _g3;
				//line 43 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/model/Relation.hx"
				if (( this.key.indexOf(f.name, null) == -1 )) 
				{
					//line 44 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/model/Relation.hx"
					haxe.root.Array<java.lang.String> _g5 = new haxe.root.Array<java.lang.String>(new java.lang.String[]{});
					//line 44 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/model/Relation.hx"
					{
						//line 44 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/model/Relation.hx"
						java.lang.Object x2 = ((java.lang.Object) (haxe.lang.Runtime.callField(((java.lang.Object) (this.foreignKeys) ), "iterator", null)) );
						//line 44 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/model/Relation.hx"
						while (haxe.lang.Runtime.toBool(((java.lang.Boolean) (haxe.lang.Runtime.callField(x2, "hasNext", null)) )))
						{
							//line 44 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/model/Relation.hx"
							java.lang.Object x3 = ((java.lang.Object) (haxe.lang.Runtime.callField(x2, "next", null)) );
							//line 44 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/model/Relation.hx"
							_g5.push(haxe.lang.Runtime.toString(haxe.lang.Runtime.getField(x3, "name", true)));
						}
						
					}
					
					//line 44 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/model/Relation.hx"
					strings.push(( (( (( _g5.indexOf(f.name, null) == -1 )) ? ("") : ("#") )) + f.name ));
				}
				
			}
			
		}
		
		//line 47 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/model/Relation.hx"
		return ( ( ( ( "\u001b[1m" + this.name ) + "\u001b[0m (" ) + strings.join(", ") ) + ")\n" );
	}
	
	
	@Override public java.lang.Object __hx_setField(java.lang.String field, java.lang.Object value, boolean handleProperties)
	{
		//line 3 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/model/Relation.hx"
		{
			//line 3 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/model/Relation.hx"
			boolean __temp_executeDef1 = true;
			//line 3 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/model/Relation.hx"
			if (( field != null )) 
			{
				//line 3 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/model/Relation.hx"
				switch (field.hashCode())
				{
					case -1448437528:
					{
						//line 3 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/model/Relation.hx"
						if (field.equals("foreignKeys")) 
						{
							//line 3 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/model/Relation.hx"
							__temp_executeDef1 = false;
							//line 3 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/model/Relation.hx"
							this.foreignKeys = ((haxe.root.Array<java.lang.Object>) (value) );
							//line 3 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/model/Relation.hx"
							return value;
						}
						
						//line 3 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/model/Relation.hx"
						break;
					}
					
					
					case 106079:
					{
						//line 3 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/model/Relation.hx"
						if (field.equals("key")) 
						{
							//line 3 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/model/Relation.hx"
							__temp_executeDef1 = false;
							//line 3 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/model/Relation.hx"
							this.key = ((haxe.root.Array<java.lang.String>) (value) );
							//line 3 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/model/Relation.hx"
							return value;
						}
						
						//line 3 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/model/Relation.hx"
						break;
					}
					
					
				}
				
			}
			
			//line 3 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/model/Relation.hx"
			if (__temp_executeDef1) 
			{
				//line 3 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/model/Relation.hx"
				return super.__hx_setField(field, value, handleProperties);
			}
			else
			{
				//line 3 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/model/Relation.hx"
				throw null;
			}
			
		}
		
	}
	
	
	@Override public java.lang.Object __hx_getField(java.lang.String field, boolean throwErrors, boolean isCheck, boolean handleProperties)
	{
		//line 3 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/model/Relation.hx"
		{
			//line 3 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/model/Relation.hx"
			boolean __temp_executeDef1 = true;
			//line 3 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/model/Relation.hx"
			if (( field != null )) 
			{
				//line 3 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/model/Relation.hx"
				switch (field.hashCode())
				{
					case 1864873490:
					{
						//line 3 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/model/Relation.hx"
						if (field.equals("toUnivString")) 
						{
							//line 3 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/model/Relation.hx"
							__temp_executeDef1 = false;
							//line 3 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/model/Relation.hx"
							return ((haxe.lang.Function) (new haxe.lang.Closure(this, "toUnivString")) );
						}
						
						//line 3 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/model/Relation.hx"
						break;
					}
					
					
					case 106079:
					{
						//line 3 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/model/Relation.hx"
						if (field.equals("key")) 
						{
							//line 3 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/model/Relation.hx"
							__temp_executeDef1 = false;
							//line 3 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/model/Relation.hx"
							return this.key;
						}
						
						//line 3 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/model/Relation.hx"
						break;
					}
					
					
					case -1392192107:
					{
						//line 3 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/model/Relation.hx"
						if (field.equals("toENString")) 
						{
							//line 3 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/model/Relation.hx"
							__temp_executeDef1 = false;
							//line 3 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/model/Relation.hx"
							return ((haxe.lang.Function) (new haxe.lang.Closure(this, "toENString")) );
						}
						
						//line 3 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/model/Relation.hx"
						break;
					}
					
					
					case -1448437528:
					{
						//line 3 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/model/Relation.hx"
						if (field.equals("foreignKeys")) 
						{
							//line 3 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/model/Relation.hx"
							__temp_executeDef1 = false;
							//line 3 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/model/Relation.hx"
							return this.foreignKeys;
						}
						
						//line 3 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/model/Relation.hx"
						break;
					}
					
					
					case 542263696:
					{
						//line 3 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/model/Relation.hx"
						if (field.equals("mergeForeignKeys")) 
						{
							//line 3 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/model/Relation.hx"
							__temp_executeDef1 = false;
							//line 3 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/model/Relation.hx"
							return ((haxe.lang.Function) (new haxe.lang.Closure(this, "mergeForeignKeys")) );
						}
						
						//line 3 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/model/Relation.hx"
						break;
					}
					
					
				}
				
			}
			
			//line 3 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/model/Relation.hx"
			if (__temp_executeDef1) 
			{
				//line 3 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/model/Relation.hx"
				return super.__hx_getField(field, throwErrors, isCheck, handleProperties);
			}
			else
			{
				//line 3 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/model/Relation.hx"
				throw null;
			}
			
		}
		
	}
	
	
	@Override public java.lang.Object __hx_invokeField(java.lang.String field, java.lang.Object[] dynargs)
	{
		//line 3 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/model/Relation.hx"
		{
			//line 3 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/model/Relation.hx"
			boolean __temp_executeDef1 = true;
			//line 3 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/model/Relation.hx"
			if (( field != null )) 
			{
				//line 3 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/model/Relation.hx"
				switch (field.hashCode())
				{
					case 1864873490:
					{
						//line 3 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/model/Relation.hx"
						if (field.equals("toUnivString")) 
						{
							//line 3 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/model/Relation.hx"
							__temp_executeDef1 = false;
							//line 3 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/model/Relation.hx"
							return this.toUnivString();
						}
						
						//line 3 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/model/Relation.hx"
						break;
					}
					
					
					case 542263696:
					{
						//line 3 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/model/Relation.hx"
						if (field.equals("mergeForeignKeys")) 
						{
							//line 3 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/model/Relation.hx"
							__temp_executeDef1 = false;
							//line 3 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/model/Relation.hx"
							return this.mergeForeignKeys();
						}
						
						//line 3 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/model/Relation.hx"
						break;
					}
					
					
					case -1392192107:
					{
						//line 3 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/model/Relation.hx"
						if (field.equals("toENString")) 
						{
							//line 3 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/model/Relation.hx"
							__temp_executeDef1 = false;
							//line 3 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/model/Relation.hx"
							return this.toENString();
						}
						
						//line 3 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/model/Relation.hx"
						break;
					}
					
					
				}
				
			}
			
			//line 3 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/model/Relation.hx"
			if (__temp_executeDef1) 
			{
				//line 3 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/model/Relation.hx"
				return super.__hx_invokeField(field, dynargs);
			}
			else
			{
				//line 3 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/model/Relation.hx"
				throw null;
			}
			
		}
		
	}
	
	
	@Override public void __hx_getFields(haxe.root.Array<java.lang.String> baseArr)
	{
		//line 3 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/model/Relation.hx"
		baseArr.push("foreignKeys");
		//line 3 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/model/Relation.hx"
		baseArr.push("key");
		//line 3 "/home/frank/Documents/Developpements/dbconcept-0.5.0/src/model/Relation.hx"
		super.__hx_getFields(baseArr);
	}
	
	
}


