/*
* Exames.java
*
* Generated by com.evutils.codegen.EntityObjectGenerator
*
* Use but DON'T TOUCH
* -> (can't touch this)
*/
package siprp.data.inner;


public class Exames extends siprp.data.BaseObject
{
	private static final java.util.HashMap<String,Integer> FIELD_INDEXES = new java.util.HashMap<String,Integer>();

	static
	{
		FIELD_INDEXES.put( Exames.ID, Exames.ID_INDEX );
		FIELD_INDEXES.put( Exames.ID_FULL, Exames.ID_INDEX );
		FIELD_INDEXES.put( Exames.DATA, Exames.DATA_INDEX );
		FIELD_INDEXES.put( Exames.DATA_FULL, Exames.DATA_INDEX );
		FIELD_INDEXES.put( Exames.TIPO, Exames.TIPO_INDEX );
		FIELD_INDEXES.put( Exames.TIPO_FULL, Exames.TIPO_INDEX );
		FIELD_INDEXES.put( Exames.OCASIONAL, Exames.OCASIONAL_INDEX );
		FIELD_INDEXES.put( Exames.OCASIONAL_FULL, Exames.OCASIONAL_INDEX );
		FIELD_INDEXES.put( Exames.OUTRO_TIPO, Exames.OUTRO_TIPO_INDEX );
		FIELD_INDEXES.put( Exames.OUTRO_TIPO_FULL, Exames.OUTRO_TIPO_INDEX );
		FIELD_INDEXES.put( Exames.RESULTADO, Exames.RESULTADO_INDEX );
		FIELD_INDEXES.put( Exames.RESULTADO_FULL, Exames.RESULTADO_INDEX );
		FIELD_INDEXES.put( Exames.OUTRA_FUNCAO_1, Exames.OUTRA_FUNCAO_1_INDEX );
		FIELD_INDEXES.put( Exames.OUTRA_FUNCAO_1_FULL, Exames.OUTRA_FUNCAO_1_INDEX );
		FIELD_INDEXES.put( Exames.OUTRA_FUNCAO_2, Exames.OUTRA_FUNCAO_2_INDEX );
		FIELD_INDEXES.put( Exames.OUTRA_FUNCAO_2_FULL, Exames.OUTRA_FUNCAO_2_INDEX );
		FIELD_INDEXES.put( Exames.OUTRA_FUNCAO_3, Exames.OUTRA_FUNCAO_3_INDEX );
		FIELD_INDEXES.put( Exames.OUTRA_FUNCAO_3_FULL, Exames.OUTRA_FUNCAO_3_INDEX );
		FIELD_INDEXES.put( Exames.OUTRA_FUNCAO_4, Exames.OUTRA_FUNCAO_4_INDEX );
		FIELD_INDEXES.put( Exames.OUTRA_FUNCAO_4_FULL, Exames.OUTRA_FUNCAO_4_INDEX );
		FIELD_INDEXES.put( Exames.PROXIMO_EXAME, Exames.PROXIMO_EXAME_INDEX );
		FIELD_INDEXES.put( Exames.PROXIMO_EXAME_FULL, Exames.PROXIMO_EXAME_INDEX );
		FIELD_INDEXES.put( Exames.OUTRAS_RECOMENDACOES, Exames.OUTRAS_RECOMENDACOES_INDEX );
		FIELD_INDEXES.put( Exames.OUTRAS_RECOMENDACOES_FULL, Exames.OUTRAS_RECOMENDACOES_INDEX );
		FIELD_INDEXES.put( Exames.INACTIVO, Exames.INACTIVO_INDEX );
		FIELD_INDEXES.put( Exames.INACTIVO_FULL, Exames.INACTIVO_INDEX );
		com.evolute.entity.evo.EvoDataObject.register( Exames.CLASS_IDENTIFIER, Exames.TRABALHADOR_ID, Exames.TO_TRABALHADOR_ID ); 
		FIELD_INDEXES.put( Exames.TRABALHADOR_ID, Exames.TRABALHADOR_ID_INDEX );
		FIELD_INDEXES.put( Exames.TRABALHADOR_ID_FULL, Exames.TRABALHADOR_ID_INDEX );
		FIELD_INDEXES.put( Exames.TO_TRABALHADOR_ID, Exames.TO_TRABALHADOR_ID_INDEX );
		com.evolute.entity.evo.EvoDataObject.register( Exames.CLASS_IDENTIFIER, Exames.MEDICO_ID, Exames.TO_MEDICO_ID ); 
		FIELD_INDEXES.put( Exames.MEDICO_ID, Exames.MEDICO_ID_INDEX );
		FIELD_INDEXES.put( Exames.MEDICO_ID_FULL, Exames.MEDICO_ID_INDEX );
		FIELD_INDEXES.put( Exames.TO_MEDICO_ID, Exames.TO_MEDICO_ID_INDEX );
		FIELD_INDEXES.put( Exames.PDF, Exames.PDF_INDEX );
		FIELD_INDEXES.put( Exames.PDF_FULL, Exames.PDF_INDEX );
		FIELD_INDEXES.put( Exames.FO, Exames.FO_INDEX );
		FIELD_INDEXES.put( Exames.FO_FULL, Exames.FO_INDEX );
	}

