comparison artifacts/src/main/java/org/dive4elements/river/exports/minfo/BedQualityExporter.java @ 7625:e999a920f0e5

Refactoring: extracted method
author Felix Wolfsteller <felix.wolfsteller@intevation.de>
date Mon, 02 Dec 2013 10:42:43 +0100
parents 505737373ba4
children 182f78d5f3eb
comparison
equal deleted inserted replaced
7624:3dd505477fcc 7625:e999a920f0e5
57 57
58 public BedQualityExporter() { 58 public BedQualityExporter() {
59 results = new BedQualityResult[0]; 59 results = new BedQualityResult[0];
60 } 60 }
61 61
62 /** Populate param kms with kms from param beds and loads, return it. */
63 private TDoubleArrayList populateKmList(BedDiameterResult[] beds,
64 BedloadDiameterResult[] loads,
65 TDoubleArrayList kms) {
66 for (int j = 0; j < beds.length; j++) {
67 TDoubleArrayList bkms = beds[j].getKms();
68 for (int k = 0, K = bkms.size(); k < K; k++) {
69 double km = bkms.get(k);
70 if (!kms.contains(km)) { // XXX: O(N^2)
71 kms.add(km);
72 }
73 }
74 }
75 for (int j = 0; j < loads.length; j++) {
76 TDoubleArrayList lkms = loads[j].getKms();
77 for (int k = 0, L = lkms.size(); k < L; k++) {
78 double km = lkms.get(k);
79 if (!kms.contains(km)) { // XXX: O(N^2)
80 kms.add(km);
81 }
82 }
83 }
84 return kms;
85 }
62 86
63 private List<double[]> createDataRows() { 87 private List<double[]> createDataRows() {
88 // Calculate how many columns and rows we need.
64 TDoubleArrayList kms = new TDoubleArrayList(); 89 TDoubleArrayList kms = new TDoubleArrayList();
90
65 int cols = 1; 91 int cols = 1;
66 for (BedQualityResult result : results) { 92 for (BedQualityResult result : results) {
67 BedDiameterResult[] beds = result.getBedResults(); 93 BedDiameterResult[] beds = result.getBedResults();
68 for (int j = 0; j < beds.length; j++) {
69 TDoubleArrayList bkms = beds[j].getKms();
70 for (int k = 0, K = bkms.size(); k < K; k++) {
71 double km = bkms.get(k);
72 if (!kms.contains(km)) { // XXX: O(N^2)
73 kms.add(km);
74 }
75 }
76 }
77 BedloadDiameterResult[] loads = result.getBedloadResults(); 94 BedloadDiameterResult[] loads = result.getBedloadResults();
78 for (int j = 0; j < loads.length; j++) { 95
79 TDoubleArrayList lkms = loads[j].getKms(); 96 kms = populateKmList(beds, loads, kms);
80 for (int k = 0, L = lkms.size(); k < L; k++) { 97
81 double km = lkms.get(k);
82 if (!kms.contains(km)) { // XXX: O(N^2)
83 kms.add(km);
84 }
85 }
86 }
87 cols += beds.length * 2; 98 cols += beds.length * 2;
88 cols += loads.length;
89 if (beds.length > 0) { 99 if (beds.length > 0) {
90 cols += 4; 100 cols += 4;
91 } 101 }
102 cols += loads.length;
92 } 103 }
93 104
94 kms.sort(); 105 kms.sort();
106
95 List<double[]> rows = new ArrayList<double[]>(kms.size()); 107 List<double[]> rows = new ArrayList<double[]>(kms.size());
96 for (int i = 0, K = kms.size(); i < K; i++) { 108 for (int i = 0, K = kms.size(); i < K; i++) {
97 double[] row = new double[cols]; 109 double[] row = new double[cols];
98 double km = kms.get(i); 110 double km = kms.get(i);
99 row[0] = km; 111 row[0] = km;

http://dive4elements.wald.intevation.org