diff --git a/src/graphtea/extensions/AlgorithmUtils.java b/src/graphtea/extensions/AlgorithmUtils.java index 249d8417..89d18ac3 100755 --- a/src/graphtea/extensions/AlgorithmUtils.java +++ b/src/graphtea/extensions/AlgorithmUtils.java @@ -50,9 +50,11 @@ public static void resetVertexMarks(GraphModel g) { public static boolean isConnected(GraphModel g) { ArrayList vs = new ArrayList<>(); int[] parent = new int[g.getVerticesCount()]; - for(int i=0;i < g.getVerticesCount();i++) parent[i] = -1; + for (int i = 0; i < g.getVerticesCount(); i++) { + parent[i] = -1; + } dfs(g, 0, vs, parent); - return Arrays.stream(vs.toArray()).distinct().toArray().length == g.getVerticesCount(); + return vs.stream().distinct().count() == g.getVerticesCount(); } /** @@ -428,17 +430,19 @@ public static String getEigenValues(GraphModel g) { EigenvalueDecomposition ed = A.eig(); double[] rv = ed.getRealEigenvalues(); double[] iv = ed.getImagEigenvalues(); - String res = ""; + StringBuilder res = new StringBuilder(); for (int i = 0; i < rv.length; i++) { - if (iv[i] != 0) - res +="" + AlgorithmUtils.round(rv[i],10) + " + " + AlgorithmUtils.round(iv[i],10) + "i"; - else - res += "" + AlgorithmUtils.round(rv[i],10); - if(i!=rv.length-1) { - res += ","; + if (iv[i] != 0) { + res.append(AlgorithmUtils.round(rv[i], 10)).append(" + ") + .append(AlgorithmUtils.round(iv[i], 10)).append("i"); + } else { + res.append(AlgorithmUtils.round(rv[i], 10)); + } + if (i != rv.length - 1) { + res.append(","); } } - return res; + return res.toString(); } /** @@ -495,25 +499,27 @@ public static String getEigenValues(Matrix A) { EigenvalueDecomposition ed = A.eig(); double[] rv = ed.getRealEigenvalues(); double[] iv = ed.getImagEigenvalues(); - String res = ""; - List EigenValues = new ArrayList<>(); + StringBuilder res = new StringBuilder(); + List eigenValues = new ArrayList<>(); for (int i = 0; i < rv.length; i++) { - if (iv[i] != 0) - res +="" + AlgorithmUtils.round(rv[i],10) + " + " + AlgorithmUtils.round(iv[i],10) + "i"; - else - EigenValues.add(AlgorithmUtils.round(rv[i],10)); - } - if(EigenValues.size() > 0) { - res = ""; - EigenValues.sort((aDouble, t1) -> -aDouble.compareTo(t1)); - for (int i = 0; i < EigenValues.size(); i++) { - res += EigenValues.get(i); - if(i != EigenValues.size() - 1) { - res+=","; + if (iv[i] != 0) { + res.append(AlgorithmUtils.round(rv[i], 10)).append(" + ") + .append(AlgorithmUtils.round(iv[i], 10)).append("i"); + } else { + eigenValues.add(AlgorithmUtils.round(rv[i], 10)); + } + } + if (!eigenValues.isEmpty()) { + res = new StringBuilder(); + eigenValues.sort((a, b) -> -a.compareTo(b)); + for (int i = 0; i < eigenValues.size(); i++) { + res.append(eigenValues.get(i)); + if (i != eigenValues.size() - 1) { + res.append(","); } } } - return res; + return res.toString(); } // get kth minimum degree diff --git a/src/graphtea/extensions/io/GraphSaveObject.java b/src/graphtea/extensions/io/GraphSaveObject.java index a47a9427..b90492ba 100755 --- a/src/graphtea/extensions/io/GraphSaveObject.java +++ b/src/graphtea/extensions/io/GraphSaveObject.java @@ -5,9 +5,9 @@ import graphtea.graph.graph.GraphModel; import graphtea.graph.graph.Vertex; -import javax.xml.bind.DatatypeConverter; import java.io.*; -import java.util.Vector; +import java.util.ArrayList; +import java.util.Base64; /** * Created by rostam on 18.12.15. @@ -22,8 +22,8 @@ public boolean equals(Object obj) { } else return false; } - public Vector vs = new Vector<>(); - Vector es = new Vector<>(); + public ArrayList vs = new ArrayList<>(); + ArrayList es = new ArrayList<>(); boolean directed = false; String label = ""; public GraphSaveObject(GraphModel g) { @@ -71,15 +71,15 @@ public static byte[] getBytesOfGraphSaveObject(GraphSaveObject gso) { } public static String graph2String(GraphModel g){ - return DatatypeConverter.printBase64Binary(getBytesOfGraph(g)); + return Base64.getMimeEncoder().encodeToString(getBytesOfGraph(g)); } public static GraphModel String2Graph(String s){ - return getGraphFromBytes(DatatypeConverter.parseBase64Binary(s)); + return getGraphFromBytes(Base64.getMimeDecoder().decode(s)); } public static GraphSaveObject string2GraphSaveObject(String s){ - return getGraphSaveOobjectfromBytes(DatatypeConverter.parseBase64Binary(s)); + return getGraphSaveOobjectfromBytes(Base64.getMimeDecoder().decode(s)); } public static GraphSaveObject getGraphSaveOobjectfromBytes(byte[] b){ diff --git a/src/graphtea/graph/old/ArrowHandler.java b/src/graphtea/graph/old/ArrowHandler.java index aee39d24..682db7f9 100755 --- a/src/graphtea/graph/old/ArrowHandler.java +++ b/src/graphtea/graph/old/ArrowHandler.java @@ -106,8 +106,8 @@ public GraphPreferences GraphPrefFactory() { return new GraphPreferences(this.getClass().getSimpleName(), this, "Graph Drawings"); } - public HashMap defineEligibleValuesForSettings(HashMap objectValues) { - ArrayX t = new ArrayX(3); + public HashMap> defineEligibleValuesForSettings(HashMap> objectValues) { + ArrayX t = new ArrayX<>(3); t.addValidValue(10); t.addValidValue(20); t.addValidValue(30); diff --git a/src/graphtea/platform/extension/ExtensionClassLoader.java b/src/graphtea/platform/extension/ExtensionClassLoader.java index 28a4d199..6c3a7759 100755 --- a/src/graphtea/platform/extension/ExtensionClassLoader.java +++ b/src/graphtea/platform/extension/ExtensionClassLoader.java @@ -4,8 +4,8 @@ // Distributed under the terms of the GNU General Public License (GPL): http://www.gnu.org/licenses/ package graphtea.platform.extension; -import java.util.ArrayList; -import java.util.List; +import java.util.ArrayList; +import java.util.List; import graphtea.platform.StaticUtils; import graphtea.platform.core.exception.ExceptionHandler; @@ -22,7 +22,7 @@ */ public class ExtensionClassLoader extends ClassLoader { public Map classesData = new HashMap<>(); - Map classes = new HashMap<>(); + Map> classes = new HashMap<>(); List unknownFiles = new ArrayList<>(); public static URLClassLoader classLoader; public static ClassLoader cl; @@ -31,7 +31,7 @@ public ExtensionClassLoader(String dirPath) { loadClasses(dirPath); } - public Collection getLoadedClasses() { + public Collection> getLoadedClasses() { return classes.values(); } @@ -60,14 +60,16 @@ private void loadClassFiles(String dir, String pack) { else if (file1.getName().endsWith(".class")) try { String name; - if (pack.length() > 0) + if (pack.length() > 0) { name = pack.substring(1) + "."; - else + } else { name = ""; + } name = name + file1.getName().substring(0, file1.getName().length() - 6); byte[] data = new byte[(int) file1.length()]; - FileInputStream fis = new FileInputStream(file1); - fis.read(data); + try (FileInputStream fis = new FileInputStream(file1)) { + fis.read(data); + } classesData.put(name, data); urls.add(file1.toURI().toURL()); } catch (IOException e) { @@ -85,26 +87,28 @@ private void loadClasses(String dirPath) { // defineClasses(); } - public Class findClass(String name) throws ClassNotFoundException { - Class ret = null; - if (!classesData.containsKey(name)) + public Class findClass(String name) throws ClassNotFoundException { + Class ret = null; + if (!classesData.containsKey(name)) { ret = getParent().loadClass(name); + } if (ret == null && !classes.containsKey(name)) { byte[] data = classesData.get(name); - Class c = defineClass(name, data, 0, data.length); + Class c = defineClass(name, data, 0, data.length); classes.put(name, c); } ret = classes.get(name); - if (ret == null) + if (ret == null) { return classLoader.loadClass(name); - else + } else { return ret; + } } - public Collection getClassesImplementing(Class cl) { - Collection col = new ArrayList<>(); - for (Map.Entry entry1 : classes.entrySet()) { - Class c = entry1.getValue(); + public Collection> getClassesImplementing(Class cl) { + Collection> col = new ArrayList<>(); + for (Map.Entry> entry1 : classes.entrySet()) { + Class c = entry1.getValue(); if (StaticUtils.isImplementing(c, cl)) col.add(c); } @@ -131,36 +135,23 @@ public static void copyInputStream(InputStream in, OutputStream out) * @param zipFileName The given zipped file name */ public static void unZip(String zipFileName, String destDir) { - System.out.println(zipFileName); - Enumeration entries; - ZipFile zipFile; - - try { - zipFile = new ZipFile(zipFileName); - - entries = zipFile.entries(); - - while(entries.hasMoreElements()) { - ZipEntry entry = (ZipEntry)entries.nextElement(); - - if(entry.isDirectory()) { - // Assume directories are stored parents first then children. -// System.err.println("Extracting directory: " + entry.getName()); - // This is not robust, just for demonstration purposes. - (new File(destDir+File.separator+entry.getName())).mkdirs(); - continue; - } - - System.out.println("Extracting file: " + destDir+entry.getName()); - copyInputStream(zipFile.getInputStream(entry), - new BufferedOutputStream(new FileOutputStream(destDir+File.separator+entry.getName()))); + try (ZipFile zipFile = new ZipFile(zipFileName)) { + Enumeration entries = zipFile.entries(); + while (entries.hasMoreElements()) { + ZipEntry entry = entries.nextElement(); + if (entry.isDirectory()) { + new File(destDir + File.separator + entry.getName()).mkdirs(); + continue; + } + try (InputStream in = zipFile.getInputStream(entry); + OutputStream out = new BufferedOutputStream( + new FileOutputStream(destDir + File.separator + entry.getName()))) { + copyInputStream(in, out); + } + } + } catch (IOException ioe) { + ExceptionHandler.catchException(ioe); } - - zipFile.close(); - } catch (IOException ioe) { - System.err.println("Unhandled exception:"); - ExceptionHandler.catchException(ioe); - } } diff --git a/src/graphtea/platform/preferences/AbstractPreference.java b/src/graphtea/platform/preferences/AbstractPreference.java index d6208d66..08945cc5 100755 --- a/src/graphtea/platform/preferences/AbstractPreference.java +++ b/src/graphtea/platform/preferences/AbstractPreference.java @@ -30,7 +30,7 @@ public AbstractPreference(String name, Preferences pref, String category) { public NotifiableAttributeSetImpl attributeSet = new NotifiableAttributeSetImpl(); - protected void putAttribute(String name, ArrayX values) { + protected void putAttribute(String name, ArrayX values) { attributeSet.put(name, values); } @@ -45,7 +45,7 @@ protected T getAttribute(String name) { } - public abstract void defineAttributes(HashMap objectValues); + public abstract void defineAttributes(HashMap> objectValues); public abstract void defineListeners(AttributeListener al); diff --git a/src/graphtea/platform/preferences/GraphPreferences.java b/src/graphtea/platform/preferences/GraphPreferences.java index fbe573ae..9f38987a 100755 --- a/src/graphtea/platform/preferences/GraphPreferences.java +++ b/src/graphtea/platform/preferences/GraphPreferences.java @@ -35,7 +35,7 @@ public GraphPreferences(String name, HashSet oneInstances, String catego defineListeners(this); } - public void defineAttributes(HashMap objectValues) { + public void defineAttributes(HashMap> objectValues) { for (Object o : objectValues.keySet()) { putAttribute(o.toString(), objectValues.get(o)); @@ -50,10 +50,10 @@ public void defineAttributes(HashMap objectValues, boolean t) { } } - public void defineMultipleAttributes(HashMap> map) { + public void defineMultipleAttributes(HashMap>> map) { for (Object o : map.keySet()) { - HashMap hashMap = map.get(o); + HashMap> hashMap = map.get(o); for (Object fields : hashMap.keySet()) { putAttribute(o.toString() + "*" + fields.toString(), hashMap.get(fields)); diff --git a/src/graphtea/platform/preferences/UserDefinedEligiblity.java b/src/graphtea/platform/preferences/UserDefinedEligiblity.java index 179fd59f..cd2b1ab4 100755 --- a/src/graphtea/platform/preferences/UserDefinedEligiblity.java +++ b/src/graphtea/platform/preferences/UserDefinedEligiblity.java @@ -14,5 +14,5 @@ public interface UserDefinedEligiblity { GraphPreferences GraphPrefFactory(); - HashMap defineEligibleValuesForSettings(HashMap objectValues); + HashMap> defineEligibleValuesForSettings(HashMap> objectValues); }