	private final java.util.HashMap< String, Boolean > LAZY_LOADED_OBJECTS = new java.util.HashMap< String, Boolean >();


	public static final com.evolute.entity.ForeignKey ForeignKeytrabalhador_idTotrabalhadores = 
		new com.evolute.entity.ForeignKey( Exames.class, Exames.TRABALHADOR_ID, siprp.data.outer.TrabalhadoresData.class, siprp.data.outer.TrabalhadoresData.ID );

	public static final com.evolute.entity.ForeignKey ForeignKeymedico_idTomedicos = 
		new com.evolute.entity.ForeignKey( Exames.class, Exames.MEDICO_ID, siprp.data.outer.MedicosData.class, siprp.data.outer.MedicosData.ID );

	public static final String TABLENAME = "exames";


	public static final String CLASS_IDENTIFIER = "exames1277401737159";

	public static final int _INVALID__INDEX = -1;
	public static final String ID = "id";
	public static final String ID_FULL = "exames.id";
	public static final int ID_INDEX = 0;
	public static final String DATA = "data";
	public static final String DATA_FULL = "exames.data";
	public static final int DATA_INDEX = 1;
	public static final String TIPO = "tipo";
	public static final String TIPO_FULL = "exames.tipo";
	public static final int TIPO_INDEX = 2;
	public static final String OCASIONAL = "ocasional";
	public static final String OCASIONAL_FULL = "exames.ocasional";
	public static final int OCASIONAL_INDEX = 3;
	public static final String OUTRO_TIPO = "outro_tipo";
	public static final String OUTRO_TIPO_FULL = "exames.outro_tipo";
	public static final int OUTRO_TIPO_INDEX = 4;
	public static final String RESULTADO = "resultado";
	public static final String RESULTADO_FULL = "exames.resultado";
	public static final int RESULTADO_INDEX = 5;
	public static final String OUTRA_FUNCAO_1 = "outra_funcao_1";
	public static final String OUTRA_FUNCAO_1_FULL = "exames.outra_funcao_1";
	public static final int OUTRA_FUNCAO_1_INDEX = 6;
	public static final String OUTRA_FUNCAO_2 = "outra_funcao_2";
	public static final String OUTRA_FUNCAO_2_FULL = "exames.outra_funcao_2";
	public static final int OUTRA_FUNCAO_2_INDEX = 7;
	public static final String OUTRA_FUNCAO_3 = "outra_funcao_3";
	public static final String OUTRA_FUNCAO_3_FULL = "exames.outra_funcao_3";
	public static final int OUTRA_FUNCAO_3_INDEX = 8;
	public static final String OUTRA_FUNCAO_4 = "outra_funcao_4";
	public static final String OUTRA_FUNCAO_4_FULL = "exames.outra_funcao_4";
	public static final int OUTRA_FUNCAO_4_INDEX = 9;
	public static final String PROXIMO_EXAME = "proximo_exame";
	public static final String PROXIMO_EXAME_FULL = "exames.proximo_exame";
	public static final int PROXIMO_EXAME_INDEX = 10;
	public static final String OUTRAS_RECOMENDACOES = "outras_recomendacoes";
	public static final String OUTRAS_RECOMENDACOES_FULL = "exames.outras_recomendacoes";
	public static final int OUTRAS_RECOMENDACOES_INDEX = 11;
	public static final String INACTIVO = "inactivo";
	public static final String INACTIVO_FULL = "exames.inactivo";
	public static final int INACTIVO_INDEX = 12;
	public static final String TRABALHADOR_ID = "trabalhador_id";
	public static final String TRABALHADOR_ID_FULL = "exames.trabalhador_id";
	public static final int TRABALHADOR_ID_INDEX = 13;
	public static final String TO_TRABALHADOR_ID = "to_trabalhador_id";
	public static final int TO_TRABALHADOR_ID_INDEX = 14;
	public static final String MEDICO_ID = "medico_id";
	public static final String MEDICO_ID_FULL = "exames.medico_id";
	public static final int MEDICO_ID_INDEX = 15;
	public static final String TO_MEDICO_ID = "to_medico_id";
	public static final int TO_MEDICO_ID_INDEX = 16;
	public static final String PDF = "pdf";
	public static final String PDF_FULL = "exames.pdf";
	public static final int PDF_INDEX = 17;
	public static final String FO = "fo";
	public static final String FO_FULL = "exames.fo";
	public static final int FO_INDEX = 18;

	public static final String FIELD_NAMES[] = new String[]{
		DATA, TIPO, OCASIONAL, OUTRO_TIPO, RESULTADO, OUTRA_FUNCAO_1, OUTRA_FUNCAO_2, 
		OUTRA_FUNCAO_3, OUTRA_FUNCAO_4, PROXIMO_EXAME, OUTRAS_RECOMENDACOES, INACTIVO, 
		TRABALHADOR_ID, TO_TRABALHADOR_ID, MEDICO_ID, TO_MEDICO_ID, PDF, FO, };

