Copyright (c) 2000, 2009 IBM Corporation and others.
This program and the accompanying materials
are made available under the terms of the Eclipse Public License 2.0
which accompanies this distribution, and is available at
https://www.eclipse.org/legal/epl-2.0/
SPDX-License-Identifier: EPL-2.0
Contributors:
IBM Corporation - initial API and implementation
/*******************************************************************************
* Copyright (c) 2000, 2009 IBM Corporation and others.
*
* This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
* which accompanies this distribution, and is available at
* https://www.eclipse.org/legal/epl-2.0/
*
* SPDX-License-Identifier: EPL-2.0
*
* Contributors:
* IBM Corporation - initial API and implementation
*******************************************************************************/
package org.eclipse.jdt.internal.core.dom.rewrite;
import org.eclipse.jdt.core.dom.CompilationUnit;
import org.eclipse.jface.text.BadLocationException;
import org.eclipse.jface.text.IDocument;
/**
*
*/
public abstract class LineInformation {
public static LineInformation create(final IDocument doc) {
return new LineInformation() {
@Override
public int getLineOfOffset(int offset) {
try {
return doc.getLineOfOffset(offset);
} catch (BadLocationException e) {
return -1;
}
}
@Override
public int getLineOffset(int line) {
try {
return doc.getLineOffset(line);
} catch (BadLocationException e) {
return -1;
}
}
};
}
public static LineInformation create(final CompilationUnit astRoot) {
return new LineInformation() {
@Override
public int getLineOfOffset(int offset) {
return astRoot.getLineNumber(offset) - 1;
}
@Override
public int getLineOffset(int line) {
return astRoot.getPosition(line + 1, 0);
}
};
}
public abstract int getLineOfOffset(int offset);
public abstract int getLineOffset(int line);
}