Help!please

Tenho uma classe Chamada Modulos, e outra Programador…
um Modulo deve receber um Programador, mas os módulos tem niveis de confidenciabilidade - 1, 2 e 3 - e os programadores tb tem tipo - 1, 2 , 3 - eu so posso atribuir um modulo a um programador se eles tiverem o mesmo nivel (ou Tipo), a não ser os modulos com nivel 3 que eu posso vincular a qualquer programador…
alguém pode me dizer como faço isso

tens como postar ou mandar seu código, assim fica mais fácil de entender!

Você faz um teste. Ex.:

programador.getNivel() == modulo.getNivel()

// Se for verdadeiro, você atribui.

e modulo.getNivel () == 3 …

import java.io.*;

public class Modulos implements Serializable
{

private String nome;
private int Confidenciabilidade; // 1 - Confidencial   2 - Critico    3 - Generico
private int Tempogasto;
private Programador programador;

/**
 * Construtor de objetos do tipo Modulos
 * Recebe um nome, horas necessarias para seu termino e o Programador que esta desenvolvendo o modulo como parametros.
 * O nivel é preenchido conforme o tipo de programador
 *
 * @param  nome   nome do programador
 * @param  horasPraFinalizar   o numero de horas para finalizar o projeto
 * @param programador um objeto do tipo Programador
 */
public Modulos (String nome, int TempoGasto, Programador programador)
{
	programador.setStatus(1);
	this.nome = nome;
	// 1 - Senior   2 - Permanente   3 - Contratado   
	/*if (programador.getTipo() == 1)
	{
		this.Confidenciabilidade = 1;
	}
	else if (programador.getTipo() == 2)
	{
		this.Confidenciabilidade = 2;
	}
	else
	{
		this.Confidenciabilidade = 3;
	}
	*/
	this.Tempogasto = TempoGasto;		
	this.programador = programador;
}

/**
 * 
 */
public Modulos() {
	// TODO Auto-generated constructor stub
}

/**
* Metodo setNome que altera o valor  da variavel nome do obejto
* 
* @param nome  substitui o valor de nome 
*/
public void setNome (String nome)
{
	this.nome = nome;
}

/**
* Metodo setNivel que altera o valor  da variavel nivel do obejto
* 
* @param nivel  substitui o valor de nivel 
*/
public void setNivelConfidenciabilidade ( int nivel)
{
	this.Confidenciabilidade = nivel;
}

/**
* Metodo setHorasPraFinalizar que altera o valor  da variavel horasPraFinalizar do obejto
* 
* @param horasPraFinalizar  substitui o valor de horasPraFinalizar 
*/
public void setTempoGasto (int horasPraFinalizar)
{
	this.Tempogasto = horasPraFinalizar;
}

/**
* Metodo setProgramador que altera o valor  da variavel programador do obejto
* 
* @param programador  substitui o valor de programador 
*/	
public void setProgramador (Programador programador)
{
	this.programador = programador;
}

/**
* Metodo getNome retorna a variavel nome do obejto
* 
* @return a variavel nome do Objeto
*/	
public String getNome()
{
	return this.nome;
}

/**
* Metodo getNivel retorna a variavel nivel do obejto
* 
* @return a variavel nivel do Objeto
*/	
public int getNivel()
{
	return this.Confidenciabilidade;
}

/**
* Metodo getHorasPraFinalizar retorna a variavel horasPraFinalizar do obejto
* 
* @return  a variavel horasPraFinalizar do Objeto
*/	
public int getHorasPraFinalizar()
{
	return this.Tempogasto;
}

/**
* Metodo getProgramador retorna a variavel programador do obejto
* 
* @return  a variavel programador do Objeto
*/		
public Programador getProgramador ()
{
	return this.programador;
}

}

import java.io.*;

