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


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

	static
	{
		FIELD_INDEXES.put( Estabelecimentos.ID, Estabelecimentos.ID_INDEX );
		FIELD_INDEXES.put( Estabelecimentos.ID_FULL, Estabelecimentos.ID_INDEX );
		FIELD_INDEXES.put( Estabelecimentos.NOME, Estabelecimentos.NOME_INDEX );
		FIELD_INDEXES.put( Estabelecimentos.NOME_FULL, Estabelecimentos.NOME_INDEX );
		FIELD_INDEXES.put( Estabelecimentos.LOCALIDADE, Estabelecimentos.LOCALIDADE_INDEX );
		FIELD_INDEXES.put( Estabelecimentos.LOCALIDADE_FULL, Estabelecimentos.LOCALIDADE_INDEX );
		FIELD_INDEXES.put( Estabelecimentos.INACTIVO, Estabelecimentos.INACTIVO_INDEX );
		FIELD_INDEXES.put( Estabelecimentos.INACTIVO_FULL, Estabelecimentos.INACTIVO_INDEX );
		com.evolute.entity.evo.EvoDataObject.register( Estabelecimentos.CLASS_IDENTIFIER, Estabelecimentos.EMPRESA_ID, Estabelecimentos.TO_EMPRESA_ID ); 
		FIELD_INDEXES.put( Estabelecimentos.EMPRESA_ID, Estabelecimentos.EMPRESA_ID_INDEX );
		FIELD_INDEXES.put( Estabelecimentos.EMPRESA_ID_FULL, Estabelecimentos.EMPRESA_ID_INDEX );
		FIELD_INDEXES.put( Estabelecimentos.TO_EMPRESA_ID, Estabelecimentos.TO_EMPRESA_ID_INDEX );
		FIELD_INDEXES.put( Estabelecimentos.MORADA, Estabelecimentos.MORADA_INDEX );
		FIELD_INDEXES.put( Estabelecimentos.MORADA_FULL, Estabelecimentos.MORADA_INDEX );
		FIELD_INDEXES.put( Estabelecimentos.CODIGO_POSTAL, Estabelecimentos.CODIGO_POSTAL_INDEX );
		FIELD_INDEXES.put( Estabelecimentos.CODIGO_POSTAL_FULL, Estabelecimentos.CODIGO_POSTAL_INDEX );
		FIELD_INDEXES.put( Estabelecimentos.CONTACTO_BACKUP, Estabelecimentos.CONTACTO_BACKUP_INDEX );
		FIELD_INDEXES.put( Estabelecimentos.CONTACTO_BACKUP_FULL, Estabelecimentos.CONTACTO_BACKUP_INDEX );
		FIELD_INDEXES.put( Estabelecimentos.HISTORICO, Estabelecimentos.HISTORICO_INDEX );
		FIELD_INDEXES.put( Estabelecimentos.HISTORICO_FULL, Estabelecimentos.HISTORICO_INDEX );
		FIELD_INDEXES.put( Estabelecimentos.ACTUALIZACAO, Estabelecimentos.ACTUALIZACAO_INDEX );
		FIELD_INDEXES.put( Estabelecimentos.ACTUALIZACAO_FULL, Estabelecimentos.ACTUALIZACAO_INDEX );
		FIELD_INDEXES.put( Estabelecimentos.NOME_PLAIN, Estabelecimentos.NOME_PLAIN_INDEX );
		FIELD_INDEXES.put( Estabelecimentos.NOME_PLAIN_FULL, Estabelecimentos.NOME_PLAIN_INDEX );
		com.evolute.entity.evo.EvoDataObject.register( Estabelecimentos.CLASS_IDENTIFIER, Estabelecimentos.MEDICO_ID, Estabelecimentos.TO_MEDICO_ID ); 
		FIELD_INDEXES.put( Estabelecimentos.MEDICO_ID, Estabelecimentos.MEDICO_ID_INDEX );
		FIELD_INDEXES.put( Estabelecimentos.MEDICO_ID_FULL, Estabelecimentos.MEDICO_ID_INDEX );
		FIELD_INDEXES.put( Estabelecimentos.TO_MEDICO_ID, Estabelecimentos.TO_MEDICO_ID_INDEX );
		com.evolute.entity.evo.EvoDataObject.register( Estabelecimentos.CLASS_IDENTIFIER, Estabelecimentos.PRESTADOR_CONSULTA_ID, Estabelecimentos.TO_PRESTADOR_CONSULTA_ID ); 
		FIELD_INDEXES.put( Estabelecimentos.PRESTADOR_CONSULTA_ID, Estabelecimentos.PRESTADOR_CONSULTA_ID_INDEX );
		FIELD_INDEXES.put( Estabelecimentos.PRESTADOR_CONSULTA_ID_FULL, Estabelecimentos.PRESTADOR_CONSULTA_ID_INDEX );
		FIELD_INDEXES.put( Estabelecimentos.TO_PRESTADOR_CONSULTA_ID, Estabelecimentos.TO_PRESTADOR_CONSULTA_ID_INDEX );
		com.evolute.entity.evo.EvoDataObject.register( Estabelecimentos.CLASS_IDENTIFIER, Estabelecimentos.PRESTADOR_ECDS_ID, Estabelecimentos.TO_PRESTADOR_ECDS_ID ); 
		FIELD_INDEXES.put( Estabelecimentos.PRESTADOR_ECDS_ID, Estabelecimentos.PRESTADOR_ECDS_ID_INDEX );
		FIELD_INDEXES.put( Estabelecimentos.PRESTADOR_ECDS_ID_FULL, Estabelecimentos.PRESTADOR_ECDS_ID_INDEX );
		FIELD_INDEXES.put( Estabelecimentos.TO_PRESTADOR_ECDS_ID, Estabelecimentos.TO_PRESTADOR_ECDS_ID_INDEX );
		com.evolute.entity.evo.EvoDataObject.register( Estabelecimentos.CLASS_IDENTIFIER, Estabelecimentos.CONTACTO_ID, Estabelecimentos.TO_CONTACTO_ID ); 
		FIELD_INDEXES.put( Estabelecimentos.CONTACTO_ID, Estabelecimentos.CONTACTO_ID_INDEX );
		FIELD_INDEXES.put( Estabelecimentos.CONTACTO_ID_FULL, Estabelecimentos.CONTACTO_ID_INDEX );
		FIELD_INDEXES.put( Estabelecimentos.TO_CONTACTO_ID, Estabelecimentos.TO_CONTACTO_ID_INDEX );
	}

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


	public static final com.evolute.entity.ForeignKey ForeignKeyempresa_idToempresas = 
		new com.evolute.entity.ForeignKey( Estabelecimentos.class, Estabelecimentos.EMPRESA_ID, siprp.data.outer.EmpresasData.class, siprp.data.outer.EmpresasData.ID );

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

	public static final com.evolute.entity.ForeignKey ForeignKeyprestador_consulta_idToprestadores = 
		new com.evolute.entity.ForeignKey( Estabelecimentos.class, Estabelecimentos.PRESTADOR_CONSULTA_ID, siprp.data.outer.PrestadoresData.class, siprp.data.outer.PrestadoresData.ID );

	public static final com.evolute.entity.ForeignKey ForeignKeyprestador_ecds_idToprestadores = 
		new com.evolute.entity.ForeignKey( Estabelecimentos.class, Estabelecimentos.PRESTADOR_ECDS_ID, siprp.data.outer.PrestadoresData.class, siprp.data.outer.PrestadoresData.ID );

	public static final com.evolute.entity.ForeignKey ForeignKeycontacto_idTocontactos = 
		new com.evolute.entity.ForeignKey( Estabelecimentos.class, Estabelecimentos.CONTACTO_ID, siprp.data.outer.ContactosData.class, siprp.data.outer.ContactosData.ID );

	public static final String TABLENAME = "estabelecimentos";


	public static final String CLASS_IDENTIFIER = "estabelecimentos1277401737158";

	public static final int _INVALID__INDEX = -1;
	public static final String ID = "id";
	public static final String ID_FULL = "estabelecimentos.id";
	public static final int ID_INDEX = 0;
	public static final String NOME = "nome";
	public static final String NOME_FULL = "estabelecimentos.nome";
	public static final int NOME_INDEX = 1;
	public static final String LOCALIDADE = "localidade";
	public static final String LOCALIDADE_FULL = "estabelecimentos.localidade";
	public static final int LOCALIDADE_INDEX = 2;
	public static final String INACTIVO = "inactivo";
	public static final String INACTIVO_FULL = "estabelecimentos.inactivo";
	public static final int INACTIVO_INDEX = 3;
	public static final String EMPRESA_ID = "empresa_id";
	public static final String EMPRESA_ID_FULL = "estabelecimentos.empresa_id";
	public static final int EMPRESA_ID_INDEX = 4;
	public static final String TO_EMPRESA_ID = "to_empresa_id";
	public static final int TO_EMPRESA_ID_INDEX = 5;
	public static final String MORADA = "morada";
	public static final String MORADA_FULL = "estabelecimentos.morada";
	public static final int MORADA_INDEX = 6;
	public static final String CODIGO_POSTAL = "codigo_postal";
	public static final String CODIGO_POSTAL_FULL = "estabelecimentos.codigo_postal";
	public static final int CODIGO_POSTAL_INDEX = 7;
	public static final String CONTACTO_BACKUP = "contacto_backup";
	public static final String CONTACTO_BACKUP_FULL = "estabelecimentos.contacto_backup";
	public static final int CONTACTO_BACKUP_INDEX = 8;
	public static final String HISTORICO = "historico";
	public static final String HISTORICO_FULL = "estabelecimentos.historico";
	public static final int HISTORICO_INDEX = 9;
	public static final String ACTUALIZACAO = "actualizacao";
	public static final String ACTUALIZACAO_FULL = "estabelecimentos.actualizacao";
	public static final int ACTUALIZACAO_INDEX = 10;
	public static final String NOME_PLAIN = "nome_plain";
	public static final String NOME_PLAIN_FULL = "estabelecimentos.nome_plain";
	public static final int NOME_PLAIN_INDEX = 11;
	public static final String MEDICO_ID = "medico_id";
	public static final String MEDICO_ID_FULL = "estabelecimentos.medico_id";
	public static final int MEDICO_ID_INDEX = 12;
	public static final String TO_MEDICO_ID = "to_medico_id";
	public static final int TO_MEDICO_ID_INDEX = 13;
	public static final String PRESTADOR_CONSULTA_ID = "prestador_consulta_id";
	public static final String PRESTADOR_CONSULTA_ID_FULL = "estabelecimentos.prestador_consulta_id";
	public static final int PRESTADOR_CONSULTA_ID_INDEX = 14;
	public static final String TO_PRESTADOR_CONSULTA_ID = "to_prestador_consulta_id";
	public static final int TO_PRESTADOR_CONSULTA_ID_INDEX = 15;
	public static final String PRESTADOR_ECDS_ID = "prestador_ecds_id";
	public static final String PRESTADOR_ECDS_ID_FULL = "estabelecimentos.prestador_ecds_id";
	public static final int PRESTADOR_ECDS_ID_INDEX = 16;
	public static final String TO_PRESTADOR_ECDS_ID = "to_prestador_ecds_id";
	public static final int TO_PRESTADOR_ECDS_ID_INDEX = 17;
	public static final String CONTACTO_ID = "contacto_id";
	public static final String CONTACTO_ID_FULL = "estabelecimentos.contacto_id";
	public static final int CONTACTO_ID_INDEX = 18;
	public static final String TO_CONTACTO_ID = "to_contacto_id";
	public static final int TO_CONTACTO_ID_INDEX = 19;

	public static final String FIELD_NAMES[] = new String[]{
		NOME, LOCALIDADE, INACTIVO, EMPRESA_ID, TO_EMPRESA_ID, MORADA, CODIGO_POSTAL, 
		CONTACTO_BACKUP, HISTORICO, ACTUALIZACAO, NOME_PLAIN, MEDICO_ID, TO_MEDICO_ID, 
		PRESTADOR_CONSULTA_ID, TO_PRESTADOR_CONSULTA_ID, PRESTADOR_ECDS_ID, 
		TO_PRESTADOR_ECDS_ID, CONTACTO_ID, TO_CONTACTO_ID, };

	public static final String FIELD_NAMES_FULL[] = new String[]{
		TABLENAME + "." + NOME, TABLENAME + "." + LOCALIDADE, TABLENAME + "." + INACTIVO, TABLENAME + "." + EMPRESA_ID, TABLENAME + "." + TO_EMPRESA_ID, TABLENAME + "." + MORADA, TABLENAME + "." + CODIGO_POSTAL, 
		TABLENAME + "." + CONTACTO_BACKUP, TABLENAME + "." + HISTORICO, TABLENAME + "." + ACTUALIZACAO, TABLENAME + "." + NOME_PLAIN, TABLENAME + "." + MEDICO_ID, TABLENAME + "." + TO_MEDICO_ID, 
		TABLENAME + "." + PRESTADOR_CONSULTA_ID, TABLENAME + "." + TO_PRESTADOR_CONSULTA_ID, TABLENAME + "." + PRESTADOR_ECDS_ID, 
		TABLENAME + "." + TO_PRESTADOR_ECDS_ID, TABLENAME + "." + CONTACTO_ID, TABLENAME + "." + TO_CONTACTO_ID, };

	protected static final String DB_FIELD_NAMES[] = new String[]{
		ID, NOME, LOCALIDADE, INACTIVO, EMPRESA_ID, MORADA, CODIGO_POSTAL, CONTACTO_BACKUP, 
		HISTORICO, ACTUALIZACAO, NOME_PLAIN, MEDICO_ID, PRESTADOR_CONSULTA_ID, 
		PRESTADOR_ECDS_ID, CONTACTO_ID, };


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


	public static final String DEFAULT_LOAD_SET[] = new String[] {
		ID, NOME, LOCALIDADE, INACTIVO, EMPRESA_ID, MORADA, CODIGO_POSTAL, CONTACTO_BACKUP, 
		HISTORICO, ACTUALIZACAO, NOME_PLAIN, MEDICO_ID, PRESTADOR_CONSULTA_ID, 
		PRESTADOR_ECDS_ID, CONTACTO_ID, };

	private Integer id;
	private String nome;
	private String localidade;
	private String inactivo;
	private Integer empresa_id;
	private siprp.data.outer.EmpresasData to_empresa_id;
	private String morada;
	private String codigo_postal;
	private String contacto_backup;
	private String historico;
	private java.sql.Timestamp actualizacao;
	private String nome_plain;
	private Integer medico_id;
	private siprp.data.outer.MedicosData to_medico_id;
	private Integer prestador_consulta_id;
	private siprp.data.outer.PrestadoresData to_prestador_consulta_id;
	private Integer prestador_ecds_id;
	private siprp.data.outer.PrestadoresData to_prestador_ecds_id;
	private Integer contacto_id;
	private siprp.data.outer.ContactosData to_contacto_id;

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

	public Estabelecimentos()
	{
		super();
		dirtyProperties = new boolean[]{ false, 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.AvisosData>fromAvisos_estabelecimento_id()
	{
		java.util.List<siprp.data.outer.AvisosData> result = null;
		try
		{
			result = fromReference( siprp.data.outer.AvisosData.class , getPrimaryKey().getMap().get("id"), "estabelecimento_id" );
		}
		catch( com.evolute.entity.evo.EvoDataException edex )
		{
			throw new RuntimeException( edex );
		}
		return result;
	}

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

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

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

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

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

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

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

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

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

	public String getNome()
	{
		try
		{
			setLastAccess( System.currentTimeMillis() );
			prepare( NOME );
		}
		catch( java.lang.Exception ex )
		{
			throw new RuntimeException( ex );
		}
		return this.nome;
	}

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

	public String getLocalidade()
	{
		try
		{
			setLastAccess( System.currentTimeMillis() );
			prepare( LOCALIDADE );
		}
		catch( java.lang.Exception ex )
		{
			throw new RuntimeException( ex );
		}
		return this.localidade;
	}

	public void setLocalidade( String localidade )
	{
		try
		{
			setLockedForRefresh( true );
			preProcess( LOCALIDADE, localidade );
		}
		catch( com.evolute.entity.evo.EvoDataException edex )
		{
			throw new RuntimeException( edex );
		}
		this.localidade = localidade;
		LAZY_LOADED_OBJECTS.put( LOCALIDADE, 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 getEmpresa_id()
	{
		try
		{
			setLastAccess( System.currentTimeMillis() );
			prepare( EMPRESA_ID );
		}
		catch( java.lang.Exception ex )
		{
			throw new RuntimeException( ex );
		}
		return this.empresa_id;
	}

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

	public siprp.data.outer.EmpresasData toEmpresa_id()
	{
		try
		{
			prepare( TO_EMPRESA_ID );
		}
		catch( com.evolute.entity.evo.EvoDataException edex )
		{
			throw new RuntimeException( edex );
		}
		return this.to_empresa_id;
	}

	public void setToEmpresa_id( siprp.data.outer.EmpresasData to_empresa_id )
	{
		try
		{
			preProcess( TO_EMPRESA_ID, to_empresa_id );
		}
		catch( com.evolute.entity.evo.EvoDataException edex )
		{
			throw new RuntimeException( edex );
		}
		this.to_empresa_id = to_empresa_id;
	}

	public String getMorada()
	{
		try
		{
			setLastAccess( System.currentTimeMillis() );
			prepare( MORADA );
		}
		catch( java.lang.Exception ex )
		{
			throw new RuntimeException( ex );
		}
		return this.morada;
	}

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

	public String getCodigo_postal()
	{
		try
		{
			setLastAccess( System.currentTimeMillis() );
			prepare( CODIGO_POSTAL );
		}
		catch( java.lang.Exception ex )
		{
			throw new RuntimeException( ex );
		}
		return this.codigo_postal;
	}

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

	public String getContacto_backup()
	{
		try
		{
			setLastAccess( System.currentTimeMillis() );
			prepare( CONTACTO_BACKUP );
		}
		catch( java.lang.Exception ex )
		{
			throw new RuntimeException( ex );
		}
		return this.contacto_backup;
	}

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

	public String getHistorico()
	{
		try
		{
			setLastAccess( System.currentTimeMillis() );
			prepare( HISTORICO );
		}
		catch( java.lang.Exception ex )
		{
			throw new RuntimeException( ex );
		}
		return this.historico;
	}

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

	public java.sql.Timestamp getActualizacao()
	{
		try
		{
			setLastAccess( System.currentTimeMillis() );
			prepare( ACTUALIZACAO );
		}
		catch( java.lang.Exception ex )
		{
			throw new RuntimeException( ex );
		}
		return this.actualizacao;
	}

	public void setActualizacao( java.sql.Timestamp actualizacao )
	{
		try
		{
			setLockedForRefresh( true );
			preProcess( ACTUALIZACAO, actualizacao );
		}
		catch( com.evolute.entity.evo.EvoDataException edex )
		{
			throw new RuntimeException( edex );
		}
		this.actualizacao = actualizacao;
		LAZY_LOADED_OBJECTS.put( ACTUALIZACAO, Boolean.TRUE );
	}

	public String getNome_plain()
	{
		try
		{
			setLastAccess( System.currentTimeMillis() );
			prepare( NOME_PLAIN );
		}
		catch( java.lang.Exception ex )
		{
			throw new RuntimeException( ex );
		}
		return this.nome_plain;
	}

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

	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 Integer getPrestador_consulta_id()
	{
		try
		{
			setLastAccess( System.currentTimeMillis() );
			prepare( PRESTADOR_CONSULTA_ID );
		}
		catch( java.lang.Exception ex )
		{
			throw new RuntimeException( ex );
		}
		return this.prestador_consulta_id;
	}

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

	public siprp.data.outer.PrestadoresData toPrestador_consulta_id()
	{
		try
		{
			prepare( TO_PRESTADOR_CONSULTA_ID );
		}
		catch( com.evolute.entity.evo.EvoDataException edex )
		{
			throw new RuntimeException( edex );
		}
		return this.to_prestador_consulta_id;
	}

	public void setToPrestador_consulta_id( siprp.data.outer.PrestadoresData to_prestador_consulta_id )
	{
		try
		{
			preProcess( TO_PRESTADOR_CONSULTA_ID, to_prestador_consulta_id );
		}
		catch( com.evolute.entity.evo.EvoDataException edex )
		{
			throw new RuntimeException( edex );
		}
		this.to_prestador_consulta_id = to_prestador_consulta_id;
	}

	public Integer getPrestador_ecds_id()
	{
		try
		{
			setLastAccess( System.currentTimeMillis() );
			prepare( PRESTADOR_ECDS_ID );
		}
		catch( java.lang.Exception ex )
		{
			throw new RuntimeException( ex );
		}
		return this.prestador_ecds_id;
	}

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

	public siprp.data.outer.PrestadoresData toPrestador_ecds_id()
	{
		try
		{
			prepare( TO_PRESTADOR_ECDS_ID );
		}
		catch( com.evolute.entity.evo.EvoDataException edex )
		{
			throw new RuntimeException( edex );
		}
		return this.to_prestador_ecds_id;
	}

	public void setToPrestador_ecds_id( siprp.data.outer.PrestadoresData to_prestador_ecds_id )
	{
		try
		{
			preProcess( TO_PRESTADOR_ECDS_ID, to_prestador_ecds_id );
		}
		catch( com.evolute.entity.evo.EvoDataException edex )
		{
			throw new RuntimeException( edex );
		}
		this.to_prestador_ecds_id = to_prestador_ecds_id;
	}

	public Integer getContacto_id()
	{
		try
		{
			setLastAccess( System.currentTimeMillis() );
			prepare( CONTACTO_ID );
		}
		catch( java.lang.Exception ex )
		{
			throw new RuntimeException( ex );
		}
		return this.contacto_id;
	}

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

	public siprp.data.outer.ContactosData toContacto_id()
	{
		try
		{
			prepare( TO_CONTACTO_ID );
		}
		catch( com.evolute.entity.evo.EvoDataException edex )
		{
			throw new RuntimeException( edex );
		}
		return this.to_contacto_id;
	}

	public void setToContacto_id( siprp.data.outer.ContactosData to_contacto_id )
	{
		try
		{
			preProcess( TO_CONTACTO_ID, to_contacto_id );
		}
		catch( com.evolute.entity.evo.EvoDataException edex )
		{
			throw new RuntimeException( edex );
		}
		this.to_contacto_id = to_contacto_id;
	}

	public Object get( String fieldName )
	{
		Object value = null;
		Integer index = getFieldIndex( fieldName );
		switch( index )
		{
			case Estabelecimentos.ID_INDEX:
				value = getId();
				break;
			case Estabelecimentos.NOME_INDEX:
				value = getNome();
				break;
			case Estabelecimentos.LOCALIDADE_INDEX:
				value = getLocalidade();
				break;
			case Estabelecimentos.INACTIVO_INDEX:
				value = getInactivo();
				break;
			case Estabelecimentos.EMPRESA_ID_INDEX:
				value = getEmpresa_id();
				break;
			case Estabelecimentos.TO_EMPRESA_ID_INDEX:
				value = toEmpresa_id();
				break;
			case Estabelecimentos.MORADA_INDEX:
				value = getMorada();
				break;
			case Estabelecimentos.CODIGO_POSTAL_INDEX:
				value = getCodigo_postal();
				break;
			case Estabelecimentos.CONTACTO_BACKUP_INDEX:
				value = getContacto_backup();
				break;
			case Estabelecimentos.HISTORICO_INDEX:
				value = getHistorico();
				break;
			case Estabelecimentos.ACTUALIZACAO_INDEX:
				value = getActualizacao();
				break;
			case Estabelecimentos.NOME_PLAIN_INDEX:
				value = getNome_plain();
				break;
			case Estabelecimentos.MEDICO_ID_INDEX:
				value = getMedico_id();
				break;
			case Estabelecimentos.TO_MEDICO_ID_INDEX:
				value = toMedico_id();
				break;
			case Estabelecimentos.PRESTADOR_CONSULTA_ID_INDEX:
				value = getPrestador_consulta_id();
				break;
			case Estabelecimentos.TO_PRESTADOR_CONSULTA_ID_INDEX:
				value = toPrestador_consulta_id();
				break;
			case Estabelecimentos.PRESTADOR_ECDS_ID_INDEX:
				value = getPrestador_ecds_id();
				break;
			case Estabelecimentos.TO_PRESTADOR_ECDS_ID_INDEX:
				value = toPrestador_ecds_id();
				break;
			case Estabelecimentos.CONTACTO_ID_INDEX:
				value = getContacto_id();
				break;
			case Estabelecimentos.TO_CONTACTO_ID_INDEX:
				value = toContacto_id();
				break;
		}
		return value;
	}

	public Object rawGet( String fieldName )
	{
		Object value = null;
		Integer index = getFieldIndex( fieldName );
		switch( index )
		{
			case Estabelecimentos.ID_INDEX:
				value = this.id;
				break;
			case Estabelecimentos.NOME_INDEX:
				value = this.nome;
				break;
			case Estabelecimentos.LOCALIDADE_INDEX:
				value = this.localidade;
				break;
			case Estabelecimentos.INACTIVO_INDEX:
				value = this.inactivo;
				break;
			case Estabelecimentos.EMPRESA_ID_INDEX:
				value = this.empresa_id;
				break;
			case Estabelecimentos.TO_EMPRESA_ID_INDEX:
				value = this.to_empresa_id;
				break;
			case Estabelecimentos.MORADA_INDEX:
				value = this.morada;
				break;
			case Estabelecimentos.CODIGO_POSTAL_INDEX:
				value = this.codigo_postal;
				break;
			case Estabelecimentos.CONTACTO_BACKUP_INDEX:
				value = this.contacto_backup;
				break;
			case Estabelecimentos.HISTORICO_INDEX:
				value = this.historico;
				break;
			case Estabelecimentos.ACTUALIZACAO_INDEX:
				value = this.actualizacao;
				break;
			case Estabelecimentos.NOME_PLAIN_INDEX:
				value = this.nome_plain;
				break;
			case Estabelecimentos.MEDICO_ID_INDEX:
				value = this.medico_id;
				break;
			case Estabelecimentos.TO_MEDICO_ID_INDEX:
				value = this.to_medico_id;
				break;
			case Estabelecimentos.PRESTADOR_CONSULTA_ID_INDEX:
				value = this.prestador_consulta_id;
				break;
			case Estabelecimentos.TO_PRESTADOR_CONSULTA_ID_INDEX:
				value = this.to_prestador_consulta_id;
				break;
			case Estabelecimentos.PRESTADOR_ECDS_ID_INDEX:
				value = this.prestador_ecds_id;
				break;
			case Estabelecimentos.TO_PRESTADOR_ECDS_ID_INDEX:
				value = this.to_prestador_ecds_id;
				break;
			case Estabelecimentos.CONTACTO_ID_INDEX:
				value = this.contacto_id;
				break;
			case Estabelecimentos.TO_CONTACTO_ID_INDEX:
				value = this.to_contacto_id;
				break;
		}
		return value;
	}

	public void set( String fieldName, Object value )
	{
		Integer index = getFieldIndex( fieldName );
		switch( index )
		{
			case Estabelecimentos.ID_INDEX:
				setId( ( Integer ) value );
				break;
			case Estabelecimentos.NOME_INDEX:
				setNome( ( String ) value );
				break;
			case Estabelecimentos.LOCALIDADE_INDEX:
				setLocalidade( ( String ) value );
				break;
			case Estabelecimentos.INACTIVO_INDEX:
				setInactivo( ( String ) value );
				break;
			case Estabelecimentos.EMPRESA_ID_INDEX:
				setEmpresa_id( ( Integer ) value );
				break;
			case Estabelecimentos.TO_EMPRESA_ID_INDEX:
				setToEmpresa_id( ( siprp.data.outer.EmpresasData ) value );
				break;
			case Estabelecimentos.MORADA_INDEX:
				setMorada( ( String ) value );
				break;
			case Estabelecimentos.CODIGO_POSTAL_INDEX:
				setCodigo_postal( ( String ) value );
				break;
			case Estabelecimentos.CONTACTO_BACKUP_INDEX:
				setContacto_backup( ( String ) value );
				break;
			case Estabelecimentos.HISTORICO_INDEX:
				setHistorico( ( String ) value );
				break;
			case Estabelecimentos.ACTUALIZACAO_INDEX:
				setActualizacao( ( java.sql.Timestamp ) value );
				break;
			case Estabelecimentos.NOME_PLAIN_INDEX:
				setNome_plain( ( String ) value );
				break;
			case Estabelecimentos.MEDICO_ID_INDEX:
				setMedico_id( ( Integer ) value );
				break;
			case Estabelecimentos.TO_MEDICO_ID_INDEX:
				setToMedico_id( ( siprp.data.outer.MedicosData ) value );
				break;
			case Estabelecimentos.PRESTADOR_CONSULTA_ID_INDEX:
				setPrestador_consulta_id( ( Integer ) value );
				break;
			case Estabelecimentos.TO_PRESTADOR_CONSULTA_ID_INDEX:
				setToPrestador_consulta_id( ( siprp.data.outer.PrestadoresData ) value );
				break;
			case Estabelecimentos.PRESTADOR_ECDS_ID_INDEX:
				setPrestador_ecds_id( ( Integer ) value );
				break;
			case Estabelecimentos.TO_PRESTADOR_ECDS_ID_INDEX:
				setToPrestador_ecds_id( ( siprp.data.outer.PrestadoresData ) value );
				break;
			case Estabelecimentos.CONTACTO_ID_INDEX:
				setContacto_id( ( Integer ) value );
				break;
			case Estabelecimentos.TO_CONTACTO_ID_INDEX:
				setToContacto_id( ( siprp.data.outer.ContactosData ) value );
				break;
		}
	}

	public void rawSet( String fieldName, Object value )
	{
		Integer index = getFieldIndex( fieldName );
		switch( index )
		{
			case Estabelecimentos.ID_INDEX:
				this.id = ( Integer ) value;
				break;
			case Estabelecimentos.NOME_INDEX:
				this.nome = ( String ) value;
				break;
			case Estabelecimentos.LOCALIDADE_INDEX:
				this.localidade = ( String ) value;
				break;
			case Estabelecimentos.INACTIVO_INDEX:
				this.inactivo = ( String ) value;
				break;
			case Estabelecimentos.EMPRESA_ID_INDEX:
				this.empresa_id = ( Integer ) value;
				break;
			case Estabelecimentos.TO_EMPRESA_ID_INDEX:
				this.to_empresa_id = ( siprp.data.outer.EmpresasData ) value;
				break;
			case Estabelecimentos.MORADA_INDEX:
				this.morada = ( String ) value;
				break;
			case Estabelecimentos.CODIGO_POSTAL_INDEX:
				this.codigo_postal = ( String ) value;
				break;
			case Estabelecimentos.CONTACTO_BACKUP_INDEX:
				this.contacto_backup = ( String ) value;
				break;
			case Estabelecimentos.HISTORICO_INDEX:
				this.historico = ( String ) value;
				break;
			case Estabelecimentos.ACTUALIZACAO_INDEX:
				this.actualizacao = ( java.sql.Timestamp ) value;
				break;
			case Estabelecimentos.NOME_PLAIN_INDEX:
				this.nome_plain = ( String ) value;
				break;
			case Estabelecimentos.MEDICO_ID_INDEX:
				this.medico_id = ( Integer ) value;
				break;
			case Estabelecimentos.TO_MEDICO_ID_INDEX:
				this.to_medico_id = ( siprp.data.outer.MedicosData ) value;
				break;
			case Estabelecimentos.PRESTADOR_CONSULTA_ID_INDEX:
				this.prestador_consulta_id = ( Integer ) value;
				break;
			case Estabelecimentos.TO_PRESTADOR_CONSULTA_ID_INDEX:
				this.to_prestador_consulta_id = ( siprp.data.outer.PrestadoresData ) value;
				break;
			case Estabelecimentos.PRESTADOR_ECDS_ID_INDEX:
				this.prestador_ecds_id = ( Integer ) value;
				break;
			case Estabelecimentos.TO_PRESTADOR_ECDS_ID_INDEX:
				this.to_prestador_ecds_id = ( siprp.data.outer.PrestadoresData ) value;
				break;
			case Estabelecimentos.CONTACTO_ID_INDEX:
				this.contacto_id = ( Integer ) value;
				break;
			case Estabelecimentos.TO_CONTACTO_ID_INDEX:
				this.to_contacto_id = ( siprp.data.outer.ContactosData ) 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 Estabelecimentos.ID_INDEX:
				theClass = Integer.class;
				break;
			case Estabelecimentos.NOME_INDEX:
				theClass = String.class;
				break;
			case Estabelecimentos.LOCALIDADE_INDEX:
				theClass = String.class;
				break;
			case Estabelecimentos.INACTIVO_INDEX:
				theClass = String.class;
				break;
			case Estabelecimentos.EMPRESA_ID_INDEX:
				theClass = Integer.class;
				break;
			case Estabelecimentos.TO_EMPRESA_ID_INDEX:
				theClass = siprp.data.outer.EmpresasData.class;
				break;
			case Estabelecimentos.MORADA_INDEX:
				theClass = String.class;
				break;
			case Estabelecimentos.CODIGO_POSTAL_INDEX:
				theClass = String.class;
				break;
			case Estabelecimentos.CONTACTO_BACKUP_INDEX:
				theClass = String.class;
				break;
			case Estabelecimentos.HISTORICO_INDEX:
				theClass = String.class;
				break;
			case Estabelecimentos.ACTUALIZACAO_INDEX:
				theClass = java.sql.Timestamp.class;
				break;
			case Estabelecimentos.NOME_PLAIN_INDEX:
				theClass = String.class;
				break;
			case Estabelecimentos.MEDICO_ID_INDEX:
				theClass = Integer.class;
				break;
			case Estabelecimentos.TO_MEDICO_ID_INDEX:
				theClass = siprp.data.outer.MedicosData.class;
				break;
			case Estabelecimentos.PRESTADOR_CONSULTA_ID_INDEX:
				theClass = Integer.class;
				break;
			case Estabelecimentos.TO_PRESTADOR_CONSULTA_ID_INDEX:
				theClass = siprp.data.outer.PrestadoresData.class;
				break;
			case Estabelecimentos.PRESTADOR_ECDS_ID_INDEX:
				theClass = Integer.class;
				break;
			case Estabelecimentos.TO_PRESTADOR_ECDS_ID_INDEX:
				theClass = siprp.data.outer.PrestadoresData.class;
				break;
			case Estabelecimentos.CONTACTO_ID_INDEX:
				theClass = Integer.class;
				break;
			case Estabelecimentos.TO_CONTACTO_ID_INDEX:
				theClass = siprp.data.outer.ContactosData.class;
				break;
		}
		return theClass;
	}

	public Integer getFieldIndex( String fieldName )
	{
		Integer index = FIELD_INDEXES.get( fieldName );
		return index != null ? index : Estabelecimentos._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, Estabelecimentos.PK_FIELD_NAMES );
			primaryKey.set( 0, getId() );
		}
	}

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

	public void initLazyLoadFields()
	{
	}

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