Skip to content

Commit 710a315

Browse files
committed
1.1.2
handle paraphyly more gracefully
1 parent 2cd0be5 commit 710a315

4 files changed

Lines changed: 15 additions & 20 deletions

File tree

build.sbt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
name := "wikiClade"
22

3-
version := "1.1.1"
3+
version := "1.1.2"
44

55
scalaVersion := "2.12.8"
66

src/main/scala/cladograms/WikiClade.scala

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,23 +15,33 @@ abstract class WikiClade extends Clade {
1515

1616
def priorityOverride: Double
1717

18-
case class WikiCladeMetadata(trueName: String, ancestors: List[Clade], path: Option[String], cladeType: String, docPriority: Double)
18+
case class WikiCladeMetadata(trueName: String, ancestors: List[Clade], path: Option[String], cladeType: String,
19+
docPriority: Double, paraphyletic: Boolean = false)
1920

2021
override def DOTDefinition: Option[String] = {
2122
val cladeTypeStr = if (meta.cladeType.isEmpty) "" else s"""<FONT POINT-SIZE=\"10\">${meta.cladeType}</FONT><br/>"""
2223
val hrefStr = meta.path match {
2324
case None => ""
2425
case Some(p) => s"""href="${WikiClade.baseUrl}${p.replaceAll("&", "&amp;")}","""
2526
}
27+
val asterisk = if (meta.paraphyletic) "*" else ""
2628
val dispname =
2729
if (meta.trueName == name) name
28-
else s"${meta.trueName}<br/>($name)"
30+
else s"${meta.trueName}<br/>($name)$asterisk"
2931
Some(s""""$name" [$hrefStr label=<$cladeTypeStr<B>$dispname</B>>]""")
3032
}
3133

3234
def priority: Double = Math.min(
3335
Math.min(priorityOverride, meta.docPriority),
3436
if (WikiClade.importantCladeTypes contains meta.cladeType) 20 else 100)
37+
38+
def canEqual(obj: Any): Boolean = obj.isInstanceOf[WikiClade]
39+
override def equals(obj: Any): Boolean = obj match {
40+
case obj: WikiClade => obj.canEqual(this) && this.meta.trueName == obj.meta.trueName
41+
case _ => false
42+
}
43+
44+
override def hashCode(): Int = meta.trueName.hashCode
3545
}
3646

3747
object WikiClade {

src/main/scala/cladograms/WikiPageClade.scala

Lines changed: 2 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,8 @@ class WikiPageClade(val name: String, path: Option[String], val priorityOverride
2626
else WikiClade.newClade(details.name, Some(details.path))
2727
}
2828
val docPriority = priorityBasedOnDoc(docOpt)
29-
WikiCladeMetadata(mydetails.name ,ancestors, path, WikiClade.sanitizeCladeType(mydetails.cladeType), docPriority)
29+
WikiCladeMetadata(mydetails.name ,ancestors, path, WikiClade.sanitizeCladeType(mydetails.cladeType), docPriority,
30+
mydetails.path.nonEmpty && !mydetails.cladeType.contains("pecies"))
3031
}
3132

3233
private def extractTaxonomy(elems: Elements): List[TaxonDetails] = {
@@ -95,14 +96,6 @@ class WikiPageClade(val name: String, path: Option[String], val priorityOverride
9596
case None => 99
9697
}
9798

98-
def canEqual(obj: Any): Boolean = obj.isInstanceOf[WikiPageClade]
99-
override def equals(obj: Any): Boolean = obj match {
100-
case obj: WikiPageClade => obj.canEqual(this) && this.meta.trueName == obj.meta.trueName
101-
case _ => false
102-
}
103-
104-
override def hashCode(): Int = meta.trueName.hashCode
105-
10699
private def taxonDetails(name: String, cladeType: String, path: String): TaxonDetails = {
107100
TaxonDetails(name, cladeType, false, path, "")
108101
}

src/main/scala/cladograms/WikiTaxoboxClade.scala

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -69,12 +69,4 @@ class WikiTaxoboxClade(val name: String, taxonomyPath: Option[String], details:
6969
}
7070
iter(elems.size() - 1, List())
7171
}
72-
73-
def canEqual(obj: Any): Boolean = obj.isInstanceOf[WikiTaxoboxClade]
74-
override def equals(obj: Any): Boolean = obj match {
75-
case obj: WikiTaxoboxClade => obj.canEqual(this) && this.meta.trueName == obj.meta.trueName
76-
case _ => false
77-
}
78-
79-
override def hashCode(): Int = meta.trueName.hashCode
8072
}

0 commit comments

Comments
 (0)