/**

  • Classe abstrata. Define programadores de modo geral

  • @author Marciano Ferreira

  • @version 2
    */
    public class Programador implements Serializable
    {
    // variaveis de instancia
    protected String nome;
    protected int tipo; // 1 - Senior 2 - Permanente 3 - Contratado
    protected double custoHora;
    protected int horas_Semana;
    protected double horas_Efetivas;
    private double horas_extra;
    private int status ; // 0 - Livre 1 - Programando

    /**

    • Construtor de objetos do tipo Programador
      */
      public Programador()
      {

    }

    /**

    • Construtor de objetos do tipo Programador
    • @param nome nome do programador
    • @param tipo o tipo do programdor
      */
      public Programador(String nome, int tipo)
      {
      this.nome = nome;
      this.tipo = tipo;
      status = 0;
      if (tipo == 1)
      {
      custoHora = 30;
      horas_Semana = 45;
      horas_Efetivas = 0.9;
      horas_extra = 0.2;
      }
      else if (tipo == 2)
      {
      custoHora = 20;
      horas_Semana = 40;
      horas_Efetivas = 1;
      horas_extra = 0.5;
      }
      else if (tipo == 3)
      {
      custoHora = 15;
      horas_Semana = 45;
      horas_Efetivas = 1.1;
      horas_extra = 0;
      }
      else
      {
      custoHora = 0;
      horas_Semana = 0;
      horas_Efetivas = 0;
      horas_extra = 0;
      }
      }

    /**

    • Metodo setNome que altera o nome do programador

    • @param nome
      */
      public void setNome(String nome)
      {
      this.nome = nome;
      }

      /**

      • Metodo getNome

      @return o nome do Programador
      */
      public String getNome()
      {
      return nome;
      }

    /**

    • Metodo setTipo que altera o tipo de programador

    • @param tipo
      */
      public void setTipo(int tipo)
      {
      this.tipo = tipo;
      }

      /**

      • Metodo getTipo
      • @return a variavel tipo do Programador
        */
        public int getTipo()
        {
        return tipo;
        }

    /**

    • Metodo setCustoHora que altera altera o custo da hora

    • @param custoHora
      */
      public void setCustoHora(double custoHora)
      {
      this.custoHora = custoHora;
      }

      /**

      • Metodo getCustoHora
      • @return retorna o valor da Hora
        */
        public double getPorHora()
        {
        return custoHora;
        }

    /**

    • Metodo setHorasPorSemana que altera o valor da variavel horasPorSemana

    • @param horasPorSemana
      */
      public void setHorasPorSemana(int horasSemana)
      {
      this.horas_Semana = horasSemana;
      }

      /**

      • Metodo gethorasPorSemana retorna a variavel horasPorSemana
      • @return a variavel horasPorSemana
        */
        public int gethorasPorSemana()
        {
        return horas_Semana;
        }

    /**

    • Metodo setHorasEfetivas que altera o valor da variavel horasEfetivas

    • @param horasEfetivas
      */
      public void setHorasEfetivas(double horasEfetivas)
      {
      this.horas_Efetivas = horasEfetivas;
      }

      /**

      • Metodo getHorasEfetivas retorna a variavel horasEfetivas
      • @return o numero de horas efetivas
        */
        public double getHorasEfetivas()
        {
        return horas_Efetivas;
        }

    /**

    • Metodo setHoraExtra que altera o valor hora extra

    • @param horaExtra substitui o valor de extra
      */
      public void setHoraExtra(double horaExtra)
      {
      this.horas_extra = horaExtra;
      }

      /**

      • Metodo getHoraExtra retorna a variavel extra do obejto
      • @return o numero de horas extras
        */
        public double getHoraExtra()
        {
        return horas_extra;
        }

    /**

    • Metodo setStatus que altera o status do programador

    • @param status
      */
      public void setStatus (int status)
      {
      this.status = status;
      }

      /**

      • Metodo getStatus retorna o status do programador
      • @return o status do programador (livre ou programando)
        */
        public int getStatus()
        {
        return status;
        }

}