@Override public void initialize(URL location, ResourceBundle resources) { // Set measurement result into scene domainName.setText(StaticVars.currentDomainName); domainNameLabel.setText(StaticVars.currentLabel); domainNameResponseTime.setText(StaticVars.currentResponseTime + " second(s)"); domainNameDateMeasured.setText(String.valueOf(StaticVars.currentDate)); if (StaticVars.methodType == 1) { labelSiteComposition.setVisible(false); chartCompositionDangerousity.setVisible(false); } else { if (StaticVars.currentLabel.equals("normal")) { labelSiteComposition.setVisible(false); chartCompositionDangerousity.setVisible(false); } else { if (!StaticVars.currentLabel.equals("malicious (unknown type)") && !StaticVars.currentLabel.equals("unknown")) { Triplet<Double, Double, Double> compositionDangerousity = StaticVars.currentComposition; ObservableList<PieChart.Data> pieChartElements = FXCollections.observableArrayList(); pieChartElements.addAll( new PieChart.Data("Malware", compositionDangerousity.getValue0()), new PieChart.Data("Phishing", compositionDangerousity.getValue1()), new PieChart.Data("Spamming", compositionDangerousity.getValue2())); chartCompositionDangerousity.setData(pieChartElements); chartCompositionDangerousity.setLegendSide(Side.RIGHT); chartCompositionDangerousity.setLabelLineLength(10); } else { labelSiteComposition.setVisible(false); chartCompositionDangerousity.setVisible(false); } } } // Save this reputation result into eksternal file historySitesReputation thisResultReputation = new historySitesReputation(); thisResultReputation.setCompositionDangerousity(StaticVars.currentComposition); thisResultReputation.setLabelNormality(StaticVars.currentLabel); thisResultReputation.setResponseTime(Long.parseLong(StaticVars.currentResponseTime)); thisResultReputation.setMeasureDate(StaticVars.currentDate); switch (StaticVars.reputationType) { case 1: thisResultReputation.setReputationType("DNS"); break; case 2: thisResultReputation.setReputationType("Spesific"); break; case 3: thisResultReputation.setReputationType("Trust"); break; case 4: thisResultReputation.setReputationType("DNS+Spesific"); break; case 5: thisResultReputation.setReputationType("DNS+Trust"); break; case 6: thisResultReputation.setReputationType("Spesific+Trust"); break; case 7: thisResultReputation.setReputationType("DNS+Spesific+Trust"); break; } switch (StaticVars.methodType) { case 1: thisResultReputation.setMethodType("supervised"); break; case 2: thisResultReputation.setMethodType("unsupervised"); break; case 3: thisResultReputation.setMethodType("hybrid"); break; } List<Pair<String, historySitesReputation>> oldHistoryReputation = reputationResultController.loadHistoryReputation(); Pair<String, historySitesReputation> addedHistoryReputation = new Pair<String, historySitesReputation>( StaticVars.currentDomainName, thisResultReputation); oldHistoryReputation.add(addedHistoryReputation); reputationResultController.saveHistoryReputation(oldHistoryReputation); }
/** * Method for load history reputation from external file * * @return */ public static List<Pair<String, historySitesReputation>> loadHistoryReputation() { List<Pair<String, historySitesReputation>> listHistoryReputation = new ArrayList<Pair<String, historySitesReputation>>(); String rawContent = EksternalFile.getRawFileContent(pathHistoryReputation); if (!rawContent.isEmpty()) { StringTokenizer stringPerLine = new StringTokenizer(rawContent, "\n"); while (stringPerLine.hasMoreTokens()) { String line = stringPerLine.nextToken(); StringTokenizer elementEachLine = new StringTokenizer(line, "*"); int counter = 1; String domainName = ""; historySitesReputation thisHistoryReputation = new historySitesReputation(); Double malwareComposition = 0.0, phishingComposition = 0.0, spammingComposition = 0.0; while (elementEachLine.hasMoreTokens()) { String element = elementEachLine.nextToken(); switch (counter) { case 1: domainName = element; break; case 2: thisHistoryReputation.setLabelNormality(element); break; case 3: thisHistoryReputation.setResponseTime(Long.parseLong(element)); break; case 4: SimpleDateFormat formatter = new SimpleDateFormat("EEE MMM dd HH:mm:ss zzz yyyy", Locale.ENGLISH); try { Date measureDate = formatter.parse(element); thisHistoryReputation.setMeasureDate(measureDate); } catch (ParseException e) { e.printStackTrace(); } break; case 5: malwareComposition = Double.parseDouble(element); break; case 6: phishingComposition = Double.parseDouble(element); break; case 7: spammingComposition = Double.parseDouble(element); break; case 8: thisHistoryReputation.setMethodType(element); break; case 9: thisHistoryReputation.setReputationType(element); break; } counter++; } Triplet<Double, Double, Double> composition = new Triplet<Double, Double, Double>( malwareComposition, phishingComposition, spammingComposition); thisHistoryReputation.setCompositionDangerousity(composition); Pair<String, historySitesReputation> tupleHistoryReputation = new Pair<String, historySitesReputation>(domainName, thisHistoryReputation); listHistoryReputation.add(tupleHistoryReputation); } } return listHistoryReputation; }