package vettore_ordinabile;

public class VettoriIntero extends VettoreOrdinabile{
	
	// Metodo costruttore default
	/*
	 * Contiene solamente 10 elementi
	 * */
	public VettoriIntero() {
		super(10);
	}
	
	// Metodo costruttore custom
	/*
	 * Contiene n elementi
	 */
	public VettoriIntero(int dimensioneMassima) {
		super(dimensioneMassima);
	}
	
	// Metodo aggiungi
	/*
	 * Questo metodo è un metodo bloccante in modo che 
	 * non aggiungino oggetti che non siano di tipo Integer
	 */
	@Override
	public boolean aggiungi(Object object) {
		return false;
	}
	
	// Metodo aggiungi
	/*
	 * Questo metodo aggiunge realmente l'elemento di tipo
	 * Integer
	 */
	public boolean aggiungi(Integer integer) {
		return super.aggiungi(integer);
	}
	
	// Metodo ordina
	/*
	 * Questo metodo permette il funzionamento dell'ordinamento
	 * tramite comparatore simulato
	 */
	@Override
	protected int ordina(Object elemento1, Object elemento2) {
		Integer i1 = (Integer)elemento1;
		Integer i2 = (Integer)elemento2;
		
		if (i1 < i2) return -1;
		if (i1 > i2) return 1;
		return 0;
	}
	
}
