br.edu.utfpr.cm.JGitMinerWeb.services.metric.auxiliary.AuxCoChangeMetrics.java Source code

Java tutorial

Introduction

Here is the source code for br.edu.utfpr.cm.JGitMinerWeb.services.metric.auxiliary.AuxCoChangeMetrics.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 br.edu.utfpr.cm.JGitMinerWeb.services.metric.auxiliary;

import br.edu.utfpr.cm.JGitMinerWeb.services.metric.auxiliary.count.PeriodOfDay;
import br.edu.utfpr.cm.JGitMinerWeb.dao.GenericDao;
import br.edu.utfpr.cm.JGitMinerWeb.model.miner.EntityPullRequest;
import br.edu.utfpr.cm.JGitMinerWeb.model.miner.EntityRepositoryCommit;
import br.edu.utfpr.cm.JGitMinerWeb.services.matrix.auxiliary.AuxPairOfFiles;
import com.google.common.collect.Lists;
import java.util.Collection;
import java.util.List;
import org.joda.time.DateTime;
import org.joda.time.DateTimeZone;

/**
 *
 * @author geazzy
 */
public class AuxCoChangeMetrics {

    private AuxPairOfFiles auxPairOfFiles;
    private EntityRepositoryCommit repositoryCommitFile1;
    private EntityRepositoryCommit repositoryCommitFile2;
    private DateTime dateFile1;
    private DateTime dateFile2;
    private EntityPullRequest pullRequest;

    public AuxCoChangeMetrics(AuxPairOfFiles auxCoChanged, GenericDao dao) {

        this.pullRequest = AuxPullRequest.getPullRequestByID(dao, auxCoChanged.getIdPullRequest());
        this.auxPairOfFiles = auxCoChanged;
        this.repositoryCommitFile1 = AuxRepositoryCommit.getRepositoryCommitBySha(dao,
                this.auxPairOfFiles.getshaCommitFile1());
        this.repositoryCommitFile2 = AuxRepositoryCommit.getRepositoryCommitBySha(dao,
                this.auxPairOfFiles.getshaCommitFile2());

        //List<EntityRepositoryCommit> list = Lists.newArrayList(pullRequest.getRepositoryCommits());

        this.dateFile1 = new DateTime(repositoryCommitFile1.getCommit().getAuthor().getDateCommitUser(),
                DateTimeZone.UTC);
        this.dateFile2 = new DateTime(repositoryCommitFile2.getCommit().getAuthor().getDateCommitUser(),
                DateTimeZone.UTC);

    }

    public EntityRepositoryCommit getRepositoryCommitFile1() {
        return repositoryCommitFile1;
    }

    public EntityRepositoryCommit getRepositoryCommitFile2() {
        return repositoryCommitFile2;
    }

    //    public void setPeriodOfDay() {
    //    
    // 
    //
    //        System.out.println("url arq1: " + repositoryCommitFile1.getCommit().getUrl());
    //        System.out.println("hora do dia arq 1: " + dateFile1.getHourOfDay());
    //        System.out.println("periodo do dia: " + getPedriodOfDayFile1());
    //
    //        System.out.println("url arq2: " + repositoryCommitFile2.getCommit().getUrl());
    //        System.out.println("hora do dia arq 2: " + dateFile2.getHourOfDay());
    //        System.out.println("periodo do dia: " + getPedriodOfDayFile2());
    //
    //    }

    public AuxPairOfFiles getAuxPairOfFiles() {
        return auxPairOfFiles;
    }

    public PeriodOfDay getPedriodOfDayFile1() {
        return getPeriodOfDay(dateFile1);
    }

    public PeriodOfDay getPedriodOfDayFile2() {
        return getPeriodOfDay(dateFile2);
    }

    public Integer getDayOfWeekFile1() {
        return getDayOfWeek(dateFile1);
    }

    public Integer getDayOfWeekFile2() {
        return getDayOfWeek(dateFile2);
    }

    public Integer getDayOfMonthFile1() {
        return getDayOfMonth(dateFile1);
    }

    public Integer getDayOfMonthFile2() {
        return getDayOfMonth(dateFile2);
    }

    public Integer getMonthOfModFile1() {
        return getMonth(dateFile1);
    }

    public Integer getMonthOfModFile2() {
        return getMonth(dateFile1);
    }

    private Integer getDayOfWeek(DateTime dateFile) {
        return dateFile.getDayOfWeek();
    }

    private Integer getDayOfMonth(DateTime dateFile) {
        return dateFile.getDayOfMonth();
    }

    private Integer getMonth(DateTime dateFile) {
        return dateFile.getMonthOfYear();
    }

    private PeriodOfDay getPeriodOfDay(DateTime dateFile) {

        if (dateFile.getHourOfDay() >= 6 && dateFile.getHourOfDay() < 12) {
            return PeriodOfDay.MANHA;
        } else if (dateFile.getHourOfDay() >= 12 && dateFile.getHourOfDay() < 18) {
            return PeriodOfDay.TARDE;
        } else if (dateFile.getHourOfDay() >= 18 && dateFile.getHourOfDay() < 24) {
            return PeriodOfDay.NOITE;
        } else if (dateFile.getHourOfDay() >= 0 && dateFile.getHourOfDay() < 6) {
            return PeriodOfDay.MADRUGADA;
        } else {
            return null;
        }
    }

    public Integer getNumArqMod() {

        return this.repositoryCommitFile1.getFiles().size();
    }

    public void getNumDevModSameFile() {
        //quantidade de dev diferentes que modificaram o msmo arquivo.
    }

    public EntityPullRequest getPullRequest() {
        return pullRequest;
    }

    public void setPullRequest(EntityPullRequest pullRequest) {
        this.pullRequest = pullRequest;
    }

    @Override
    public String toString() {
        return auxPairOfFiles.getFile1() + ";" + auxPairOfFiles.getFile2();
    }

    public DateTime getDateFile1() {
        return dateFile1;
    }

    public DateTime getDateFile2() {
        return dateFile2;
    }

}