ReferenceChain.java revision 0
e86d0731d2d88f053f4f50ebc7060346a3f7934dJason Lemay/*
e86d0731d2d88f053f4f50ebc7060346a3f7934dJason Lemay * Copyright 2005 Sun Microsystems, Inc. All Rights Reserved.
e86d0731d2d88f053f4f50ebc7060346a3f7934dJason Lemay * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
e86d0731d2d88f053f4f50ebc7060346a3f7934dJason Lemay *
e86d0731d2d88f053f4f50ebc7060346a3f7934dJason Lemay * This code is free software; you can redistribute it and/or modify it
e86d0731d2d88f053f4f50ebc7060346a3f7934dJason Lemay * under the terms of the GNU General Public License version 2 only, as
e86d0731d2d88f053f4f50ebc7060346a3f7934dJason Lemay * published by the Free Software Foundation. Sun designates this
e86d0731d2d88f053f4f50ebc7060346a3f7934dJason Lemay * particular file as subject to the "Classpath" exception as provided
e86d0731d2d88f053f4f50ebc7060346a3f7934dJason Lemay * by Sun in the LICENSE file that accompanied this code.
e86d0731d2d88f053f4f50ebc7060346a3f7934dJason Lemay *
e86d0731d2d88f053f4f50ebc7060346a3f7934dJason Lemay * This code is distributed in the hope that it will be useful, but WITHOUT
e86d0731d2d88f053f4f50ebc7060346a3f7934dJason Lemay * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
e86d0731d2d88f053f4f50ebc7060346a3f7934dJason Lemay * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
e86d0731d2d88f053f4f50ebc7060346a3f7934dJason Lemay * version 2 for more details (a copy is included in the LICENSE file that
e86d0731d2d88f053f4f50ebc7060346a3f7934dJason Lemay * accompanied this code).
e86d0731d2d88f053f4f50ebc7060346a3f7934dJason Lemay *
e86d0731d2d88f053f4f50ebc7060346a3f7934dJason Lemay * You should have received a copy of the GNU General Public License version
e86d0731d2d88f053f4f50ebc7060346a3f7934dJason Lemay * 2 along with this work; if not, write to the Free Software Foundation,
1b3e20347b77bd88ff6eb08ca1587ed14ebab90aAlin Brici * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
1b3e20347b77bd88ff6eb08ca1587ed14ebab90aAlin Brici *
1b3e20347b77bd88ff6eb08ca1587ed14ebab90aAlin Brici * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara,
1b3e20347b77bd88ff6eb08ca1587ed14ebab90aAlin Brici * CA 95054 USA or visit www.sun.com if you need additional information or
e86d0731d2d88f053f4f50ebc7060346a3f7934dJason Lemay * have any questions.
e86d0731d2d88f053f4f50ebc7060346a3f7934dJason Lemay */
e86d0731d2d88f053f4f50ebc7060346a3f7934dJason Lemay
e86d0731d2d88f053f4f50ebc7060346a3f7934dJason Lemay
e86d0731d2d88f053f4f50ebc7060346a3f7934dJason Lemay/*
e86d0731d2d88f053f4f50ebc7060346a3f7934dJason Lemay * The contents of this file are subject to the Sun Public License
1b3e20347b77bd88ff6eb08ca1587ed14ebab90aAlin Brici * Version 1.0 (the "License"); you may not use this file except in
e86d0731d2d88f053f4f50ebc7060346a3f7934dJason Lemay * compliance with the License. A copy of the License is available at
e86d0731d2d88f053f4f50ebc7060346a3f7934dJason Lemay * http://www.sun.com/, and in the file LICENSE.html in the
e86d0731d2d88f053f4f50ebc7060346a3f7934dJason Lemay * doc directory.
e86d0731d2d88f053f4f50ebc7060346a3f7934dJason Lemay *
e86d0731d2d88f053f4f50ebc7060346a3f7934dJason Lemay * The Original Code is HAT. The Initial Developer of the
e86d0731d2d88f053f4f50ebc7060346a3f7934dJason Lemay * Original Code is Bill Foote, with contributions from others
e86d0731d2d88f053f4f50ebc7060346a3f7934dJason Lemay * at JavaSoft/Sun. Portions created by Bill Foote and others
e86d0731d2d88f053f4f50ebc7060346a3f7934dJason Lemay * at Javasoft/Sun are Copyright (C) 1997-2004. All Rights Reserved.
e86d0731d2d88f053f4f50ebc7060346a3f7934dJason Lemay *
e86d0731d2d88f053f4f50ebc7060346a3f7934dJason Lemay * In addition to the formal license, I ask that you don't
1b3e20347b77bd88ff6eb08ca1587ed14ebab90aAlin Brici * change the history or donations files without permission.
e86d0731d2d88f053f4f50ebc7060346a3f7934dJason Lemay *
e86d0731d2d88f053f4f50ebc7060346a3f7934dJason Lemay */
e86d0731d2d88f053f4f50ebc7060346a3f7934dJason Lemay
e435bd6f4bb55de339fe53b592ee9c8fd75a23b6Brendan Millerpackage com.sun.tools.hat.internal.model;
e86d0731d2d88f053f4f50ebc7060346a3f7934dJason Lemay
e86d0731d2d88f053f4f50ebc7060346a3f7934dJason Lemay/**
e86d0731d2d88f053f4f50ebc7060346a3f7934dJason Lemay * Represents a chain of references to some target object
e86d0731d2d88f053f4f50ebc7060346a3f7934dJason Lemay *
e86d0731d2d88f053f4f50ebc7060346a3f7934dJason Lemay * @author Bill Foote
1b3e20347b77bd88ff6eb08ca1587ed14ebab90aAlin Brici */
e86d0731d2d88f053f4f50ebc7060346a3f7934dJason Lemay
e86d0731d2d88f053f4f50ebc7060346a3f7934dJason Lemaypublic class ReferenceChain {
1b3e20347b77bd88ff6eb08ca1587ed14ebab90aAlin Brici
e86d0731d2d88f053f4f50ebc7060346a3f7934dJason Lemay JavaHeapObject obj; // Object referred to
e86d0731d2d88f053f4f50ebc7060346a3f7934dJason Lemay ReferenceChain next; // Next in chain
e435bd6f4bb55de339fe53b592ee9c8fd75a23b6Brendan Miller
e86d0731d2d88f053f4f50ebc7060346a3f7934dJason Lemay public ReferenceChain(JavaHeapObject obj, ReferenceChain next) {
1b3e20347b77bd88ff6eb08ca1587ed14ebab90aAlin Brici this.obj = obj;
e86d0731d2d88f053f4f50ebc7060346a3f7934dJason Lemay this.next = next;
e86d0731d2d88f053f4f50ebc7060346a3f7934dJason Lemay }
1b3e20347b77bd88ff6eb08ca1587ed14ebab90aAlin Brici
e86d0731d2d88f053f4f50ebc7060346a3f7934dJason Lemay public JavaHeapObject getObj() {
e86d0731d2d88f053f4f50ebc7060346a3f7934dJason Lemay return obj;
e86d0731d2d88f053f4f50ebc7060346a3f7934dJason Lemay }
public ReferenceChain getNext() {
return next;
}
public int getDepth() {
int count = 1;
ReferenceChain tmp = next;
while (tmp != null) {
count++;
tmp = tmp.next;
}
return count;
}
}