File tree Expand file tree Collapse file tree 2 files changed +29
-17
lines changed
src/main/java/edu/uniandes/tsdl/mutapk/hashfunction/sha3 Expand file tree Collapse file tree 2 files changed +29
-17
lines changed Original file line number Diff line number Diff line change 11package edu .uniandes .tsdl .mutapk .hashfunction .sha3 ;
22
3- import java .util .HashMap ;
4- import java .util .Map ;
3+ import java .util .HashSet ;
4+ import java .util .Set ;
55
66/**
77 * University of Los Andes
@@ -18,7 +18,7 @@ public final class ApkHashOrder {
1818 private static volatile ApkHashOrder instance ;
1919
2020 private int id = 0 ;
21- private Map <ApkHashSeparator , ApkHashSeparator > apkHashesSeparator = new HashMap < ApkHashSeparator , ApkHashSeparator >();
21+ private Set <ApkHashSeparator > apkHashesSeparator = new HashSet < ApkHashSeparator >();
2222
2323 /**
2424 * Enforce private constructor
@@ -37,15 +37,19 @@ public static ApkHashOrder getInstance() {
3737 }
3838
3939 public synchronized ApkHashSeparator setApkHashSeparator (ApkHashSeparator nuevoApkHashSeparator ) {
40- ApkHashSeparator apkHashSeparatorDuplicate = apkHashesSeparator .get (nuevoApkHashSeparator );
41- if (apkHashSeparatorDuplicate != null && nuevoApkHashSeparator .equals (apkHashSeparatorDuplicate )) {
42- return apkHashSeparatorDuplicate ;
43- } else {
40+ boolean isDuplicate = apkHashesSeparator .contains (nuevoApkHashSeparator );
41+ if (isDuplicate ) {
42+ for (ApkHashSeparator apk : apkHashesSeparator ) {
43+ if (apk .equals (nuevoApkHashSeparator )) {
44+ return apk ;
45+ }
46+ }
47+ }else {
4448 nuevoApkHashSeparator .setId (id );
45- apkHashesSeparator .put ( nuevoApkHashSeparator , nuevoApkHashSeparator );
49+ apkHashesSeparator .add ( nuevoApkHashSeparator );
4650 id ++;
47- return null ;
4851 }
52+ return null ;
4953 }
5054
5155 public synchronized int getId () {
Original file line number Diff line number Diff line change @@ -56,25 +56,33 @@ public String getHashResource() {
5656 public int getMutanteId () {
5757 return mutanteId ;
5858 }
59-
59+
6060 @ Override
6161 public boolean equals (Object o ) {
6262 if (o == this ) {
6363 return true ;
64- } else if (!(o instanceof ApkHashSeparator )) {
64+ }
65+ if (o == null ){
6566 return false ;
66- } else {
67- ApkHashSeparator apkHashseparator = (ApkHashSeparator ) o ;
68- return hashManifest .equals (apkHashseparator .getHashManifest ())
69- && hashSmali .equals (apkHashseparator .getHashSmali ())
70- && hashResource .equals (apkHashseparator .getHashResource ());
7167 }
68+ if (!(o instanceof ApkHashSeparator )) {
69+ return false ;
70+ }
71+
72+ ApkHashSeparator apkHashseparator = (ApkHashSeparator ) o ;
73+ return (hashManifest .equals (apkHashseparator .getHashManifest ())
74+ && hashSmali .equals (apkHashseparator .getHashSmali ())
75+ && hashResource .equals (apkHashseparator .getHashResource ()));
7276
7377 }
7478
7579 @ Override
7680 public int hashCode () {
77- return 1 ;
81+ int hash = 7 ;
82+ hash = 31 * hash + hashManifest .hashCode ();
83+ hash = 31 * hash + hashSmali .hashCode ();
84+ hash = 31 * hash + hashResource .hashCode ();
85+ return hash ;
7886 }
7987
8088 @ Override
You can’t perform that action at this time.
0 commit comments