package packg;

import packa.*;
import java.util.*;

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

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

  public String Nome(){
    return nome;
  }

  public boolean presente (String c){
    return coll.containsKey(c);
  }

  public int numeroAbitiDepositati(){
    return coll.size();
  }
  
  public int qualePosizione(String c){
    if (!coll.containsKey(c)) 
      throw new RuntimeException("ERR in qualePosizione: codice inesistente"); 
    else {
      int pos = 0;
      Iterator it = coll.keySet().iterator();
      while (it.hasNext()) {
        String s = (String)it.next();
        if (s.equals(c)) return pos;
        pos++;
      }
      return -1; //non puo' accadere
    }
  }
  
  public String qualeCodice(int n){ 
    if (n < 0 || n >= coll.size()) 
      throw new RuntimeException("ERR in qualeCodice: posizione inesistente");
    else {
      int pos = 0;
      Iterator it = coll.keySet().iterator();
      while (it.hasNext()) {
        String s = (String)it.next();
        if (pos==n) return s;
        pos++;
      }
      return null; //non puo' accadere
    }
  }
  
  public Abito qualeAbito(String c){
    if (coll.containsKey(c))
      return (Abito)coll.get(c);
    else 
      throw new RuntimeException("ERR in qualeAbito: codice inesistente"); 
  }
  
  public void consegnaAbito(String c, Abito a){
    if (!coll.containsKey(c))
      coll.put(c,a);
    else
      throw new RuntimeException("ERR in consegnaAbito: codice gia' presente");
  }
  
  public void ritiraAbito(String c){  
    coll.remove(c);
  }
}