	public static final String FIELD_NAMES_FULL[] = new String[]{
		TABLENAME + "." + DATA, TABLENAME + "." + TIPO, TABLENAME + "." + OCASIONAL, TABLENAME + "." + OUTRO_TIPO, TABLENAME + "." + RESULTADO, TABLENAME + "." + OUTRA_FUNCAO_1, TABLENAME + "." + OUTRA_FUNCAO_2, 
		TABLENAME + "." + OUTRA_FUNCAO_3, TABLENAME + "." + OUTRA_FUNCAO_4, TABLENAME + "." + PROXIMO_EXAME, TABLENAME + "." + OUTRAS_RECOMENDACOES, TABLENAME + "." + INACTIVO, 
		TABLENAME + "." + TRABALHADOR_ID, TABLENAME + "." + TO_TRABALHADOR_ID, TABLENAME + "." + MEDICO_ID, TABLENAME + "." + TO_MEDICO_ID, TABLENAME + "." + PDF, TABLENAME + "." + FO, };

	protected static final String DB_FIELD_NAMES[] = new String[]{
		ID, DATA, TIPO, OCASIONAL, OUTRO_TIPO, RESULTADO, OUTRA_FUNCAO_1, OUTRA_FUNCAO_2, 
		OUTRA_FUNCAO_3, OUTRA_FUNCAO_4, PROXIMO_EXAME, OUTRAS_RECOMENDACOES, INACTIVO, 
		TRABALHADOR_ID, MEDICO_ID, PDF, FO, };


	protected static final String PK_FIELD_NAMES[] = new String[]{
		ID, };


	public static final String DEFAULT_LOAD_SET[] = new String[] {
		ID, DATA, TIPO, OCASIONAL, OUTRO_TIPO, RESULTADO, OUTRA_FUNCAO_1, OUTRA_FUNCAO_2, 
		OUTRA_FUNCAO_3, OUTRA_FUNCAO_4, PROXIMO_EXAME, OUTRAS_RECOMENDACOES, INACTIVO, 
		TRABALHADOR_ID, MEDICO_ID, };

	private Integer id;
	private java.util.Date data;
	private Integer tipo;
	private Integer ocasional;
	private String outro_tipo;
	private Integer resultado;
	private String outra_funcao_1;
	private String outra_funcao_2;
	private String outra_funcao_3;
	private String outra_funcao_4;
	private java.util.Date proximo_exame;
	private String outras_recomendacoes;
	private String inactivo;
	private Integer trabalhador_id;
	private siprp.data.outer.TrabalhadoresData to_trabalhador_id;
	private Integer medico_id;
	private siprp.data.outer.MedicosData to_medico_id;
	private byte[] pdf;
	private byte[] fo;

	protected com.evolute.entity.utils.IntegerPrimaryKey primaryKey;

	public Exames()
	{
		super();
		dirtyProperties = new boolean[]{ false, false, false, 
			false, false, false, false, false, false, false, false, 
			false, false, false, false, false, false, false, false };
	}

	public Integer getId()
	{
		try
		{
			setLastAccess( System.currentTimeMillis() );
			prepare( ID );
		}
		catch( java.lang.Exception ex )
		{
			throw new RuntimeException( ex );
		}
		return this.id;
	}

	public void setId( Integer id )
	{
		try
		{
			setLockedForRefresh( true );
			preProcess( ID, id );
		}
		catch( com.evolute.entity.evo.EvoDataException edex )
		{
			throw new RuntimeException( edex );
		}
		this.id = id;
		LAZY_LOADED_OBJECTS.put( ID, Boolean.TRUE );
	}

	public java.util.List<siprp.data.outer.TrabalhadoresFichasAptidaoData>fromTrabalhadoresFichasAptidao_exame_id()
	{
		java.util.List<siprp.data.outer.TrabalhadoresFichasAptidaoData> result = null;
		try
		{
			result = fromReference( siprp.data.outer.TrabalhadoresFichasAptidaoData.class , getPrimaryKey().getMap().get("id"), "exame_id" );
		}
		catch( com.evolute.entity.evo.EvoDataException edex )
		{
			throw new RuntimeException( edex );
		}
		return result;
	}

	public java.util.Date getData()
	{
		try
		{
			setLastAccess( System.currentTimeMillis() );
			prepare( DATA );
		}
		catch( java.lang.Exception ex )
		{
			throw new RuntimeException( ex );
		}
		return this.data;
	}

	public void setData( java.util.Date data )
	{
		try
		{
			setLockedForRefresh( true );
			preProcess( DATA, data );
		}
		catch( com.evolute.entity.evo.EvoDataException edex )
		{
			throw new RuntimeException( edex );
		}
		this.data = data;
		LAZY_LOADED_OBJECTS.put( DATA, Boolean.TRUE );
	}

	public Integer getTipo()
	{
		try
		{
			setLastAccess( System.currentTimeMillis() );
			prepare( TIPO );
		}
		catch( java.lang.Exception ex )
		{
			throw new RuntimeException( ex );
		}
		return this.tipo;
	}

