git://source.jalview.org
/
jalview.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
JAL-1686 JAL-2110 equals and/or hashCode method added
[jalview.git]
/
src
/
jalview
/
datamodel
/
Mapping.java
diff --git
a/src/jalview/datamodel/Mapping.java
b/src/jalview/datamodel/Mapping.java
index
eb594be
..
b4489e2
100644
(file)
--- a/
src/jalview/datamodel/Mapping.java
+++ b/
src/jalview/datamodel/Mapping.java
@@
-155,8
+155,9
@@
public class Mapping
int[] alignedCodon = getAlignedCodon(codon);
String peptide = getPeptide();
int[] alignedCodon = getAlignedCodon(codon);
String peptide = getPeptide();
+ int peptideCol = toPosition - 1 - Mapping.this.to.getStart();
return new AlignedCodon(alignedCodon[0], alignedCodon[1],
return new AlignedCodon(alignedCodon[0], alignedCodon[1],
- alignedCodon[2], peptide);
+ alignedCodon[2], peptide, peptideCol);
}
/**
}
/**
@@
-164,6
+165,8
@@
public class Mapping
* sequence.
*
* @return
* sequence.
*
* @return
+ * @throws NoSuchElementException
+ * if the 'toRange' is exhausted (nothing to map to)
*/
private String getPeptide()
{
*/
private String getPeptide()
{
@@
-353,14
+356,13
@@
public class Mapping
/**
* Equals that compares both the to references and MapList mappings.
*
/**
* Equals that compares both the to references and MapList mappings.
*
- * @param other
+ * @param o
* @return
* @return
+ * @see MapList#equals
*/
@Override
public boolean equals(Object o)
{
*/
@Override
public boolean equals(Object o)
{
- // TODO should override Object.hashCode() to ensure that equal objects have
- // equal hashcodes
if (o == null || !(o instanceof Mapping))
{
return false;
if (o == null || !(o instanceof Mapping))
{
return false;
@@
-387,6
+389,21
@@
public class Mapping
}
/**
}
/**
+ * Returns a hashCode made from the sequence and maplist
+ */
+ @Override
+ public int hashCode()
+ {
+ int hashCode = (this.to == null ? 1 : this.to.hashCode());
+ if (this.map != null)
+ {
+ hashCode = hashCode * 31 + this.map.hashCode();
+ }
+
+ return hashCode;
+ }
+
+ /**
* get the 'initial' position in the associated sequence for a position in the
* mapped reference frame
*
* get the 'initial' position in the associated sequence for a position in the
* mapped reference frame
*
@@
-701,9
+718,28
@@
public class Mapping
super.finalize();
}
super.finalize();
}
+ /**
+ * Returns an iterator which can serve up the aligned codon column positions
+ * and their corresponding peptide products
+ *
+ * @param seq
+ * an aligned (i.e. possibly gapped) sequence
+ * @param gapChar
+ * @return
+ */
public Iterator<AlignedCodon> getCodonIterator(SequenceI seq, char gapChar)
{
return new AlignedCodonIterator(seq, gapChar);
}
public Iterator<AlignedCodon> getCodonIterator(SequenceI seq, char gapChar)
{
return new AlignedCodonIterator(seq, gapChar);
}
+ /**
+ * Readable representation for debugging only, not guaranteed not to change
+ */
+ @Override
+ public String toString()
+ {
+ return String.format("%s %s", this.map.toString(), this.to == null ? ""
+ : this.to.getName());
+ }
+
}
}