/*
* AvisosDataAuto.java
*
* Generated by com.evutils.codegen.JDOObjectGenerator
*
* Use but DON'T TOUCH
*/
package com.evolute.siprp.server.db.data.siprp_local3;

import com.evolute.utils.jdo.*;
import java.util.HashMap;
import java.util.Map;

class AvisosDataAuto extends JDOObject
{

	public static final String TABLENAME = "avisos";

	public static final String ID = "id";
	public static final String ID_FULL = "avisos.id";
	public static final String TIPO = "tipo";
	public static final String TIPO_FULL = "avisos.tipo";
	public static final String EMPRESA_ID = "empresa_id";
	public static final String EMPRESA_ID_FULL = "avisos.empresa_id";
	public static final String TO_EMPRESA_ID = "to empresa_id";
	public static final String ESTABELECIMENTO_ID = "estabelecimento_id";
	public static final String ESTABELECIMENTO_ID_FULL = "avisos.estabelecimento_id";
	public static final String TO_ESTABELECIMENTO_ID = "to estabelecimento_id";
	public static final String TRABALHADOR_ID = "trabalhador_id";
	public static final String TRABALHADOR_ID_FULL = "avisos.trabalhador_id";
	public static final String EVENTO_ID = "evento_id";
	public static final String EVENTO_ID_FULL = "avisos.evento_id";
	public static final String DATA_AVISO = "data_aviso";
	public static final String DATA_AVISO_FULL = "avisos.data_aviso";
	public static final String DATA_EVENTO = "data_evento";
	public static final String DATA_EVENTO_FULL = "avisos.data_evento";
	public static final String DESCRICAO = "descricao";
	public static final String DESCRICAO_FULL = "avisos.descricao";

	public static final String FIELD_NAMES[] = new String[]{
		TIPO, EMPRESA_ID, TO_EMPRESA_ID, ESTABELECIMENTO_ID, TO_ESTABELECIMENTO_ID, 
		TRABALHADOR_ID, EVENTO_ID, DATA_AVISO, DATA_EVENTO, DESCRICAO, };


	protected static final String ALL_FIELD_NAMES[] = new String[]{
		ID, TIPO, EMPRESA_ID, ESTABELECIMENTO_ID, TRABALHADOR_ID, EVENTO_ID, DATA_AVISO, 
		DATA_EVENTO, DESCRICAO, };

	private Map<String, Object> dataHash;

	public AvisosDataAuto()
	{
		dataHash = new HashMap<String, Object>();
	}

	public Integer getId()
	{
		return (Integer) get(ID);
	}

	public void setId(Integer idValue )
	{
		this.set(ID, idValue );
	}

	public Integer getTipo()
	{
		return (Integer) get(TIPO);
	}

	public void setTipo(Integer tipoValue )
	{
		this.set(TIPO, tipoValue );
	}

	public Integer getEmpresa_id()
	{
		return (Integer) dataHash.get(EMPRESA_ID);
	}

	public void setEmpresa_id(Integer empresa_idValue )
	{
		dataHash.put(TO_EMPRESA_ID, null);
		dataHash.put(EMPRESA_ID, empresa_idValue );
	}

	public com.evolute.siprp.server.db.data.siprp_local3.EmpresasData toEmpresa_id()
		throws Exception
	{
		if( dataHash.get(TO_EMPRESA_ID) == null && getEmpresa_id() != null )
		{
			dataHash.put(TO_EMPRESA_ID, getJDOProvider().load(com.evolute.siprp.server.db.data.siprp_local3.EmpresasData.class, new Object[]{ getEmpresa_id() }, new String[]{ com.evolute.siprp.server.db.data.siprp_local3.EmpresasData.ID }));
		}
		return (com.evolute.siprp.server.db.data.siprp_local3.EmpresasData) dataHash.get(TO_EMPRESA_ID);
	}

	public void setToEmpresa_id(com.evolute.siprp.server.db.data.siprp_local3.EmpresasData empresa_idObject )
	{
		if( empresa_idObject == null )
		{
			dataHash.put(EMPRESA_ID, null);
		}
		else
		{
			dataHash.put(EMPRESA_ID, empresa_idObject.get( com.evolute.siprp.server.db.data.siprp_local3.EmpresasData.ID ));
		}
		dataHash.put(TO_EMPRESA_ID, empresa_idObject);
	}

	public Integer getEstabelecimento_id()
	{
		return (Integer) dataHash.get(ESTABELECIMENTO_ID);
	}

	public void setEstabelecimento_id(Integer estabelecimento_idValue )
	{
		dataHash.put(TO_ESTABELECIMENTO_ID, null);
		dataHash.put(ESTABELECIMENTO_ID, estabelecimento_idValue );
	}