	public void setTipo( Integer tipo )
	{
		try
		{
			setLockedForRefresh( true );
			preProcess( TIPO, tipo );
		}
		catch( com.evolute.entity.evo.EvoDataException edex )
		{
			throw new RuntimeException( edex );
		}
		this.tipo = tipo;
		LAZY_LOADED_OBJECTS.put( TIPO, Boolean.TRUE );
	}

	public Integer getOcasional()
	{
		try
		{
			setLastAccess( System.currentTimeMillis() );
			prepare( OCASIONAL );
		}
		catch( java.lang.Exception ex )
		{
			throw new RuntimeException( ex );
		}
		return this.ocasional;
	}

	public void setOcasional( Integer ocasional )
	{
		try
		{
			setLockedForRefresh( true );
			preProcess( OCASIONAL, ocasional );
		}
		catch( com.evolute.entity.evo.EvoDataException edex )
		{
			throw new RuntimeException( edex );
		}
		this.ocasional = ocasional;
		LAZY_LOADED_OBJECTS.put( OCASIONAL, Boolean.TRUE );
	}

	public String getOutro_tipo()
	{
		try
		{
			setLastAccess( System.currentTimeMillis() );
			prepare( OUTRO_TIPO );
		}
		catch( java.lang.Exception ex )
		{
			throw new RuntimeException( ex );
		}
		return this.outro_tipo;
	}

	public void setOutro_tipo( String outro_tipo )
	{
		try
		{
			setLockedForRefresh( true );
			preProcess( OUTRO_TIPO, outro_tipo );
		}
		catch( com.evolute.entity.evo.EvoDataException edex )
		{
			throw new RuntimeException( edex );
		}
		this.outro_tipo = outro_tipo;
		LAZY_LOADED_OBJECTS.put( OUTRO_TIPO, Boolean.TRUE );
	}

	public Integer getResultado()
	{
		try
		{
			setLastAccess( System.currentTimeMillis() );
			prepare( RESULTADO );
		}
		catch( java.lang.Exception ex )
		{
			throw new RuntimeException( ex );
		}
		return this.resultado;
	}

	public void setResultado( Integer resultado )
	{
		try
		{
			setLockedForRefresh( true );
			preProcess( RESULTADO, resultado );
		}
		catch( com.evolute.entity.evo.EvoDataException edex )
		{
			throw new RuntimeException( edex );
		}
		this.resultado = resultado;
		LAZY_LOADED_OBJECTS.put( RESULTADO, Boolean.TRUE );
	}

	public String getOutra_funcao_1()
	{
		try
		{
			setLastAccess( System.currentTimeMillis() );
			prepare( OUTRA_FUNCAO_1 );
		}
		catch( java.lang.Exception ex )
		{
			throw new RuntimeException( ex );
		}
		return this.outra_funcao_1;
	}

	public void setOutra_funcao_1( String outra_funcao_1 )
	{
		try
		{
			setLockedForRefresh( true );
			preProcess( OUTRA_FUNCAO_1, outra_funcao_1 );
		}
		catch( com.evolute.entity.evo.EvoDataException edex )
		{
			throw new RuntimeException( edex );
		}
		this.outra_funcao_1 = outra_funcao_1;
		LAZY_LOADED_OBJECTS.put( OUTRA_FUNCAO_1, Boolean.TRUE );
	}

	public String getOutra_funcao_2()
	{
		try
		{
			setLastAccess( System.currentTimeMillis() );
			prepare( OUTRA_FUNCAO_2 );
		}
		catch( java.lang.Exception ex )
		{
			throw new RuntimeException( ex );
		}
		return this.outra_funcao_2;
	}

	public void setOutra_funcao_2( String outra_funcao_2 )
	{
		try
		{
			setLockedForRefresh( true );
			preProcess( OUTRA_FUNCAO_2, outra_funcao_2 );
		}
		catch( com.evolute.entity.evo.EvoDataException edex )
		{
			throw new RuntimeException( edex );
		}
		this.outra_funcao_2 = outra_funcao_2;
		LAZY_LOADED_OBJECTS.put( OUTRA_FUNCAO_2, Boolean.TRUE );
	}

	public String getOutra_funcao_3()
	{
		try
		{
			setLastAccess( System.currentTimeMillis() );
			prepare( OUTRA_FUNCAO_3 );
		}
		catch( java.lang.Exception ex )
		{
			throw new RuntimeException( ex );
		}
		return this.outra_funcao_3;
	}

	public void setOutra_funcao_3( String outra_funcao_3 )
	{
		try
		{
			setLockedForRefresh( true );
			preProcess( OUTRA_FUNCAO_3, outra_funcao_3 );
		}
		catch( com.evolute.entity.evo.EvoDataException edex )
		{
			throw new RuntimeException( edex );
		}
		this.outra_funcao_3 = outra_funcao_3;
		LAZY_LOADED_OBJECTS.put( OUTRA_FUNCAO_3, Boolean.TRUE );
	}

