001/*
002 *                    BioJava development code
003 *
004 * This code may be freely distributed and modified under the
005 * terms of the GNU Lesser General Public Licence.  This should
006 * be distributed with the code.  If you do not have a copy,
007 * see:
008 *
009 *      http://www.gnu.org/copyleft/lesser.html
010 *
011 * Copyright for this code is held jointly by the individual
012 * authors.  These should be listed in @author doc comments.
013 *
014 * For more information on the BioJava project and its aims,
015 * or to join the biojava-l mailing list, visit the home page
016 * at:
017 *
018 *      http://www.biojava.org/
019 *
020 */
021package org.biojava.nbio.structure.secstruc;
022
023import java.io.Serializable;
024
025/**
026 * Container that represents a beta Bridge between two residues. It contains the
027 * two partner indices and the type of the bridge. For consistency, partner1 is
028 * always the small index.
029 *
030 * @author Aleix Lafita
031 *
032 */
033public class BetaBridge implements Serializable {
034
035        private static final long serialVersionUID = -5097435425455958487L;
036        
037        BridgeType type;
038        int partner1;
039        int partner2;
040
041        public BetaBridge(int i, int j, BridgeType t) {
042                partner1 = Math.min(i, j);
043                partner2 = Math.max(i, j);
044                type = t;
045        }
046
047        @Override
048        public int hashCode()
049        {
050            final int prime = 31;
051            int result = 1;
052            result = prime * result + getType().hashCode();
053            result = prime * result + partner1;
054            result = prime * result + partner2;
055            return result;
056        }
057
058        @Override
059        public boolean equals(Object o) {
060
061                if (!(o instanceof BetaBridge))
062                        return false;
063
064                BetaBridge b = (BetaBridge) o;
065                if (type != b.type)
066                        return false;
067                if (partner1 != b.partner1)
068                        return false;
069                if (partner2 != b.partner2)
070                        return false;
071                return true;
072        }
073
074        public BridgeType getType() {
075                return type;
076        }
077
078        public int getPartner1() {
079                return partner1;
080        }
081
082        public int getPartner2() {
083                return partner2;
084        }
085
086}