package packg;

import packa.*;
import utilita.*;

public class Guardaroba{
  private String nome;
  private CollezioneOrdinata coll;

  public Guardaroba(String n){
    nome = n;
    coll = new CollezioneOrdinata();
  }

  public String Nome(){
    return nome;
  }

  public boolean presente (String c){
    CodiceAbito aux = new CodiceAbito();
    aux.codice = c;
    if (coll.posizione(aux) >= 0) return true;
    else return false;
  }

  public int numeroAbitiDepositati(){
    return coll.quantiElementi();
  }
  
  public int qualePosizione(String c){
    CodiceAbito aux = new CodiceAbito();
    aux.codice = c;
    int pos = coll.posizione(aux);
    if (pos >= 0)
      return pos; 
    else 
      throw new RuntimeException("ERR in qualePosizione: codice inesistente"); 
  }
  
  public String qualeCodice(int n){ 
    CodiceAbito ca = (CodiceAbito)coll.elementoInPosizione(n);
    if (ca == null)
      throw new RuntimeException("ERR in qualeCodice: posizione inesistente");
    else return ca.codice;
  }
  
  public Abito qualeAbito(String c){
    CodiceAbito aux = new CodiceAbito();
    aux.codice = c;
    int pos = coll.posizione(aux);
    if (pos >= 0)
      return ((CodiceAbito)coll.elementoInPosizione(pos)).abito;
    else 
      throw new RuntimeException("ERR in qualeAbito: codice inesistente"); 
  }
  
  public void consegnaAbito(String c, Abito a){
    CodiceAbito aux = new CodiceAbito();
    aux.codice = c;
    aux.abito = a;
    if(coll.posizione(aux) >= 0) 
      throw new RuntimeException("ERR in consegnaAbito: codice gia' presente");
    coll.inserisci(aux);
  }
  
  public void ritiraAbito(String c){  
    CodiceAbito aux = new CodiceAbito();
    aux.codice = c;
    coll.elimina(aux);
  }
}