	public String getOutra_funcao_4()
	{
		try
		{
			setLastAccess( System.currentTimeMillis() );
			prepare( OUTRA_FUNCAO_4 );
		}
		catch( java.lang.Exception ex )
		{
			throw new RuntimeException( ex );
		}
		return this.outra_funcao_4;
	}

	public void setOutra_funcao_4( String outra_funcao_4 )
	{
		try
		{
			setLockedForRefresh( true );
			preProcess( OUTRA_FUNCAO_4, outra_funcao_4 );
		}
		catch( com.evolute.entity.evo.EvoDataException edex )
		{
			throw new RuntimeException( edex );
		}
		this.outra_funcao_4 = outra_funcao_4;
		LAZY_LOADED_OBJECTS.put( OUTRA_FUNCAO_4, Boolean.TRUE );
	}

	public java.util.Date getProximo_exame()
	{
		try
		{
			setLastAccess( System.currentTimeMillis() );
			prepare( PROXIMO_EXAME );
		}
		catch( java.lang.Exception ex )
		{
			throw new RuntimeException( ex );
		}
		return this.proximo_exame;
	}

	public void setProximo_exame( java.util.Date proximo_exame )
	{
		try
		{
			setLockedForRefresh( true );
			preProcess( PROXIMO_EXAME, proximo_exame );
		}
		catch( com.evolute.entity.evo.EvoDataException edex )
		{
			throw new RuntimeException( edex );
		}
		this.proximo_exame = proximo_exame;
		LAZY_LOADED_OBJECTS.put( PROXIMO_EXAME, Boolean.TRUE );
	}

	public String getOutras_recomendacoes()
	{
		try
		{
			setLastAccess( System.currentTimeMillis() );
			prepare( OUTRAS_RECOMENDACOES );
		}
		catch( java.lang.Exception ex )
		{
			throw new RuntimeException( ex );
		}
		return this.outras_recomendacoes;
	}

	public void setOutras_recomendacoes( String outras_recomendacoes )
	{
		try
		{
			setLockedForRefresh( true );
			preProcess( OUTRAS_RECOMENDACOES, outras_recomendacoes );
		}
		catch( com.evolute.entity.evo.EvoDataException edex )
		{
			throw new RuntimeException( edex );
		}
		this.outras_recomendacoes = outras_recomendacoes;
		LAZY_LOADED_OBJECTS.put( OUTRAS_RECOMENDACOES, Boolean.TRUE );
	}

	public String getInactivo()
	{
		try
		{
			setLastAccess( System.currentTimeMillis() );
			prepare( INACTIVO );
		}
		catch( java.lang.Exception ex )
		{
			throw new RuntimeException( ex );
		}
		return this.inactivo;
	}

	public void setInactivo( String inactivo )
	{
		try
		{
			setLockedForRefresh( true );
			preProcess( INACTIVO, inactivo );
		}
		catch( com.evolute.entity.evo.EvoDataException edex )
		{
			throw new RuntimeException( edex );
		}
		this.inactivo = inactivo;
		LAZY_LOADED_OBJECTS.put( INACTIVO, Boolean.TRUE );
	}

	public Integer getTrabalhador_id()
	{
		try
		{
			setLastAccess( System.currentTimeMillis() );
			prepare( TRABALHADOR_ID );
		}
		catch( java.lang.Exception ex )
		{
			throw new RuntimeException( ex );
		}
		return this.trabalhador_id;
	}

	public void setTrabalhador_id( Integer trabalhador_id )
	{
		try
		{
			setLockedForRefresh( true );
			preProcess( TRABALHADOR_ID, trabalhador_id );
		}
		catch( com.evolute.entity.evo.EvoDataException edex )
		{
			throw new RuntimeException( edex );
		}
		this.trabalhador_id = trabalhador_id;
		LAZY_LOADED_OBJECTS.put( TRABALHADOR_ID, Boolean.TRUE );
	}

	public siprp.data.outer.TrabalhadoresData toTrabalhador_id()
	{
		try
		{
			prepare( TO_TRABALHADOR_ID );
		}
		catch( com.evolute.entity.evo.EvoDataException edex )
		{
			throw new RuntimeException( edex );
		}
		return this.to_trabalhador_id;
	}

	public void setToTrabalhador_id( siprp.data.outer.TrabalhadoresData to_trabalhador_id )
	{
		try
		{
			preProcess( TO_TRABALHADOR_ID, to_trabalhador_id );
		}
		catch( com.evolute.entity.evo.EvoDataException edex )
		{
			throw new RuntimeException( edex );
		}
		this.to_trabalhador_id = to_trabalhador_id;
	}

	public Integer getMedico_id()
	{
		try
		{
			setLastAccess( System.currentTimeMillis() );
			prepare( MEDICO_ID );
		}
		catch( java.lang.Exception ex )
		{
			throw new RuntimeException( ex );
		}
		return this.medico_id;
	}

	public void setMedico_id( Integer medico_id )
	{
		try
		{
			setLockedForRefresh( true );
			preProcess( MEDICO_ID, medico_id );
		}
		catch( com.evolute.entity.evo.EvoDataException edex )
		{
			throw new RuntimeException( edex );
		}
		this.medico_id = medico_id;
		LAZY_LOADED_OBJECTS.put( MEDICO_ID, Boolean.TRUE );
	}

