@@ -59,8 +59,9 @@ Development and Distribution License("CDDL") (collectively, the
5959import org .gephi .io .importer .api .ContainerLoader ;
6060import org .gephi .io .importer .api .ContainerUnloader ;
6161import org .gephi .io .importer .api .EdgeDirection ;
62- import org .gephi .io .importer .api .EdgeDiretionDefault ;
62+ import org .gephi .io .importer .api .EdgeDirectionDefault ;
6363import org .gephi .io .importer .api .EdgeDraft ;
64+ import org .gephi .io .importer .api .EdgeWeightMergeStrategy ;
6465import org .gephi .io .importer .api .ElementDraft ;
6566import org .gephi .io .importer .api .Issue ;
6667import org .gephi .io .importer .api .Issue .Level ;
@@ -89,7 +90,7 @@ public class ImportContainerImpl implements Container, ContainerLoader, Containe
8990 private final Object2IntMap <String > edgeMap ;
9091 private final Object2IntMap edgeTypeMap ;
9192 private Long2ObjectMap <int []>[] edgeTypeSets ;
92- private EdgeDiretionDefault edgeDefault = EdgeDiretionDefault .MIXED ;
93+ private EdgeDirectionDefault edgeDefault = EdgeDirectionDefault .MIXED ;
9394 private final Object2ObjectMap <String , ColumnDraft > nodeColumns ;
9495 private final Object2ObjectMap <String , ColumnDraft > edgeColumns ;
9596 //Management
@@ -493,11 +494,11 @@ public boolean verify() {
493494
494495 //Graph EdgeDefault
495496 if (directedEdgesCount > 0 && undirectedEdgesCount == 0 ) {
496- setEdgeDefault (EdgeDiretionDefault .DIRECTED );
497+ setEdgeDefault (EdgeDirectionDefault .DIRECTED );
497498 } else if (directedEdgesCount == 0 && undirectedEdgesCount > 0 ) {
498- setEdgeDefault (EdgeDiretionDefault .UNDIRECTED );
499+ setEdgeDefault (EdgeDirectionDefault .UNDIRECTED );
499500 } else if (directedEdgesCount > 0 && undirectedEdgesCount > 0 ) {
500- setEdgeDefault (EdgeDiretionDefault .MIXED );
501+ setEdgeDefault (EdgeDirectionDefault .MIXED );
501502 }
502503
503504 //Is dynamic graph
@@ -684,7 +685,7 @@ public void closeLoader() {
684685 }
685686 }
686687
687- if (directedEdgesCount > 0 && edgeDefault .equals (EdgeDiretionDefault .UNDIRECTED )) {
688+ if (directedEdgesCount > 0 && edgeDefault .equals (EdgeDirectionDefault .UNDIRECTED )) {
688689 //Force undirected
689690 for (EdgeDraftImpl edge : edgeList .toArray (new EdgeDraftImpl [0 ])) {
690691 if (edge != null && edge .getDirection ().equals (EdgeDirection .DIRECTED )) {
@@ -767,10 +768,45 @@ public int compare(NodeDraftImpl o1, NodeDraftImpl o2) {
767768 }
768769
769770 //MANAGEMENT
771+ }
770772
773+ protected void mergeParallelEdges (EdgeDraftImpl [] sources , EdgeDraftImpl dest ) {
774+ EdgeWeightMergeStrategy mergeStrategy = parameters .getEdgesMergeStrategy ();
775+ int count = 1 + sources .length ;
776+ double sum = dest .getWeight ();
777+ double min = dest .getWeight ();
778+ double max = dest .getWeight ();
779+ for (EdgeDraftImpl edge : sources ) {
780+ sum += edge .getWeight ();
781+ min = Math .min (min , edge .getWeight ());
782+ max = Math .max (max , edge .getWeight ());
783+ }
784+ double result = dest .getWeight ();
785+ if (mergeStrategy .equals (EdgeWeightMergeStrategy .AVG )) {
786+ result = sum / count ;
787+ } else if (mergeStrategy .equals (EdgeWeightMergeStrategy .MAX )) {
788+ result = max ;
789+ } else if (mergeStrategy .equals (EdgeWeightMergeStrategy .MIN )) {
790+ result = min ;
791+ } else if (mergeStrategy .equals (EdgeWeightMergeStrategy .SUM )) {
792+ result = sum ;
793+ }
794+ dest .setWeight (result );
795+ }
771796
772-
773-
797+ protected void mergeDirectedEdges (EdgeDraftImpl source , EdgeDraftImpl dest ) {
798+ EdgeWeightMergeStrategy mergeStrategy = parameters .getEdgesMergeStrategy ();
799+ double result = dest .getWeight ();
800+ if (mergeStrategy .equals (EdgeWeightMergeStrategy .AVG )) {
801+ result = (source .getWeight () + dest .getWeight ()) / 2.0 ;
802+ } else if (mergeStrategy .equals (EdgeWeightMergeStrategy .MAX )) {
803+ result = Math .max (source .getWeight (), dest .getWeight ());
804+ } else if (mergeStrategy .equals (EdgeWeightMergeStrategy .MIN )) {
805+ result = Math .min (source .getWeight (), dest .getWeight ());;
806+ } else if (mergeStrategy .equals (EdgeWeightMergeStrategy .SUM )) {
807+ result = source .getWeight () + dest .getWeight ();
808+ }
809+ dest .setWeight (result );
774810 }
775811
776812 @ Override
@@ -810,7 +846,12 @@ public boolean allowSelfLoop() {
810846 }
811847
812848 @ Override
813- public EdgeDiretionDefault getEdgeDefault () {
849+ public EdgeWeightMergeStrategy getEdgesMergeStrategy () {
850+ return parameters .getEdgesMergeStrategy ();
851+ }
852+
853+ @ Override
854+ public EdgeDirectionDefault getEdgeDefault () {
814855 return edgeDefault ;
815856 }
816857
@@ -841,7 +882,7 @@ public void setAllowSelfLoop(boolean value) {
841882 }
842883
843884 @ Override
844- public void setEdgeDefault (EdgeDiretionDefault edgeDefault ) {
885+ public void setEdgeDefault (EdgeDirectionDefault edgeDefault ) {
845886 this .edgeDefault = edgeDefault ;
846887 report .logIssue (new Issue (NbBundle .getMessage (ImportContainerImpl .class , "ImportContainerException_Set_EdgeDefault" , edgeDefault .toString ()), Level .INFO ));
847888 }
@@ -856,44 +897,9 @@ public void setAutoScale(boolean autoscale) {
856897 parameters .setAutoScale (autoscale );
857898 }
858899
859- //
860- protected void mergeParallelEdges (EdgeDraftImpl [] sources , EdgeDraftImpl dest ) {
861- ImportContainerParameters .EdgeWeightMergeStrategy mergeStrategy = parameters .getParallelEdgesMergeStrategy ();
862- int count = 1 + sources .length ;
863- double sum = dest .getWeight ();
864- double min = dest .getWeight ();
865- double max = dest .getWeight ();
866- for (EdgeDraftImpl edge : sources ) {
867- sum += edge .getWeight ();
868- min = Math .min (min , edge .getWeight ());
869- max = Math .max (max , edge .getWeight ());
870- }
871- double result = dest .getWeight ();
872- if (mergeStrategy .equals (ImportContainerParameters .EdgeWeightMergeStrategy .AVG )) {
873- result = sum / count ;
874- } else if (mergeStrategy .equals (ImportContainerParameters .EdgeWeightMergeStrategy .MAX )) {
875- result = max ;
876- } else if (mergeStrategy .equals (ImportContainerParameters .EdgeWeightMergeStrategy .MIN )) {
877- result = min ;
878- } else if (mergeStrategy .equals (ImportContainerParameters .EdgeWeightMergeStrategy .SUM )) {
879- result = sum ;
880- }
881- dest .setWeight (result );
882- }
883-
884- protected void mergeDirectedEdges (EdgeDraftImpl source , EdgeDraftImpl dest ) {
885- ImportContainerParameters .EdgeWeightMergeStrategy mergeStrategy = parameters .getUndirectedMergeStrategy ();
886- double result = dest .getWeight ();
887- if (mergeStrategy .equals (ImportContainerParameters .EdgeWeightMergeStrategy .AVG )) {
888- result = (source .getWeight () + dest .getWeight ()) / 2.0 ;
889- } else if (mergeStrategy .equals (ImportContainerParameters .EdgeWeightMergeStrategy .MAX )) {
890- result = Math .max (source .getWeight (), dest .getWeight ());
891- } else if (mergeStrategy .equals (ImportContainerParameters .EdgeWeightMergeStrategy .MIN )) {
892- result = Math .min (source .getWeight (), dest .getWeight ());;
893- } else if (mergeStrategy .equals (ImportContainerParameters .EdgeWeightMergeStrategy .SUM )) {
894- result = source .getWeight () + dest .getWeight ();
895- }
896- dest .setWeight (result );
900+ @ Override
901+ public void setEdgesMergeStrategy (EdgeWeightMergeStrategy edgesMergeStrategy ) {
902+ parameters .setEdgesMergeStrategy (edgesMergeStrategy );
897903 }
898904
899905 //Utility
@@ -917,8 +923,8 @@ private void ensureLongSetArraySize(int type) {
917923
918924 private long getLongId (EdgeDraftImpl edge ) {
919925 EdgeDirection direction = edge .getDirection ();
920- boolean directed = edgeDefault .equals (EdgeDiretionDefault .DIRECTED )
921- || (!edgeDefault .equals (EdgeDiretionDefault .UNDIRECTED ) && direction != null && direction == EdgeDirection .DIRECTED );
926+ boolean directed = edgeDefault .equals (EdgeDirectionDefault .DIRECTED )
927+ || (!edgeDefault .equals (EdgeDirectionDefault .UNDIRECTED ) && direction != null && direction == EdgeDirection .DIRECTED );
922928 return getLongId (edge .getSource (), edge .getTarget (), directed );
923929 }
924930
0 commit comments