/*
 * PertenenciaEtnicaNovedadDependiente.java
 *
 * Created on 25 de marzo de 2007, 08:40 PM
 *
 * To change this template, choose Tools | Template Manager
 * and open the template in the editor.
 */

package com.fidufosyga.rules;

/**
 * 
 * @author Julian
 */
public class PertenenciaEtnicaNovedadDependiente extends AbstractRule {

	/** Creates a new instance of PertenenciaEtnicaNovedadDependiente */
	public PertenenciaEtnicaNovedadDependiente() {
	}

	// COL?1=?2 AND SUBSTRING(COL?3, ?4,1)<>?5 AND @campo=?6
	// 9,N21,4,AS,MS,5,6,D,1
	public boolean performValidation(String field, String registro[],
			String nombreArchivo) {

		if (registro[new Integer((String) getParams()[0]).intValue()]
				.equals(getParams()[1])) {
			String otroCampo = registro[new Integer((String) getParams()[2])
					.intValue()];
			String valorEsperadoOtroCampo = (String) getParams()[3];
			String valorEsperadoOtroCampo2 = (String) getParams()[4];

			String stringACortar = registro[new Integer((String) getParams()[5])
					.intValue()];
			int posACortar = new Integer((String) getParams()[6]).intValue() - 1;
			int posFinal = new Integer((String) getParams()[6]).intValue();
			String letra = (String) getParams()[7];
			String valorDelCampo = (String) getParams()[8];
			try {
				if (field.equals(valorDelCampo))
					if (((otroCampo.equals(valorEsperadoOtroCampo) || otroCampo
							.equals(valorEsperadoOtroCampo2)) && !stringACortar
							.substring(posACortar, posFinal).equals(letra)))
						return true;

				// if(otroCampo.equals(valorEsperadoOtroCampo) &&
				// !stringACortar.substring(posACortar, posFinal).equals(letra)
				// && field.equals(valorDelCampo))
				// return true;
			} catch (Exception e) {
				return true;
			}

		}

		return false;
	}

}
