📄 cursor.java
字号:
// HTMLParser Library $Name: v1_6 $ - A java-based parser for HTML// http://sourceforge.org/projects/htmlparser// Copyright (C) 2004 Derrick Oswald//// Revision Control Information//// $Source: /cvsroot/htmlparser/htmlparser/src/org/htmlparser/lexer/Cursor.java,v $// $Author: derrickoswald $// $Date: 2005/05/15 11:49:04 $// $Revision: 1.20 $//// This library 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 library 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 library; if not, write to the Free Software// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA//package org.htmlparser.lexer;import java.io.Serializable;import org.htmlparser.util.sort.Ordered;/** * A bookmark in a page. * This class remembers the page it came from and its position within the page. */public class Cursor implements Serializable, Ordered, Cloneable{ /** * This cursor's position. */ protected int mPosition; /** * This cursor's page. */ protected Page mPage; /** * Construct a <code>Cursor</code> from the page and position given. * @param page The page this cursor is on. * @param offset The character offset within the page. */ public Cursor (Page page, int offset) { mPage = page; mPosition = offset; } /** * Get this cursor's page. * @return The page associated with this cursor. */ public Page getPage () { return (mPage); } /** * Get the position of this cursor. * @return The cursor position. */ public int getPosition () { return (mPosition); } /** * Set the position of this cursor. * @param position The new cursor position. */ public void setPosition (int position) { mPosition = position; } /** * Move the cursor position ahead one character. */ public void advance () { mPosition++; } /** * Move the cursor position back one character. */ public void retreat () { mPosition--; if (0 > mPosition) mPosition = 0; } /** * Make a new cursor just like this one. * @return The new cursor positioned where <code>this</code> one is, * and referring to the same page. */ public Cursor dup () { try { return ((Cursor)clone ()); } catch (CloneNotSupportedException cnse) { return (new Cursor (getPage (), getPosition ())); } } /** * Return a string representation of this cursor * @return A string of the form "n[r,c]", where n is the character position, * r is the row (zero based) and c is the column (zero based) on the page. */ public String toString () { StringBuffer ret; ret = new StringBuffer (9 * 3 + 3); // three ints and delimiters ret.append (getPosition ()); ret.append ("["); if (null != mPage) ret.append (mPage.row (this)); else ret.append ("?"); ret.append (","); if (null != mPage) ret.append (mPage.column (this)); else ret.append ("?"); ret.append ("]"); return (ret.toString ()); } // // Ordered interface // /** * Compare one reference to another. * @param that The object to compare this to. * @return A negative integer, zero, or a positive * integer as this object is less than, equal to, * or greater than that object. * @see org.htmlparser.util.sort.Ordered */ public int compare (Object that) { Cursor r = (Cursor)that; return (getPosition () - r.getPosition ()); }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -