//package poo.buscadores;

import java.util.ArrayList;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

/**
 * Superclass para distintas implementaciones de algoritmos de Busqueda.
 */
public abstract class Buscador {
	/** Obtiene el objeto (obj) de el arreglo de objetos(A).	 */

	public abstract int buscar(Object [] A, Object obj);	
	/** Obtiene el número de comparaciones realizadas durante la busqueda.
	 * @return número de comparaciones hechas para ordenar el arreglo.
	 */

	public abstract int getNumComparaciones();


	public int[] match(Object[] A, String palabra) {
		int retorno[] = {-1};
		palabra = palabra.toUpperCase();
		ArrayList<Integer> indices = new ArrayList<Integer>();

		for(int i = 0; i < A.length; i++){
			Pattern  pattern = Pattern.compile(palabra.toUpperCase());
			Matcher matcher = pattern.matcher(A[i].toString().toUpperCase());
			if (matcher.find()){
				indices.add(i);
			}
		}

		if(indices.size()>0 ){
			retorno = new int[indices.size()]; 
			for(int i = 0; i< indices.size(); i++)
				retorno[i] = Integer.parseInt(indices.get(i).toString());
			
		}

		return retorno;
	}


}
