Advertisement
moreiramota

Untitled

Apr 10th, 2019
126
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 8.85 KB | None | 0 0
  1. /*
  2. * To change this license header, choose License Headers in Project Properties.
  3. * To change this template file, choose Tools | Templates
  4. * and open the template in the editor.
  5. */
  6. package Utils;
  7.  
  8. import core.domain.RiskFactors.Metric;
  9. import domain.Coverages.Coverage;
  10. import core.domain.RiskFactors.RiskFactor;
  11. import core.domain.RiskFactors.STName;
  12. import core.domain.RiskFactors.SurroundingType;
  13. import static core.domain.RiskMatrixs.Attributes.Contribution.NEGATIVE;
  14. import static core.domain.RiskMatrixs.Attributes.Contribution.POSITIVE;
  15. import static core.domain.RiskMatrixs.Attributes.NeedOfAnalisys.FACULTATIVE;
  16. import static core.domain.RiskMatrixs.Attributes.NeedOfAnalisys.OBLIGATORY;
  17. import core.domain.RiskMatrixs.Attributes.RiskLevel;
  18. import core.domain.RiskMatrixs.Attributes.Scale;
  19. import core.domain.RiskMatrixs.Attributes.Weight;
  20. import core.domain.RiskMatrixs.Columns.BaseColumn;
  21. import core.domain.RiskMatrixs.Columns.ColumnBuilder;
  22. import core.domain.RiskMatrixs.Columns.DefinedColumn;
  23. import core.domain.RiskMatrixs.Columns.DefinedColumnBuilder;
  24. import core.domain.RiskMatrixs.Columns.DetailedColumn;
  25. import core.domain.RiskMatrixs.Line;
  26. import core.domain.RiskMatrixs.MatrixBuilder;
  27. import core.persistence.CoverageRepository;
  28. import core.persistence.PersistenceContext;
  29. import core.persistence.RiskFactorRepository;
  30. import core.persistence.SurroundingTypeRepository;
  31. import eapli.framework.domain.repositories.ConcurrencyException;
  32. import eapli.framework.domain.repositories.IntegrityViolationException;
  33. import java.io.IOException;
  34. import java.util.ArrayList;
  35. import java.util.List;
  36. import utils.FileReaderCSV;
  37.  
  38. /**
  39. *
  40. * @author morei
  41. */
  42. public class FactorImport {
  43.  
  44. private final CoverageRepository coverageRepository = PersistenceContext.repositories().coverageRepository();
  45. private final RiskFactorRepository riskFactor = PersistenceContext.repositories().riskRepository();
  46. private final SurroundingTypeRepository surroundingTypeRepository = PersistenceContext.repositories().surroundingRepository();
  47.  
  48. public FactorImport() {
  49. }
  50.  
  51. public boolean importF(String file) throws IOException, ConcurrencyException, IntegrityViolationException {
  52. FileReaderCSV fl = new FileReaderCSV(file);
  53. String[] f1 = fl.nextLine();
  54. String[] f2 = fl.nextLine();
  55. List<RiskFactor> listFactor = getListRiskFactor(f1, f2);
  56. nextLinesCoverage(fl, listFactor);
  57. return true;
  58.  
  59. }
  60.  
  61. public List<RiskFactor> getListRiskFactor(String[] f1, String[] f2) throws ConcurrencyException, IntegrityViolationException {
  62. List<RiskFactor> riskList = new ArrayList<>();
  63. int i = 0, j = 1;
  64. SurroundingType surroundingType = null;
  65. for (int k = 1; k < f2.length; k++) {
  66. if (surroundingType == null || !surroundingType.obtainSTName().toString().equals(f1[k])) {
  67. if (f1[k].isEmpty()) {
  68. surroundingType = surroundingTypeRepository.findByName(new STName(f1[i]));
  69. } else {
  70. surroundingType = surroundingTypeRepository.findByName(new STName(f1[k]));
  71. i = k;
  72. }
  73. }
  74. Metric metrics = new Metric(f2[j]);
  75. RiskFactor riskFactor1 = new RiskFactor(metrics, surroundingType.obtainSTName());
  76. j++;
  77. riskFactor.save(riskFactor1);
  78. riskList.add(riskFactor1);
  79. }
  80. return riskList;
  81. }
  82.  
  83. public void nextLinesCoverage(FileReaderCSV fl, List<RiskFactor> listFactor) {
  84.  
  85. }
  86.  
  87. public List<Line> importFactorValues(String fileName, MatrixBuilder mb) throws IOException {
  88. FileReaderCSV fileReader = new FileReaderCSV(fileName);
  89. String line1[] = fileReader.nextLine();
  90. String line2[] = fileReader.nextLine();
  91. String lineP[] = null;
  92. List<RiskFactor> listRisk = getListRiskFactor(line1, line2);
  93. List<Line> lineList = new ArrayList<>();
  94. while ((lineP = fileReader.nextLine()) != null) {
  95. Coverage c = coverageRepository.findByName(lineP[0]);
  96. Line line = getLine(c, listRisk, lineP, line2[0], mb);
  97. lineList.add(line);
  98. }
  99. return lineList;
  100. }
  101.  
  102. public Line getLine(Coverage c, List<RiskFactor> listRisk, String line[], String tipo, MatrixBuilder mb) {
  103. int i = 1;
  104. List<DefinedColumn> columnsList = new ArrayList<>();
  105. DefinedColumn df = null;
  106. DefinedColumnBuilder cb;
  107. for (RiskFactor rf : listRisk) {
  108. if (tipo.equalsIgnoreCase("Peso")) {
  109. cb = (DefinedColumnBuilder) ColumnBuilder.newColumnBuilder(ColumnBuilder.State.DEFINED);
  110. cb.setWeight(new Weight(Integer.parseInt(line[i])));
  111. cb.setRiskFactor(rf);
  112. mb.setColumn(c, (ColumnBuilder) cb);
  113. } else if (tipo.equalsIgnoreCase("Necessidade")) {
  114. if (line[i].equalsIgnoreCase("Obrigatorio")) {
  115. cb = (DefinedColumnBuilder) ColumnBuilder.newColumnBuilder(ColumnBuilder.State.DEFINED);
  116. cb.setNeed(OBLIGATORY);
  117. cb.setRiskFactor(rf);
  118. mb.setColumn(c, (BaseColumn) df);
  119. } else {
  120. cb = (DefinedColumnBuilder) ColumnBuilder.newColumnBuilder(ColumnBuilder.State.DEFINED);
  121. cb.setNeed(FACULTATIVE);
  122. cb.setRiskFactor(rf);
  123. mb.setColumn(c, (BaseColumn) df);
  124. }
  125. } else {
  126. if (line[i].equalsIgnoreCase("Positivo")) {
  127. cb = (DefinedColumnBuilder) ColumnBuilder.newColumnBuilder(ColumnBuilder.State.DEFINED);
  128. cb.setContribution(POSITIVE);
  129. cb.setRiskFactor(rf);
  130. mb.setColumn(c, (BaseColumn) df);
  131. } else {
  132. cb = (DefinedColumnBuilder) ColumnBuilder.newColumnBuilder(ColumnBuilder.State.DEFINED);
  133. cb.setContribution(NEGATIVE);
  134. cb.setRiskFactor(rf);
  135. mb.setColumn(c, (BaseColumn) df);
  136. }
  137. }
  138. columnsList.add(df);
  139. i++;
  140. }
  141. List<BaseColumn> column = new ArrayList<>();
  142. for (DefinedColumn def : columnsList) {
  143. column.add(def);
  144. }
  145. return new Line(column, c);
  146. }
  147.  
  148. public boolean importMeaningfulFactors(String fileName, MatrixBuilder mb) throws IOException {
  149. FileReaderCSV fileReader = new FileReaderCSV(fileName);
  150. String line1[] = fileReader.nextLine();
  151. String line2[] = fileReader.nextLine();
  152. String lineP[] = null;
  153. List<RiskFactor> listRisk = getListRiskFactor(line1, line2);
  154. while ((lineP = fileReader.nextLine()) != null) {
  155. Coverage c = coverageRepository.findByName(lineP[0]);
  156. for (int i = 1; i < lineP.length; i++) {
  157. if (lineP[i].equalsIgnoreCase("Sim")) {
  158. mb.setColumn(c, new BaseColumn(listRisk.get(i - 1)));
  159. }
  160. }
  161. }
  162. return true;
  163. }
  164.  
  165. public boolean imporBaseRiskMatrix(String fileName, MatrixBuilder matrixBuilder) throws IOException {
  166. FileReaderCSV fileReader = new FileReaderCSV(fileName);
  167. String firstLine[] = fileReader.nextLine();
  168. String secondLine[] = fileReader.nextLine();
  169. String line[] = null;
  170. List<RiskFactor> listRisk = getListRiskFactor(firstLine, secondLine);
  171. while ((line = fileReader.nextLine()) != null) {
  172. Coverage coverage = coverageRepository.findByName(line[0]);
  173. for (int i = 1; i < line.length; i++) {
  174. matrixBuilder.setColumn(coverage, new BaseColumn(listRisk.get(i - 1)));
  175.  
  176. }
  177. }
  178.  
  179. return true;
  180. }
  181.  
  182. public boolean imporDetailedRiskMatrix(String fileName, MatrixBuilder matrixBuilder) throws IOException {
  183. FileReaderCSV fileReader = new FileReaderCSV(fileName);
  184. String firstLine[] = fileReader.nextLine();
  185. String secondLine[] = fileReader.nextLine();
  186. String line1[] = null;
  187. String line2[] = null;
  188. String line3[] = null;
  189.  
  190. List<RiskFactor> listRisk = getListRiskFactor(firstLine, secondLine);
  191. while ((line1 = fileReader.nextLine()) != null && (line2 = fileReader.nextLine()) != null && (line3 = fileReader.nextLine()) != null) {
  192. Coverage coverage = coverageRepository.findByName(line1[0]);
  193. for (int i = 1; i < line1.length; i++) {
  194. 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])))));
  195.  
  196. }
  197. }
  198.  
  199. return true;
  200. }
  201.  
  202. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement