/*
* ExamesPerfisDataAuto.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 ExamesPerfisDataAuto extends JDOObject
{

	public static final String TABLENAME = "exames_perfis";

	public static final String ID = "id";
	public static final String ID_FULL = "exames_perfis.id";
	public static final String PERFIL = "perfil";
	public static final String PERFIL_FULL = "exames_perfis.perfil";
	public static final String TIPO = "tipo";
	public static final String TIPO_FULL = "exames_perfis.tipo";
	public static final String TO_TIPO = "to tipo";
	public static final String MULTIPLICADOR = "multiplicador";
	public static final String MULTIPLICADOR_FULL = "exames_perfis.multiplicador";

	public static final String FIELD_NAMES[] = new String[]{
		PERFIL, TIPO, TO_TIPO, MULTIPLICADOR, };


	protected static final String ALL_FIELD_NAMES[] = new String[]{
		ID, PERFIL, TIPO, MULTIPLICADOR, };

	private Map<String, Object> dataHash;

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

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

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

	public Integer getPerfil()
	{
		return (Integer) get(PERFIL);
	}

	public void setPerfil(Integer perfilValue )
	{
		this.set(PERFIL, perfilValue );
	}

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

	public void setTipo(Integer tipoValue )
	{
		dataHash.put(TO_TIPO, null);
		dataHash.put(TIPO, tipoValue );
	}

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

	public void setToTipo(com.evolute.siprp.server.db.data.siprp_local3.TiposExamesCompData tipoObject )
	{
		if( tipoObject == null )
		{
			dataHash.put(TIPO, null);
		}
		else
		{
			dataHash.put(TIPO, tipoObject.get( com.evolute.siprp.server.db.data.siprp_local3.TiposExamesCompData.ID ));
		}
		dataHash.put(TO_TIPO, tipoObject);
	}

	public Integer getMultiplicador()
	{
		return (Integer) get(MULTIPLICADOR);
	}

	public void setMultiplicador(Integer multiplicadorValue )
	{
		this.set(MULTIPLICADOR, multiplicadorValue );
	}

	protected Object innerGet( String fieldName )
		throws Exception
	{
		Object value = null;
		if( TIPO.equals( fieldName ) )
		{
			value =  getTipo();
		}
		else if( TO_TIPO.equals( fieldName ) )
		{
			value =  toTipo();
		}
		else
		{
			value =  dataHash.get( fieldName );
		}
		return value;
	}

	protected void innerSet( String fieldName, Object value )
		throws Exception
	{
		if( TIPO.equals( fieldName ) )
		{
			setTipo( (Integer) value );
		}
		else if( TO_TIPO.equals( fieldName ) )
		{
			setToTipo( (com.evolute.siprp.server.db.data.siprp_local3.TiposExamesCompData) value );
		}
		else
		{
			dataHash.put( fieldName, value );
		}
	}

	public void save()
		throws Exception
	{
		if( dataHash.get(TO_TIPO) != null )
		{
			toTipo().save();
			dataHash.put(TIPO, toTipo().get( com.evolute.siprp.server.db.data.siprp_local3.TiposExamesCompData.ID ));
		}

		super.save();
	}

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

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

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

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