package vettore_ordinabile;

public abstract class VettoreOrdinabile {
	
	// Variabili di istanza
	private Object[] vettore;		// Vettore dove memorizzare i dati
	private int dimensioneMassima;
	private int dimensioneCorrente;
	
	// Costruttore
	public VettoreOrdinabile(int dimensioneMassima) {
		if (dimensioneMassima < 0) throw new IllegalArgumentException("La dimensione non può essere negativa");
		this.dimensioneMassima = dimensioneMassima;
	}
	
	/**
	 * Funzione aggiungi.
	 * Permette di aggiungere un elemento se la dimensione lo permette.
	 */
	public boolean aggiungi(Object elemento) {
		if (elemento != null && dimensioneCorrente < dimensioneMassima) {
			vettore[dimensioneCorrente] = elemento;
			dimensioneCorrente++;
			return true;
		} else return false;
	}
	
	/**
	 * Funzione leggi.
	 * Permette di leggere un elemento ad una determinata posizione.
	 */
	public Object leggi(int indice) {
		
	}
	
}
