laboratorio_2_sd.IndiceInvertido.java Source code

Java tutorial

Introduction

Here is the source code for laboratorio_2_sd.IndiceInvertido.java

Source

/*
 * 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 laboratorio_2_sd;

import com.mongodb.BasicDBList;
import com.mongodb.BasicDBObject;
import java.util.ArrayList;

/**
 *
 * @author uo
 */
public class IndiceInvertido {
    int idPalabra;
    ArrayList<Frecuencia> frecuencias; //(idDoc,frecuencia)

    public IndiceInvertido(int idPalabra, int frecuencia, int idDocumento) {
        this.frecuencias = new ArrayList<>();
        Frecuencia frec = new Frecuencia(frecuencia, idDocumento);
        this.frecuencias.add(frec);
        this.idPalabra = idPalabra;

    }

    public void ActualizarFrecuencias(int frecuencia, int idDocumento) {
        Frecuencia fTemp = new Frecuencia(frecuencia, idDocumento);
        int contador = 0;
        int indice = 0;
        for (int i = 0; i < frecuencias.size(); i++) {
            if (frecuencias.get(i).idDocumento == idDocumento) {
                contador = 1;
                indice = i;
                break;
            }
        }
        if (contador == 1) {
            frecuencias.get(indice).frecuencia++;
        } else {
            frecuencias.add(fTemp);
        }
    }

    public IndiceInvertido(BasicDBObject DBObject) {
        this.idPalabra = DBObject.getInt("idPalabra");
        BasicDBList frecuenciasDB = (BasicDBList) DBObject.get("frecuencias");
        this.frecuencias = new ArrayList<>();
        for (Object f : frecuenciasDB) {
            Frecuencia fTemp = new Frecuencia((BasicDBObject) f);
            this.frecuencias.add(fTemp);
        }
    }

    public void print() {
        System.out.println("=====IndiceInvertido======");
        System.out.println("idPalabra: " + idPalabra);
        for (int i = 0; i < frecuencias.size(); i++) {
            frecuencias.get(i).print();
        }
    }

    public BasicDBObject toDBObject() {
        BasicDBObject dBObject = new BasicDBObject();
        dBObject.append("idPalabra", this.idPalabra);
        BasicDBList frecuenciasDB = new BasicDBList();
        for (int i = 0; i < frecuencias.size(); i++) {
            frecuenciasDB.add(frecuencias.get(i).toDBObject());
        }
        dBObject.append("frecuencias", frecuenciasDB);

        return dBObject;
    }

}