Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- * 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 Utils;
- import core.domain.RiskFactors.Metric;
- import domain.Coverages.Coverage;
- import core.domain.RiskFactors.RiskFactor;
- import core.domain.RiskFactors.STName;
- import core.domain.RiskFactors.SurroundingType;
- import static core.domain.RiskMatrixs.Attributes.Contribution.NEGATIVE;
- import static core.domain.RiskMatrixs.Attributes.Contribution.POSITIVE;
- import static core.domain.RiskMatrixs.Attributes.NeedOfAnalisys.FACULTATIVE;
- import static core.domain.RiskMatrixs.Attributes.NeedOfAnalisys.OBLIGATORY;
- import core.domain.RiskMatrixs.Attributes.RiskLevel;
- import core.domain.RiskMatrixs.Attributes.Scale;
- import core.domain.RiskMatrixs.Attributes.Weight;
- import core.domain.RiskMatrixs.Columns.BaseColumn;
- import core.domain.RiskMatrixs.Columns.ColumnBuilder;
- import core.domain.RiskMatrixs.Columns.DefinedColumn;
- import core.domain.RiskMatrixs.Columns.DefinedColumnBuilder;
- import core.domain.RiskMatrixs.Columns.DetailedColumn;
- import core.domain.RiskMatrixs.Line;
- import core.domain.RiskMatrixs.MatrixBuilder;
- import core.persistence.CoverageRepository;
- import core.persistence.PersistenceContext;
- import core.persistence.RiskFactorRepository;
- import core.persistence.SurroundingTypeRepository;
- import eapli.framework.domain.repositories.ConcurrencyException;
- import eapli.framework.domain.repositories.IntegrityViolationException;
- import java.io.IOException;
- import java.util.ArrayList;
- import java.util.List;
- import utils.FileReaderCSV;
- /**
- *
- * @author morei
- */
- public class FactorImport {
- private final CoverageRepository coverageRepository = PersistenceContext.repositories().coverageRepository();
- private final RiskFactorRepository riskFactor = PersistenceContext.repositories().riskRepository();
- private final SurroundingTypeRepository surroundingTypeRepository = PersistenceContext.repositories().surroundingRepository();
- public FactorImport() {
- }
- public boolean importF(String file) throws IOException, ConcurrencyException, IntegrityViolationException {
- FileReaderCSV fl = new FileReaderCSV(file);
- String[] f1 = fl.nextLine();
- String[] f2 = fl.nextLine();
- List<RiskFactor> listFactor = getListRiskFactor(f1, f2);
- nextLinesCoverage(fl, listFactor);
- return true;
- }
- public List<RiskFactor> getListRiskFactor(String[] f1, String[] f2) throws ConcurrencyException, IntegrityViolationException {
- List<RiskFactor> riskList = new ArrayList<>();
- int i = 0, j = 1;
- SurroundingType surroundingType = null;
- for (int k = 1; k < f2.length; k++) {
- if (surroundingType == null || !surroundingType.obtainSTName().toString().equals(f1[k])) {
- if (f1[k].isEmpty()) {
- surroundingType = surroundingTypeRepository.findByName(new STName(f1[i]));
- } else {
- surroundingType = surroundingTypeRepository.findByName(new STName(f1[k]));
- i = k;
- }
- }
- Metric metrics = new Metric(f2[j]);
- RiskFactor riskFactor1 = new RiskFactor(metrics, surroundingType.obtainSTName());
- j++;
- riskFactor.save(riskFactor1);
- riskList.add(riskFactor1);
- }
- return riskList;
- }
- public void nextLinesCoverage(FileReaderCSV fl, List<RiskFactor> listFactor) {
- }
- public List<Line> importFactorValues(String fileName, MatrixBuilder mb) throws IOException {
- FileReaderCSV fileReader = new FileReaderCSV(fileName);
- String line1[] = fileReader.nextLine();
- String line2[] = fileReader.nextLine();
- String lineP[] = null;
- List<RiskFactor> listRisk = getListRiskFactor(line1, line2);
- List<Line> lineList = new ArrayList<>();
- while ((lineP = fileReader.nextLine()) != null) {
- Coverage c = coverageRepository.findByName(lineP[0]);
- Line line = getLine(c, listRisk, lineP, line2[0], mb);
- lineList.add(line);
- }
- return lineList;
- }
- public Line getLine(Coverage c, List<RiskFactor> listRisk, String line[], String tipo, MatrixBuilder mb) {
- int i = 1;
- List<DefinedColumn> columnsList = new ArrayList<>();
- DefinedColumn df = null;
- DefinedColumnBuilder cb;
- for (RiskFactor rf : listRisk) {
- if (tipo.equalsIgnoreCase("Peso")) {
- cb = (DefinedColumnBuilder) ColumnBuilder.newColumnBuilder(ColumnBuilder.State.DEFINED);
- cb.setWeight(new Weight(Integer.parseInt(line[i])));
- cb.setRiskFactor(rf);
- mb.setColumn(c, (ColumnBuilder) cb);
- } else if (tipo.equalsIgnoreCase("Necessidade")) {
- if (line[i].equalsIgnoreCase("Obrigatorio")) {
- cb = (DefinedColumnBuilder) ColumnBuilder.newColumnBuilder(ColumnBuilder.State.DEFINED);
- cb.setNeed(OBLIGATORY);
- cb.setRiskFactor(rf);
- mb.setColumn(c, (BaseColumn) df);
- } else {
- cb = (DefinedColumnBuilder) ColumnBuilder.newColumnBuilder(ColumnBuilder.State.DEFINED);
- cb.setNeed(FACULTATIVE);
- cb.setRiskFactor(rf);
- mb.setColumn(c, (BaseColumn) df);
- }
- } else {
- if (line[i].equalsIgnoreCase("Positivo")) {
- cb = (DefinedColumnBuilder) ColumnBuilder.newColumnBuilder(ColumnBuilder.State.DEFINED);
- cb.setContribution(POSITIVE);
- cb.setRiskFactor(rf);
- mb.setColumn(c, (BaseColumn) df);
- } else {
- cb = (DefinedColumnBuilder) ColumnBuilder.newColumnBuilder(ColumnBuilder.State.DEFINED);
- cb.setContribution(NEGATIVE);
- cb.setRiskFactor(rf);
- mb.setColumn(c, (BaseColumn) df);
- }
- }
- columnsList.add(df);
- i++;
- }
- List<BaseColumn> column = new ArrayList<>();
- for (DefinedColumn def : columnsList) {
- column.add(def);
- }
- return new Line(column, c);
- }
- public boolean importMeaningfulFactors(String fileName, MatrixBuilder mb) throws IOException {
- FileReaderCSV fileReader = new FileReaderCSV(fileName);
- String line1[] = fileReader.nextLine();
- String line2[] = fileReader.nextLine();
- String lineP[] = null;
- List<RiskFactor> listRisk = getListRiskFactor(line1, line2);
- while ((lineP = fileReader.nextLine()) != null) {
- Coverage c = coverageRepository.findByName(lineP[0]);
- for (int i = 1; i < lineP.length; i++) {
- if (lineP[i].equalsIgnoreCase("Sim")) {
- mb.setColumn(c, new BaseColumn(listRisk.get(i - 1)));
- }
- }
- }
- return true;
- }
- public boolean imporBaseRiskMatrix(String fileName, MatrixBuilder matrixBuilder) throws IOException {
- FileReaderCSV fileReader = new FileReaderCSV(fileName);
- String firstLine[] = fileReader.nextLine();
- String secondLine[] = fileReader.nextLine();
- String line[] = null;
- List<RiskFactor> listRisk = getListRiskFactor(firstLine, secondLine);
- while ((line = fileReader.nextLine()) != null) {
- Coverage coverage = coverageRepository.findByName(line[0]);
- for (int i = 1; i < line.length; i++) {
- matrixBuilder.setColumn(coverage, new BaseColumn(listRisk.get(i - 1)));
- }
- }
- return true;
- }
- public boolean imporDetailedRiskMatrix(String fileName, MatrixBuilder matrixBuilder) throws IOException {
- FileReaderCSV fileReader = new FileReaderCSV(fileName);
- String firstLine[] = fileReader.nextLine();
- String secondLine[] = fileReader.nextLine();
- String line1[] = null;
- String line2[] = null;
- String line3[] = null;
- List<RiskFactor> listRisk = getListRiskFactor(firstLine, secondLine);
- while ((line1 = fileReader.nextLine()) != null && (line2 = fileReader.nextLine()) != null && (line3 = fileReader.nextLine()) != null) {
- Coverage coverage = coverageRepository.findByName(line1[0]);
- for (int i = 1; i < line1.length; i++) {
- matrixBuilder.setColumn(coverage, new DetailedColumn(listRisk.get(i), null, null, null, new Scale(new RiskLevel(Integer.parseInt(line1[i])), new RiskLevel(Integer.parseInt(line2[i])), new RiskLevel(Integer.parseInt(line3[i])))));
- }
- }
- return true;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement