FusionAtlasPaths={"~/projects/fusionatlas/package/"};
$Path=$Path~Join~FusionAtlasPaths;
<<FusionAtlas`

Needs["FusionAtlas`Java`"]

RestartJava[]

ShowJavaConsole[]

LoadJavaClass["org.fusionatlas.graphs.PairOfBigraphsWithDuals","AllowShortContext"->False];
LoadJavaClass["org.fusionatlas.graphs.Bigraph$","AllowShortContext"->False];
LoadJavaClass["org.fusionatlas.graphs.BigraphWithDuals","AllowShortContext"->False];

GraphToScalaObject[g_GradedBigraph]:=org`fusionatlas`graphs`Bigraph$`MODULE$@apply[GraphToString[g]]

GraphToScalaObject[HaagerupBigraph]

GraphToScalaObject[g_BigraphWithDuals]:=org`fusionatlas`graphs`BigraphWithDuals`apply[GraphToString[g]]

GraphFromString[GraphToScalaObject[HaagerupWithDuals]@toString[]]

GraphToScalaObject[{g1_BigraphWithDuals,g2_BigraphWithDuals}]:=org`fusionatlas`graphs`PairOfBigraphsWithDuals`apply[GraphToString[g1],GraphToString[g2]]

GraphToScalaObject[{HaagerupWithDuals, DualHaagerupWithDuals}]

LoadJavaClass["scala.collection.immutable.List$","AllowShortContext"->False];LoadJavaClass["scala.collection.immutable.Set$","AllowShortContext"->False];

LoadJavaClass["java.util.Arrays"];

LoadJavaClass["scala.collection.JavaConversions"];

AsScalaSet[list_]:=JavaConversions`asSet[JavaNew["java.util.HashSet",Arrays`asList[MakeJavaObject[list]]]]
AsScalaSet[{}]:=scala`collection`immutable`Set$`MODULE$@empty[]

AsScalaList[list_]:=JavaConversions`asBuffer[Arrays`asList[MakeJavaObject[list]]]@toList[]
AsScalaList[{}]:=scala`collection`immutable`List$`MODULE$@empty[]

GraphFromString[S_]/;StringMatchQ[S,"(bwd"~~__~~", bwd"~~__~~")"]:=GraphFromString/@StringCases[S,"bwd"~~(DigitCharacter|"v"|"p"|"x")...~~"duals"~~(DigitCharacter|"v"|"x")...]

PartialEnumerator[d_?NumericQ,g_,ignoredWeeds_]:=JavaNew["org.fusionatlas.enumerators.QueueEnumerator",d,GraphToScalaObject[g],AsScalaList[GraphToScalaObject/@ignoredWeeds]]

A3=GraphFromString["bwd1v1duals1v1"];

LoadJavaClass["org.fusionatlas.enumerators.EnumeratorApplication$"];

ignoredWeeds=GraphFromString[#@toString[]]&/@JavaConversions`asList[org`fusionatlas`enumerators`EnumeratorApplication$`MODULE$@ignoredWeeds[]]@toArray[]

pe=PartialEnumerator[2.28826,{A3,A3},ignoredWeeds]

Sqrt[6]//N

pe6=PartialEnumerator[2.44949,{A3,A3},ignoredWeeds]

pe6@update[]

pe@update[]

Length[vines=GraphFromString[#@toString[]]&/@JavaConversions`asList[pe@vines[]]@toArray[]]

pe@schedulePending[]

pe6@schedulePending[]

DisplayBigraph/@vines

KnownObstructions[{g1_BigraphWithDuals,g2_BigraphWithDuals}]:=Union[KnownObstructions[g1[[1]]],KnownObstructions[g2[[1]]]]

SetDebugMode[True];SetDebugQueueInterval[1.];

DisplayBigraph/@(candidates=SortBy[Cases[Flatten[Table[Translate[DeleteCases[vines,c_/;DimensionOfGenerator[c[[1]]]≤2],k],{k,0,8,2}],1],g_/;KnownObstructions[g]=={}],GraphRank[#[[1]]]+GraphRank[#[[2]]]&])

Length[weeds=GraphFromString[#@toString[]]&/@JavaConversions`asList[pe@incompleteNodes[]]@toArray[]]

DisplayBigraph/@ChooseIsomorphismRepresentatives[Union[Truncate[#,5]&/@weeds]]

DisplayBigraph/@ChooseIsomorphismRepresentatives[Union[Truncate[#,6]&/@weeds]]

DisplayBigraph/@ChooseIsomorphismRepresentatives[Union[Truncate[#,7]&/@weeds]]

Clear[weedsOfLength]
weedsOfLength[k_]:=weedsOfLength[k]=ChooseIsomorphismRepresentatives[Union[Truncate[#,k]&/@weeds]]

Table[Length[weedsOfLength[k]],{k,4,7}]

Methods["org.fusionatlas.enumerators.EnumeratorApplication$"]

Methods["org.fusionatlas.enumerators.EnumeratorApplication$"]

org.fusionatlas.enumerators.EnumeratorApplication$