/* * Copyright (c) 2012 Sam Harwell, Tunnel Vision Laboratories LLC * All rights reserved. * * The source code of this document is proprietary work, and is not licensed for * distribution. For information about licensing, contact Sam Harwell at: * sam@tunnelvisionlabs.com */ package org.antlr.netbeans.editor.text; import org.netbeans.api.annotations.common.NonNull; /** * * @author Sam Harwell */ public interface TrackingPosition { public @NonNull VersionedDocument getVersionedDocument(); public @NonNull TrackingFidelity getTrackingFidelity(); public @NonNull TrackingPosition.Bias getBias(); public @NonNull SnapshotPosition getPosition(@NonNull DocumentSnapshot snapshot); public int getOffset(@NonNull DocumentSnapshot snapshot); public int getOffset(@NonNull DocumentVersion version); public char getCharacter(@NonNull DocumentSnapshot snapshot); public enum Bias { Forward, Backward, ; @Override public String toString() { switch (this) { case Forward: return "→"; case Backward: return "←"; default: return "???"; } } } }