/** * Copyright (c) 2012 by JP Moresmau * This code is made available under the terms of the Eclipse Public License, * version 1.0 (EPL). See http://www.eclipse.org/legal/epl-v10.html */ package net.sf.eclipsefp.haskell.core.cabalmodel; /** * Position of a value in a cabal file * @author JP Moresmau * */ public class ValuePosition implements Cloneable{ private int startLine=-1; private int endLine=-1; private int initialIndent=-1; private int subsequentIndent=-1; public ValuePosition() { super(); } public ValuePosition( final int startLine, final int endLine, final int indent ) { super(); this.startLine = startLine; this.endLine = endLine; this.initialIndent = indent; } @Override protected ValuePosition clone() { ValuePosition vp= new ValuePosition( startLine, endLine, initialIndent ); vp.subsequentIndent=subsequentIndent; return vp; } public int getStartLine() { return startLine; } public int getEndLine() { return endLine; } public int getInitialIndent() { return initialIndent; } public void setStartLine( final int startLine ) { this.startLine = startLine; } public void setEndLine( final int endLine ) { this.endLine = endLine; } public void setInitialIndent( final int indent ) { this.initialIndent = indent; } public void diffLine ( final int diff ) { this.startLine += diff; this.endLine += diff; } public int getSubsequentIndent() { return subsequentIndent; } public void setSubsequentIndent( final int subsequentIndent ) { this.subsequentIndent = subsequentIndent; } @Override public String toString() { return getStartLine()+"->"+getEndLine()+"("+getInitialIndent()+","+getSubsequentIndent()+")"; //$NON-NLS-1$//$NON-NLS-2$//$NON-NLS-3$//$NON-NLS-4$ } }