/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * 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;
import static com.fidufosyga.rules.ValidaDireccionNov.DIRECCION;

/**
 *
 * @author Marinela.QuinteroT1
 

*/

public class ValidaDireccionNov extends AbstractRule {
    public static final String DIRECCION = "DIRECCION";

    public boolean performValidation(String field, String registro[], String nombreArchivo) { 
        
        String campoTipoNovedad = (String) getParams()[0];
        int campoDepNovedad = Integer.parseInt(campoTipoNovedad);
        String TipoNovedad = registro[campoDepNovedad];
        
        String Novedad = (String) getParams()[1];

        if (TipoNovedad.equals(Novedad)) {
            
            // Acepta vacío
            if (field == null || field.trim().isEmpty()) {
                return false;
            }
            if (field.length() > 100) {
                return true;
            }
            
            if (Context.getContext().getAttribute(DIRECCION) == null) {
                Properties defaultProps = new Properties();
                FileInputStream in;

                try {
                    in = new FileInputStream(System.getProperty("user.dir") + 
                            File.separator + "Municipios" + File.separator + "Direccion.properties");
                    defaultProps.load(in);
                    in.close();
                    Context.getContext().addAttribute(DIRECCION, defaultProps);
                } catch (IOException e) {
                    return false;
                }
            }

            String PrimerPalabra = field.trim().split("\\s+")[0]; // Obtener la primera palabra limpia
            Properties direccionProperties = (Properties) Context.getContext().getAttribute(DIRECCION);

            if (direccionProperties.containsKey(PrimerPalabra)) {
                return false;
            }
            return true;
        }

        return false;
    }
}


