uniandes.cupi2.organigrama.mundo
Class Cargo

java.lang.Object
  extended by uniandes.cupi2.organigrama.mundo.Cargo
All Implemented Interfaces:
java.io.Serializable

public class Cargo
extends java.lang.Object
implements java.io.Serializable

Esta clase representa un cargo en la empesa inv:
nombreCargo != null && nombreCargo != ""
salario > 0
subalternos != null

See Also:
Serialized Form

Constructor Summary
Cargo(java.lang.String nCargo, int pago, Cargo superior)
          Construye un cargo con la información especificada
 
Method Summary
 void agregarCargo(java.lang.String nCargo, int pago)
          Agrega un cargo a la lista de subalternos del cargo actual
 void asignarSalario(int nuevo)
          Cambia el salario del cargo
 Cargo buscarCargo(java.lang.String nCargo)
          Busca un cargo en el organigrama que comienza en este elemento.
 Cargo buscarCargoEmpleado(java.lang.String idEmpleado)
          Busca el cargo que ocupa un empleado en la empresa, dado el identificador del empleado
 Empleado buscarEmpleado(java.lang.String idEmpleado)
          Busca un empleado en el organigrama que comienza en este elemento.
 Cargo buscarJefe(java.lang.String nCargo)
          Busca el cargo del que depende el cargo con el nombre dado
 int contarHojas()
          Cuenta el número de hojas que hay en el organigrama que comienza con este elemento
 void contratar(java.lang.String idPersona, java.lang.String nombre, java.util.Date ingreso)
          Asigna la persona con los datos especificados al cargo actual
 int darAltura()
          Calcula la altura del organigrama del que este elemento es raíz
 Empleado darEmpleado()
          Retorna el empleado que ocupa el cargo
 void darListaCargos(java.util.Collection lista)
          Agrega a la lista que recibe como parámetro los nombres de los cargos que existen
en el subárbol que comienza en este punto del organigrama
 void darListaCargosDisponibles(java.util.Collection lista)
          Agrega a la lista que recibe como parámetro los nombres de los cargos que se encuentran
vacantes en el subárbol que comienza en este punto del organigrama
 java.lang.String darNombreCargo()
          Retorna el nombre del cargo
 int darPeso()
          Calcula el peso del organigrama del que este elemento es raíz
 int darSalario()
          Retorna el salario del cargo
 java.util.ArrayList darSubAlternos()
          Retorna los subalternos del empleado.
 void despedir()
          Elimina la referencia al empleado que ocupaba el cargo
 void eliminarCargo(java.lang.String nCargo)
          Elimina el cargo con el nombre dado
 boolean esHoja()
          Indica si el elemento es una hoja o no
 boolean estaVacante()
          Indica si el cargo se encuentra vacante
 java.lang.String toString()
          Retorna una cadena que identifica el cargo
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Constructor Detail

Cargo

public Cargo(java.lang.String nCargo,
             int pago,
             Cargo superior)
Construye un cargo con la información especificada

Parameters:
nCargo - El nombre del cargo
pago - El pago que recibe el empleado que ocupa el cargo
superior - El cargo del que depende el cargo a ser creado
Method Detail

darNombreCargo

public java.lang.String darNombreCargo()
Retorna el nombre del cargo

Returns:
El nombre del cargo

darSalario

public int darSalario()
Retorna el salario del cargo

Returns:
El salario del cargo

darEmpleado

public Empleado darEmpleado()
Retorna el empleado que ocupa el cargo

Returns:
El empleado que ocupa el cargo

estaVacante

public boolean estaVacante()
Indica si el cargo se encuentra vacante

Returns:
true si el cargo está vacante o false en caso contrario

darSubAlternos

public java.util.ArrayList darSubAlternos()
Retorna los subalternos del empleado.

Returns:
La lista de subalternos

asignarSalario

public void asignarSalario(int nuevo)
Cambia el salario del cargo

Parameters:
nuevo - El nuevo salario del empleado

agregarCargo

public void agregarCargo(java.lang.String nCargo,
                         int pago)
Agrega un cargo a la lista de subalternos del cargo actual

Parameters:
nCargo - El nuevo del nuevo cargo
pago - El pago del nuevo cargo

eliminarCargo

public void eliminarCargo(java.lang.String nCargo)
                   throws OrganigramaException
Elimina el cargo con el nombre dado

Parameters:
nCargo - El nombre del cargo a eliminar
Throws:
OrganigramaException - Si el cargo no es una hoja o no está vacante

contratar

public void contratar(java.lang.String idPersona,
                      java.lang.String nombre,
                      java.util.Date ingreso)
               throws OrganigramaException
Asigna la persona con los datos especificados al cargo actual

Parameters:
idPersona - El código de la persona
nombre - El nombre de la persona
ingreso - La fecha de ingreso
Throws:
OrganigramaException - Si el cargo ya se encuentra ocupado

despedir

public void despedir()
Elimina la referencia al empleado que ocupaba el cargo


esHoja

public boolean esHoja()
Indica si el elemento es una hoja o no

Returns:
true si el elemento es una hoja, false en caso contrario

contarHojas

public int contarHojas()
Cuenta el número de hojas que hay en el organigrama que comienza con este elemento

Returns:
El número de hojas

darPeso

public int darPeso()
Calcula el peso del organigrama del que este elemento es raíz

Returns:
peso o número de nodos

darAltura

public int darAltura()
Calcula la altura del organigrama del que este elemento es raíz

Returns:
altura del árbol. altura >= 1

darListaCargos

public void darListaCargos(java.util.Collection lista)
Agrega a la lista que recibe como parámetro los nombres de los cargos que existen
en el subárbol que comienza en este punto del organigrama

Parameters:
lista - La lista en la que se van a adicionar los cargos que existen en el subárbol
que comienza en este punto del organigrama

darListaCargosDisponibles

public void darListaCargosDisponibles(java.util.Collection lista)
Agrega a la lista que recibe como parámetro los nombres de los cargos que se encuentran
vacantes en el subárbol que comienza en este punto del organigrama

Parameters:
lista - La lista en la que se van a adicionar los cargos disponibles en el subárbol
que comienza en este punto del organigrama

buscarCargo

public Cargo buscarCargo(java.lang.String nCargo)
Busca un cargo en el organigrama que comienza en este elemento.

Parameters:
nCargo - El nombre del cargo que se está buscando
Returns:
El cargo con el nombre dado. Si no existe tal cargo en el
organigrama que comienza en el elemento se retorna null.

buscarCargoEmpleado

public Cargo buscarCargoEmpleado(java.lang.String idEmpleado)
Busca el cargo que ocupa un empleado en la empresa, dado el identificador del empleado

Parameters:
idEmpleado - El código del empleado del que se desea el cargo
Returns:
El cargo del empleado con el código dado. Si no se encuentra el cargo del empleado se retorna null

buscarEmpleado

public Empleado buscarEmpleado(java.lang.String idEmpleado)
Busca un empleado en el organigrama que comienza en este elemento.

Parameters:
idEmpleado - El código del empleado que se está buscando
Returns:
El empleado con el código dado. Si no se encuentra el empleado se retorna null

buscarJefe

public Cargo buscarJefe(java.lang.String nCargo)
Busca el cargo del que depende el cargo con el nombre dado

Parameters:
nCargo - El nombre del cargo del que se desea el cargo jefe
Returns:
El cargo del que depende el cargo actual. Si el cargo no es encontrado se retorna null

toString

public java.lang.String toString()
Retorna una cadena que identifica el cargo

Overrides:
toString in class java.lang.Object
Returns:
La cadena que identifica el cargo