	public com.evolute.siprp.server.db.data.siprp_local3.EstabelecimentosData toEstabelecimento_id()
		throws Exception
	{
		if( dataHash.get(TO_ESTABELECIMENTO_ID) == null && getEstabelecimento_id() != null )
		{
			dataHash.put(TO_ESTABELECIMENTO_ID, getJDOProvider().load(com.evolute.siprp.server.db.data.siprp_local3.EstabelecimentosData.class, new Object[]{ getEstabelecimento_id() }, new String[]{ com.evolute.siprp.server.db.data.siprp_local3.EstabelecimentosData.ID }));
		}
		return (com.evolute.siprp.server.db.data.siprp_local3.EstabelecimentosData) dataHash.get(TO_ESTABELECIMENTO_ID);
	}

	public void setToEstabelecimento_id(com.evolute.siprp.server.db.data.siprp_local3.EstabelecimentosData estabelecimento_idObject )
	{
		if( estabelecimento_idObject == null )
		{
			dataHash.put(ESTABELECIMENTO_ID, null);
		}
		else
		{
			dataHash.put(ESTABELECIMENTO_ID, estabelecimento_idObject.get( com.evolute.siprp.server.db.data.siprp_local3.EstabelecimentosData.ID ));
		}
		dataHash.put(TO_ESTABELECIMENTO_ID, estabelecimento_idObject);
	}

	public Integer getTrabalhador_id()
	{
		return (Integer) get(TRABALHADOR_ID);
	}

	public void setTrabalhador_id(Integer trabalhador_idValue )
	{
		this.set(TRABALHADOR_ID, trabalhador_idValue );
	}

	public Integer getEvento_id()
	{
		return (Integer) get(EVENTO_ID);
	}

	public void setEvento_id(Integer evento_idValue )
	{
		this.set(EVENTO_ID, evento_idValue );
	}

	public java.util.Date getData_aviso()
	{
		return (java.util.Date) get(DATA_AVISO);
	}

	public void setData_aviso(java.util.Date data_avisoValue )
	{
		this.set(DATA_AVISO, data_avisoValue );
	}

	public java.util.Date getData_evento()
	{
		return (java.util.Date) get(DATA_EVENTO);
	}

	public void setData_evento(java.util.Date data_eventoValue )
	{
		this.set(DATA_EVENTO, data_eventoValue );
	}

	public String getDescricao()
	{
		return (String) get(DESCRICAO);
	}

	public void setDescricao(String descricaoValue )
	{
		this.set(DESCRICAO, descricaoValue );
	}

	protected Object innerGet( String fieldName )
		throws Exception
	{
		Object value = null;
		if( ESTABELECIMENTO_ID.equals( fieldName ) )
		{
			value =  getEstabelecimento_id();
		}
		else if( TO_ESTABELECIMENTO_ID.equals( fieldName ) )
		{
			value =  toEstabelecimento_id();
		}
		else if( TO_EMPRESA_ID.equals( fieldName ) )
		{
			value =  toEmpresa_id();
		}
		else if( EMPRESA_ID.equals( fieldName ) )
		{
			value =  getEmpresa_id();
		}
		else
		{
			value =  dataHash.get( fieldName );
		}
		return value;
	}

	protected void innerSet( String fieldName, Object value )
		throws Exception
	{
		if( ESTABELECIMENTO_ID.equals( fieldName ) )
		{
			setEstabelecimento_id( (Integer) value );
		}
		else if( TO_ESTABELECIMENTO_ID.equals( fieldName ) )
		{
			setToEstabelecimento_id( (com.evolute.siprp.server.db.data.siprp_local3.EstabelecimentosData) value );
		}
		else if( TO_EMPRESA_ID.equals( fieldName ) )
		{
			setToEmpresa_id( (com.evolute.siprp.server.db.data.siprp_local3.EmpresasData) value );
		}
		else if( EMPRESA_ID.equals( fieldName ) )
		{
			setEmpresa_id( (Integer) value );
		}
		else
		{
			dataHash.put( fieldName, value );
		}
	}

	public void save()
		throws Exception
	{
		if( dataHash.get(TO_EMPRESA_ID) != null )
		{
			toEmpresa_id().save();
			dataHash.put(EMPRESA_ID, toEmpresa_id().get( com.evolute.siprp.server.db.data.siprp_local3.EmpresasData.ID ));
		}

		if( dataHash.get(TO_ESTABELECIMENTO_ID) != null )
		{
			toEstabelecimento_id().save();
			dataHash.put(ESTABELECIMENTO_ID, toEstabelecimento_id().get( com.evolute.siprp.server.db.data.siprp_local3.EstabelecimentosData.ID ));
		}

		super.save();
	}

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

	protected String []getAllFieldNames()
	{
		return ALL_FIELD_NAMES;
	}

	public Class<Avisos> getInnerClass()
	{
		return Avisos.class;
	}

	public Integer getJDOPrimaryKey()
	{
		Object obj = this.getId();
		if(obj instanceof JDOObject){
			 obj = ((JDOObject) obj).getInnerObject();
		}
		return (Integer) obj;
	}
}