	public siprp.data.outer.MedicosData toMedico_id()
	{
		try
		{
			prepare( TO_MEDICO_ID );
		}
		catch( com.evolute.entity.evo.EvoDataException edex )
		{
			throw new RuntimeException( edex );
		}
		return this.to_medico_id;
	}

	public void setToMedico_id( siprp.data.outer.MedicosData to_medico_id )
	{
		try
		{
			preProcess( TO_MEDICO_ID, to_medico_id );
		}
		catch( com.evolute.entity.evo.EvoDataException edex )
		{
			throw new RuntimeException( edex );
		}
		this.to_medico_id = to_medico_id;
	}

	public byte[] getPdf()
	{
		try
		{
			setLastAccess( System.currentTimeMillis() );
			prepare( PDF );
			Boolean isLazyLoaded = isPropertyLoaded( PDF );
			if ( ! isLazyLoaded )
			{
				this.pdf = ( byte[] ) getProvider().loadFieldFromDatabase( PDF, this );
				LAZY_LOADED_OBJECTS.put( PDF, Boolean.TRUE );
			}
		}
		catch( java.lang.Exception ex )
		{
			throw new RuntimeException( ex );
		}
		return this.pdf;
	}

	public void setPdf( byte[] pdf )
	{
		try
		{
			setLockedForRefresh( true );
			preProcess( PDF, pdf );
		}
		catch( com.evolute.entity.evo.EvoDataException edex )
		{
			throw new RuntimeException( edex );
		}
		this.pdf = pdf;
		LAZY_LOADED_OBJECTS.put( PDF, Boolean.TRUE );
	}

	public byte[] getFo()
	{
		try
		{
			setLastAccess( System.currentTimeMillis() );
			prepare( FO );
			Boolean isLazyLoaded = isPropertyLoaded( FO );
			if ( ! isLazyLoaded )
			{
				this.fo = ( byte[] ) getProvider().loadFieldFromDatabase( FO, this );
				LAZY_LOADED_OBJECTS.put( FO, Boolean.TRUE );
			}
		}
		catch( java.lang.Exception ex )
		{
			throw new RuntimeException( ex );
		}
		return this.fo;
	}

	public void setFo( byte[] fo )
	{
		try
		{
			setLockedForRefresh( true );
			preProcess( FO, fo );
		}
		catch( com.evolute.entity.evo.EvoDataException edex )
		{
			throw new RuntimeException( edex );
		}
		this.fo = fo;
		LAZY_LOADED_OBJECTS.put( FO, Boolean.TRUE );
	}

	public Object get( String fieldName )
	{
		Object value = null;
		Integer index = getFieldIndex( fieldName );
		switch( index )
		{
			case Exames.ID_INDEX:
				value = getId();
				break;
			case Exames.DATA_INDEX:
				value = getData();
				break;
			case Exames.TIPO_INDEX:
				value = getTipo();
				break;
			case Exames.OCASIONAL_INDEX:
				value = getOcasional();
				break;
			case Exames.OUTRO_TIPO_INDEX:
				value = getOutro_tipo();
				break;
			case Exames.RESULTADO_INDEX:
				value = getResultado();
				break;
			case Exames.OUTRA_FUNCAO_1_INDEX:
				value = getOutra_funcao_1();
				break;
			case Exames.OUTRA_FUNCAO_2_INDEX:
				value = getOutra_funcao_2();
				break;
			case Exames.OUTRA_FUNCAO_3_INDEX:
				value = getOutra_funcao_3();
				break;
			case Exames.OUTRA_FUNCAO_4_INDEX:
				value = getOutra_funcao_4();
				break;
			case Exames.PROXIMO_EXAME_INDEX:
				value = getProximo_exame();
				break;
			case Exames.OUTRAS_RECOMENDACOES_INDEX:
				value = getOutras_recomendacoes();
				break;
			case Exames.INACTIVO_INDEX:
				value = getInactivo();
				break;
			case Exames.TRABALHADOR_ID_INDEX:
				value = getTrabalhador_id();
				break;
			case Exames.TO_TRABALHADOR_ID_INDEX:
				value = toTrabalhador_id();
				break;
			case Exames.MEDICO_ID_INDEX:
				value = getMedico_id();
				break;
			case Exames.TO_MEDICO_ID_INDEX:
				value = toMedico_id();
				break;
			case Exames.PDF_INDEX:
				value = getPdf();
				break;
			case Exames.FO_INDEX:
				value = getFo();
				break;
		}
		return value;
	}

