JAL-3026 srcjar files for VARNA and log4j
[jalview.git] / srcjar / fr / orsay / lri / varna / models / treealign / ExampleDistance2.java
1 package fr.orsay.lri.varna.models.treealign;
2
3
4 /**
5  * This distance is such that a substitution costs nothing.
6  * 
7  * @author Raphael Champeimont
8  *
9  */
10 public class ExampleDistance2 implements TreeAlignLabelDistanceSymmetric<RNANodeValue2> {
11         public double f(RNANodeValue2 v1, RNANodeValue2 v2) {
12                 if (v1 == null) {
13                         if (v2 == null) {
14                                 return 0;
15                         } else if (!v2.isSingleNode()) { // v2 is a list of bases
16                                 return v2.getNodes().size();
17                         } else { // v2 is a single node
18                                 return 2;
19                         }
20                 } else if (!v1.isSingleNode()) { // v1 is a list of bases
21                         if (v2 == null) {
22                                 return v1.getNodes().size();
23                         } else if (!v2.isSingleNode()) { // v2 is a list of bases
24                                 return Math.abs(v2.getNodes().size() - v1.getNodes().size());
25                         } else { // v2 is a single node
26                                 return 2 + v1.getNodes().size();
27                         }
28                 } else { // v1 is a single node
29                         // all the same as when v1 == null
30                         if (v2 == null) {
31                                 return 2;
32                         } else if (!v2.isSingleNode()) { // v2 is a list of bases
33                                 return 2 + v2.getNodes().size();
34                         } else { // v2 is a single node
35                                 return 0;
36                         }
37                 }
38         }
39 }