blob: c1186c3e996923e616d3f7317213b980d9dac32a [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2005, 2011 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.debug.core.refactoring;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.jdt.debug.core.IJavaLineBreakpoint;
/**
* Specialization of a {@link BreakpointChange}
* @since 3.2
*/
public abstract class LineBreakpointChange extends BreakpointChange {
private int fCharEnd, fCharStart, fLineNumber;
private boolean fConditionEnabled, fConditionSuspendOnTrue;
private String fCondition;
/**
* Constructor
* @param breakpoint
* @throws CoreException
*/
public LineBreakpointChange(IJavaLineBreakpoint breakpoint) throws CoreException {
super(breakpoint);
fCharEnd = breakpoint.getCharEnd();
fCharStart = breakpoint.getCharStart();
fLineNumber = breakpoint.getLineNumber();
if (breakpoint.supportsCondition()) {
fCondition = breakpoint.getCondition();
fConditionEnabled = breakpoint.isConditionEnabled();
fConditionSuspendOnTrue = breakpoint.isConditionSuspendOnTrue();
}
}
/**
* Applies the original attributes to the new breakpoint
* @param breakpoint
* @throws CoreException
*/
protected void apply(IJavaLineBreakpoint breakpoint) throws CoreException {
super.apply(breakpoint);
if (breakpoint.supportsCondition()) {
breakpoint.setCondition(fCondition);
breakpoint.setConditionEnabled(fConditionEnabled);
breakpoint.setConditionSuspendOnTrue(fConditionSuspendOnTrue);
}
}
/**
* @see org.eclipse.jdt.internal.debug.core.refactoring.BreakpointChange#getLineNumber()
*/
@Override
protected int getLineNumber() {
return fLineNumber;
}
/**
* Returns the char end attribute of the underlying line breakpoint
* @return the char end attribute of the underlying line breakpoint
*/
protected int getCharEnd() {
return fCharEnd;
}
/**
* Returns the char start attribute of the underlying line breakpoint
* @return the char start attribute of the underlying line breakpoint
*/
protected int getCharStart() {
return fCharStart;
}
}