	public Object rawGet( String fieldName )
	{
		Object value = null;
		Integer index = getFieldIndex( fieldName );
		switch( index )
		{
			case Exames.ID_INDEX:
				value = this.id;
				break;
			case Exames.DATA_INDEX:
				value = this.data;
				break;
			case Exames.TIPO_INDEX:
				value = this.tipo;
				break;
			case Exames.OCASIONAL_INDEX:
				value = this.ocasional;
				break;
			case Exames.OUTRO_TIPO_INDEX:
				value = this.outro_tipo;
				break;
			case Exames.RESULTADO_INDEX:
				value = this.resultado;
				break;
			case Exames.OUTRA_FUNCAO_1_INDEX:
				value = this.outra_funcao_1;
				break;
			case Exames.OUTRA_FUNCAO_2_INDEX:
				value = this.outra_funcao_2;
				break;
			case Exames.OUTRA_FUNCAO_3_INDEX:
				value = this.outra_funcao_3;
				break;
			case Exames.OUTRA_FUNCAO_4_INDEX:
				value = this.outra_funcao_4;
				break;
			case Exames.PROXIMO_EXAME_INDEX:
				value = this.proximo_exame;
				break;
			case Exames.OUTRAS_RECOMENDACOES_INDEX:
				value = this.outras_recomendacoes;
				break;
			case Exames.INACTIVO_INDEX:
				value = this.inactivo;
				break;
			case Exames.TRABALHADOR_ID_INDEX:
				value = this.trabalhador_id;
				break;
			case Exames.TO_TRABALHADOR_ID_INDEX:
				value = this.to_trabalhador_id;
				break;
			case Exames.MEDICO_ID_INDEX:
				value = this.medico_id;
				break;
			case Exames.TO_MEDICO_ID_INDEX:
				value = this.to_medico_id;
				break;
			case Exames.PDF_INDEX:
				value = this.pdf;
				break;
			case Exames.FO_INDEX:
				value = this.fo;
				break;
		}
		return value;
	}

	public void set( String fieldName, Object value )
	{
		Integer index = getFieldIndex( fieldName );
		switch( index )
		{
			case Exames.ID_INDEX:
				setId( ( Integer ) value );
				break;
			case Exames.DATA_INDEX:
				setData( ( java.util.Date ) value );
				break;
			case Exames.TIPO_INDEX:
				setTipo( ( Integer ) value );
				break;
			case Exames.OCASIONAL_INDEX:
				setOcasional( ( Integer ) value );
				break;
			case Exames.OUTRO_TIPO_INDEX:
				setOutro_tipo( ( String ) value );
				break;
			case Exames.RESULTADO_INDEX:
				setResultado( ( Integer ) value );
				break;
			case Exames.OUTRA_FUNCAO_1_INDEX:
				setOutra_funcao_1( ( String ) value );
				break;
			case Exames.OUTRA_FUNCAO_2_INDEX:
				setOutra_funcao_2( ( String ) value );
				break;
			case Exames.OUTRA_FUNCAO_3_INDEX:
				setOutra_funcao_3( ( String ) value );
				break;
			case Exames.OUTRA_FUNCAO_4_INDEX:
				setOutra_funcao_4( ( String ) value );
				break;
			case Exames.PROXIMO_EXAME_INDEX:
				setProximo_exame( ( java.util.Date ) value );
				break;
			case Exames.OUTRAS_RECOMENDACOES_INDEX:
				setOutras_recomendacoes( ( String ) value );
				break;
			case Exames.INACTIVO_INDEX:
				setInactivo( ( String ) value );
				break;
			case Exames.TRABALHADOR_ID_INDEX:
				setTrabalhador_id( ( Integer ) value );
				break;
			case Exames.TO_TRABALHADOR_ID_INDEX:
				setToTrabalhador_id( ( siprp.data.outer.TrabalhadoresData ) value );
				break;
			case Exames.MEDICO_ID_INDEX:
				setMedico_id( ( Integer ) value );
				break;
			case Exames.TO_MEDICO_ID_INDEX:
				setToMedico_id( ( siprp.data.outer.MedicosData ) value );
				break;
			case Exames.PDF_INDEX:
				setPdf( ( byte[] ) value );
				break;
			case Exames.FO_INDEX:
				setFo( ( byte[] ) value );
				break;
		}
	}

	public void rawSet( String fieldName, Object value )
	{
		Integer index = getFieldIndex( fieldName );
		switch( index )
		{
			case Exames.ID_INDEX:
				this.id = ( Integer ) value;
				break;
			case Exames.DATA_INDEX:
				this.data = ( java.util.Date ) value;
				break;
			case Exames.TIPO_INDEX:
				this.tipo = ( Integer ) value;
				break;
			case Exames.OCASIONAL_INDEX:
				this.ocasional = ( Integer ) value;
				break;
			case Exames.OUTRO_TIPO_INDEX:
				this.outro_tipo = ( String ) value;
				break;
			case Exames.RESULTADO_INDEX:
				this.resultado = ( Integer ) value;
				break;
			case Exames.OUTRA_FUNCAO_1_INDEX:
				this.outra_funcao_1 = ( String ) value;
				break;
			case Exames.OUTRA_FUNCAO_2_INDEX:
				this.outra_funcao_2 = ( String ) value;
				break;
			case Exames.OUTRA_FUNCAO_3_INDEX:
				this.outra_funcao_3 = ( String ) value;
				break;
			case Exames.OUTRA_FUNCAO_4_INDEX:
				this.outra_funcao_4 = ( String ) value;
				break;
			case Exames.PROXIMO_EXAME_INDEX:
				this.proximo_exame = ( java.util.Date ) value;
				break;
			case Exames.OUTRAS_RECOMENDACOES_INDEX:
				this.outras_recomendacoes = ( String ) value;
				break;
			case Exames.INACTIVO_INDEX:
				this.inactivo = ( String ) value;
				break;
			case Exames.TRABALHADOR_ID_INDEX:
				this.trabalhador_id = ( Integer ) value;
				break;
			case Exames.TO_TRABALHADOR_ID_INDEX:
				this.to_trabalhador_id = ( siprp.data.outer.TrabalhadoresData ) value;
				break;
			case Exames.MEDICO_ID_INDEX:
				this.medico_id = ( Integer ) value;
				break;
			case Exames.TO_MEDICO_ID_INDEX:
				this.to_medico_id = ( siprp.data.outer.MedicosData ) value;
				break;
			case Exames.PDF_INDEX:
				this.pdf = ( byte[] ) value;
				break;
			case Exames.FO_INDEX:
				this.fo = ( byte[] ) value;
				break;
		}
	}

