001/* 002 * This file is part of the Jikes RVM project (http://jikesrvm.org). 003 * 004 * This file is licensed to You under the Eclipse Public License (EPL); 005 * You may not use this file except in compliance with the License. You 006 * may obtain a copy of the License at 007 * 008 * http://www.opensource.org/licenses/eclipse-1.0.php 009 * 010 * See the COPYRIGHT.txt file distributed with this work for information 011 * regarding copyright ownership. 012 */ 013package org.jikesrvm.compilers.opt.util; 014 015import java.util.Enumeration; 016 017 018/** 019 * List of Graph nodes. 020 * <p> 021 * TODO should a doubly linked list implement Enumeration? 022 */ 023class SpaceEffGraphNodeList implements Enumeration<SpaceEffGraphNodeList> { 024 SpaceEffGraphNode _node; 025 SpaceEffGraphNodeList _next; 026 SpaceEffGraphNodeList _prev; 027 028 SpaceEffGraphNodeList() { 029 _node = null; 030 _next = null; 031 _prev = null; 032 } 033 034 @Override 035 public boolean hasMoreElements() { 036 return _next != null; 037 } 038 039 // return the next GraphNodeList element. 040 @Override 041 public SpaceEffGraphNodeList nextElement() { 042 SpaceEffGraphNodeList tmp = _next; 043 _next = _next._next; 044 return tmp; 045 } 046 047 SpaceEffGraphNode node() { 048 return _node; 049 } 050 051 SpaceEffGraphNodeList next() { 052 return _next; 053 } 054 055 SpaceEffGraphNodeList prev() { 056 return _prev; 057 } 058}