/*
 * ValidarMunicipioRuleDependiente.java
 *
 * Created on 28 de marzo de 2007, 11:20 AM
 *
 * To change this template, choose Tools | Template Manager
 * and open the template in the editor.
 */

package com.fidufosyga.rules;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.util.Properties;

import com.fidufosyga.context.Context;

/**
 * 
 * @author Jsolano
 */
public class ValidarMunicipioRuleDependienteN39 extends AbstractRule {

	public boolean performValidation(String field, String registro[],
			String nombreArchivo) {
		String codigoNovedad = registro[new Integer((String) getParams()[0])
				.intValue()];
                
                  String portabilidad =  registro[13];
                  
		if (codigoNovedad.equals((String) getParams()[1])) {
			String codigoDepto = registro[new Integer((String) getParams()[2])
					.intValue()];
                           
                        if (Integer.parseInt(portabilidad) == 0 || field.isEmpty()){
                                  return false;
                          }else  {
			
                            if (Context.getContext().getAttribute(codigoDepto) == null) {
				Properties defaultProps = new Properties();
				FileInputStream in;

				try {
					File file = new File(System.getProperty("user.dir")
							+ File.separator + "departamentos" + File.separator
							+ codigoDepto + ".properties");
					if (file.exists()) {
						in = new FileInputStream(System.getProperty("user.dir")
								+ File.separator + "departamentos"
								+ File.separator + codigoDepto + ".properties");
						defaultProps.load(in);
						in.close();
						Context.getContext().addAttribute(codigoDepto,
								defaultProps);
					} else {
						return false;
					}

				} catch (FileNotFoundException e) {

					return false;
				} catch (IOException e) {

					return false;

				}

			}
			if (((Properties) Context.getContext().getAttribute(codigoDepto))
					.getProperty(field) != null) {
				return false;
			}
			return true;
		}
                
		
	}
            return false;
        }
}


        
        