	public String []getFieldNames()
	{
		return FIELD_NAMES;
	}

	public String []getFieldNamesFull()
	{
		return FIELD_NAMES_FULL;
	}

	public String []getDBFieldNames()
	{
		return DB_FIELD_NAMES;
	}

	public String []getPrimaryKeyNames()
	{
		return PK_FIELD_NAMES;
	}

	public String []getDefaultLoadSet()
	{
		return DEFAULT_LOAD_SET;
	}

	public String getPrimaryKeyName()
	{
		return PK_FIELD_NAMES[ 0 ];
	}

	public Class<?> getFieldClass( String fieldName )
	{
		Integer index = getFieldIndex( fieldName );
		Class<?> theClass = null;
		switch( index )
		{
			case Exames.ID_INDEX:
				theClass = Integer.class;
				break;
			case Exames.DATA_INDEX:
				theClass = java.util.Date.class;
				break;
			case Exames.TIPO_INDEX:
				theClass = Integer.class;
				break;
			case Exames.OCASIONAL_INDEX:
				theClass = Integer.class;
				break;
			case Exames.OUTRO_TIPO_INDEX:
				theClass = String.class;
				break;
			case Exames.RESULTADO_INDEX:
				theClass = Integer.class;
				break;
			case Exames.OUTRA_FUNCAO_1_INDEX:
				theClass = String.class;
				break;
			case Exames.OUTRA_FUNCAO_2_INDEX:
				theClass = String.class;
				break;
			case Exames.OUTRA_FUNCAO_3_INDEX:
				theClass = String.class;
				break;
			case Exames.OUTRA_FUNCAO_4_INDEX:
				theClass = String.class;
				break;
			case Exames.PROXIMO_EXAME_INDEX:
				theClass = java.util.Date.class;
				break;
			case Exames.OUTRAS_RECOMENDACOES_INDEX:
				theClass = String.class;
				break;
			case Exames.INACTIVO_INDEX:
				theClass = String.class;
				break;
			case Exames.TRABALHADOR_ID_INDEX:
				theClass = Integer.class;
				break;
			case Exames.TO_TRABALHADOR_ID_INDEX:
				theClass = siprp.data.outer.TrabalhadoresData.class;
				break;
			case Exames.MEDICO_ID_INDEX:
				theClass = Integer.class;
				break;
			case Exames.TO_MEDICO_ID_INDEX:
				theClass = siprp.data.outer.MedicosData.class;
				break;
			case Exames.PDF_INDEX:
				theClass = byte[].class;
				break;
			case Exames.FO_INDEX:
				theClass = byte[].class;
				break;
		}
		return theClass;
	}

	public Integer getFieldIndex( String fieldName )
	{
		Integer index = FIELD_INDEXES.get( fieldName );
		return index != null ? index : Exames._INVALID__INDEX;
	}

	public String getTableName()
	{
		return TABLENAME;
	}

	public String getClassIdentifier()
	{
		return CLASS_IDENTIFIER;
	}

	@Override
	protected void setPrimaryKeyFromVirtual2DArray( com.evolute.utils.arrays.Virtual2DArray array, int row, int col )
	{
		if( primaryKey == null )
		{
			primaryKey = new com.evolute.entity.utils.IntegerPrimaryKey( TABLENAME, Exames.PK_FIELD_NAMES );
			primaryKey.set( 0, getId() );
		}
	}

	@Override
	public com.evolute.entity.utils.IntegerPrimaryKey getPrimaryKey()
	{
		return primaryKey;
	}

	public void initLazyLoadFields()
	{
		LAZY_LOADED_OBJECTS.put( PDF, Boolean.FALSE );
		LAZY_LOADED_OBJECTS.put( FO, Boolean.FALSE );
	}

	public boolean isPropertyLoaded( String fieldName )
	{
		if ( LAZY_LOADED_OBJECTS.get( fieldName ) == null )
		{
			return true;
		}
		else
		{
			return LAZY_LOADED_OBJECTS.get( fieldName );
		}
	}
}
