Debug.message("link", "LinkGraphicList: received bytes in " + (float)(endTime - startTime)/1000.0f +
Debug.message("link", "LinkGraphicList: received " + graphics.size()  + " graphics in " + (float)(endTime - startTime)/1000.0f +
    protected String readGraphics(LinkOMGraphicList graphics, Projection proj,				  OMGridGenerator generator)	throws IOException, EOFException {	OMGraphic graphic;	long startTime = System.currentTimeMillis();	String header = null;	int graphicType;	boolean moreData = true;	// This is important, it's checked by the LinkLayer to see if	// it needs to generate the LinkOMGraphicList to see if the	// contents need to be generated.	graphics.setNeedToRegenerate(proj == null);	// doing nothing with the version number.	float ver = link.dis.readFloat();	if (ver != version) {	    if (ver == .1) {// Big difference....		throw new IOException("LinkGraphicList: Versions do not match! DANGER!");	    } else {		Debug.message("link", "LinkGraphicList: Versions do not match.");	    }	}	properties = new LinkProperties(link);	Debug.message("link", "LinkGraphicList: reading graphics:");	while (true) {	    graphic = null;	    // Just consume the header, don't create a useless	    // string object.	    header = link.readDelimiter(false);	  	    if (header == Link.END_TOTAL || header == Link.END_SECTION) {				long endTime = System.currentTimeMillis();		Debug.message("link", "LinkGraphicList: received bytes in "			      + (float)(endTime - startTime)/1000.0f + 			      " seconds");				return header;	    }	    	    graphicType = link.dis.readInt();	    	    switch (graphicType) {	    case GRAPHICTYPE_LINE:		graphic = LinkLine.read(link.dis);		break;	    case GRAPHICTYPE_POLY:		graphic = LinkPoly.read(link.dis);		break;	    case GRAPHICTYPE_RECTANGLE:		graphic = LinkRectangle.read(link.dis);		break;	    case GRAPHICTYPE_POINT:		graphic = LinkPoint.read(link.dis);		break;	    case GRAPHICTYPE_CIRCLE:		graphic = LinkCircle.read(link.dis);		break;	    case GRAPHICTYPE_RASTER:		graphic = LinkRaster.read(link.dis);		break;	    case GRAPHICTYPE_BITMAP:		graphic = LinkBitmap.read(link.dis);		break;	    case GRAPHICTYPE_TEXT:		graphic = LinkText.read(link.dis);		break;	    case GRAPHICTYPE_GRID:		graphic = LinkGrid.read(link.dis);		break;	    default:		throw new IOException("LinkGraphicList: received unknown graphic type.");	    }	    if (graphic != null) {		if (graphic instanceof OMGrid) {		    ((OMGrid)graphic).setGenerator(generator);		}		if (proj != null) {		    graphic.generate(proj);		}		graphics.add(graphic);	    }	}    }