/* $Revision$ $Author$ $Date$ * * Copyright (C) 2002-2007 Stephane Werner <mail@ixelis.net> * * This code has been kindly provided by Stephane Werner * and Thierry Hanser from IXELIS mail@ixelis.net. * * IXELIS sarl - Semantic Information Systems * 17 rue des C?dres 67200 Strasbourg, France * Tel/Fax : +33(0)3 88 27 81 39 Email: mail@ixelis.net * * CDK Contact: cdk-devel@lists.sf.net * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public License * as published by the Free Software Foundation; either version 2.1 * of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA. */ package org.openscience.cdk.isomorphism.mcss; import java.util.BitSet; /** * Node of the resolution graphe (RGraph) An RNode represents an association * betwwen two edges of the source graphs G1 and G2 that are compared. Two * edges may be associated if they have at least one common feature. The * association is defined outside this class. The node keeps tracks of the ID * of the mapped edges (in an RMap), of its neighbours in the RGraph it belongs * to and of the set of incompatible nodes (nodes that may not be along with * this node in the same solution) * * @author Stephane Werner from IXELIS mail@ixelis.net * @cdk.created 2002-07-17 * @cdk.module standard * @cdk.githash */ public class RNode { // G1/G2 mapping RMap rMap = null; // set of neighbour nodes in the RGraph BitSet extension = null; // set of incompatible nodes in the RGraph BitSet forbidden = null; /** * Constructor for the RNode object * *@param id1 number of the bond in the graphe 1 *@param id2 number of the bond in the graphe 2 */ public RNode(int id1, int id2) { rMap = new RMap(id1, id2); extension = new BitSet(); forbidden = new BitSet(); } /** * Sets the rMap attribute of the RNode object * *@param rMap The new rMap value */ public void setRMap(RMap rMap) { this.rMap = rMap; } /** * Sets the extension attribute of the RNode object * *@param extension The new extension value */ public void setExtension(BitSet extension) { this.extension = extension; } /** * Sets the forbidden attribute of the RNode object * *@param forbidden The new forbidden value */ public void setForbidden(BitSet forbidden) { this.forbidden = forbidden; } /** * Gets the rMap attribute of the RNode object * *@return The rMap value */ public RMap getRMap() { return rMap; } /** * Gets the extension attribute of the RNode object * *@return The extension value */ public BitSet getExtension() { return extension; } /** * Gets the forbidden attribute of the RNode object * *@return The forbidden value */ public BitSet getForbidden() { return forbidden; } /** * Returns a string representation of the RNode * *@return the string representation of the RNode */ public String toString() { return ("id1 : " + rMap.id1 + ", id2 : " + rMap.id2 + "\n" + "extension : " + extension + "\n" + "forbiden : " + forbidden); } }