| Previous CloneSet | Next CloneSet | Back to Main Report |
| Clone Mass | Clones in CloneSet | Parameter Count | Clone Similarity | Syntax Category [Sequence Length] |
|---|---|---|---|---|
| 98 | 2 | 5 | 0.966 | class_body_declarations[9] |
| Clone Abstraction | Parameter Bindings |
| Clone Instance (Click to see clone) | Line Count | Source Line | Source File |
|---|---|---|---|
| 1 | 98 | 91 | plugins/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/core/refactoring/BreakpointMoveParticipant.java |
| 2 | 99 | 76 | plugins/org.eclipse.jdt.debug.ui/ui/org/eclipse/jdt/internal/debug/core/refactoring/BreakpointRenameParticipant.java |
| ||||
/**
* Returns whether this given element is a valid target for this operation.
*
* @param element
* @return
*/
protected abstract boolean accepts(IJavaElement element);
/* (non-Javadoc)
* @see org.eclipse.ltk.core.refactoring.participants.RefactoringParticipant#getName()
*/
public String getName() {
return RefactoringMessages.BreakpointRenameParticipant_0;
}
/* (non-Javadoc)
* @see org.eclipse.ltk.core.refactoring.participants.RefactoringParticipant#checkConditions(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.ltk.core.refactoring.participants.CheckConditionsContext)
*/
public RefactoringStatus checkConditions(IProgressMonitor pm, CheckConditionsContext context) throws OperationCanceledException {
return new RefactoringStatus();
}
/* (non-Javadoc)
* @see org.eclipse.ltk.core.refactoring.participants.RefactoringParticipant#createChange(org.eclipse.core.runtime.IProgressMonitor)
*/
public Change createChange(IProgressMonitor pm) throws CoreException, OperationCanceledException {
List changes = new ArrayList();
IResource resource = getBreakpointContainer();
IMarker[] markers = resource.findMarkers(IBreakpoint.BREAKPOINT_MARKER, true, IResource.DEPTH_INFINITE);
gatherChanges(markers, changes);
if (changes.size() > 1) {
return new CompositeChange(RefactoringMessages.BreakpointRenameParticipant_1, (Change[]) changes.toArray(new Change[changes.size()]));
}
else if (changes.size() == 1) {
return (Change) changes.get(0);
}
return null;
}
/**
* Gathers refactoring specific changes. Subclasses must override.
*
* @param breakpoint markers to consider during the change
* @param list to add changes to
* @return changes for this refactoring.
* @throws CoreException
* @throws OperationCanceledException
*/
protected abstract void gatherChanges(IMarker[] markers, List changes)
throws CoreException, OperationCanceledException;
/**
* Returns the resource that should be considered when searching for affected breakpoints.
*
* @return resource to search for breakpoint markers.
*/
protected IResource getBreakpointContainer() {
return fElement.getResource();
}
/**
* Returns the breakpoint associated with the given marker.
*
* @param marker breakpoint marker
* @return breakpoint or <code>null</code>
*/
protected IBreakpoint getBreakpoint(IMarker marker) {
return DebugPlugin.getDefault().getBreakpointManager().getBreakpoint(marker);
}
/**
* Creates a specific type of change for a breakpoint that is changing types.
*
* @return type change or <code>null</code>
*/
protected Change createTypeChange(IJavaBreakpoint breakpoint, IType destType, IType originalType) throws CoreException {
if (breakpoint instanceof IJavaWatchpoint) {
return new WatchpointTypeChange((IJavaWatchpoint) breakpoint, destType, originalType);
}
else if (breakpoint instanceof IJavaClassPrepareBreakpoint) {
return new ClassPrepareBreakpointTypeChange((IJavaClassPrepareBreakpoint) breakpoint, destType);
}
else
if (breakpoint instanceof IJavaMethodBreakpoint) {
return new MethodBreakpointTypeChange((IJavaMethodBreakpoint) breakpoint, destType);
}
else
if (breakpoint instanceof IJavaExceptionBreakpoint) {
return new ExceptionBreakpointTypeChange((IJavaExceptionBreakpoint) breakpoint, destType);
}
else
if (breakpoint instanceof IJavaLineBreakpoint) {
return new LineBreakpointTypeChange((IJavaLineBreakpoint) breakpoint, destType);
}
return null;
}
/**
* Returns whether the given target type is contained in the specified container type.
*
* @param container
* @param target
* @return
*/
protected boolean isContained(IJavaElement container, IType type) {
IJavaElement parent = type;
while (parent != null) {
if (parent.equals(container)) {
return true;
}
parent = parent.getParent();
}
return false;
}
|
| ||||
/**
* Returns whether this given element is a valid target for this operation.
*
* @param element
* @return
*/
protected abstract boolean accepts(IJavaElement element);
/* (non-Javadoc)
* @see org.eclipse.ltk.core.refactoring.participants.RefactoringParticipant#getName()
*/
public String getName() {
return RefactoringMessages.BreakpointRenameParticipant_0;
}
/* (non-Javadoc)
* @see org.eclipse.ltk.core.refactoring.participants.RefactoringParticipant#checkConditions(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.ltk.core.refactoring.participants.CheckConditionsContext)
*/
public RefactoringStatus checkConditions(IProgressMonitor pm, CheckConditionsContext context) throws OperationCanceledException {
return new RefactoringStatus();
}
/* (non-Javadoc)
* @see org.eclipse.ltk.core.refactoring.participants.RefactoringParticipant#createChange(org.eclipse.core.runtime.IProgressMonitor)
*/
public Change createChange(IProgressMonitor pm) throws CoreException, OperationCanceledException {
List changes = new ArrayList();
IResource resource = getBreakpointContainer();
IMarker[] markers = resource.findMarkers(IBreakpoint.BREAKPOINT_MARKER, true, IResource.DEPTH_INFINITE);
gatherChanges(markers, changes, getArguments().getNewName());
if (changes.size() > 1) {
return new CompositeChange(RefactoringMessages.BreakpointRenameParticipant_1, (Change[]) changes.toArray(new Change[changes.size()]));
}
else if (changes.size() == 1) {
return (Change) changes.get(0);
}
return null;
}
/**
* Gathers refactoring specific changes. Subclasses must override.
*
* @param breakpoint markers to consider during the change
* @param list to add changes to
* @param name of the element being renamed
* @return changes for this refactoring.
* @throws CoreException
* @throws OperationCanceledException
*/
protected abstract void gatherChanges(IMarker[] markers, List changes, String destName)
throws CoreException, OperationCanceledException;
/**
* Returns the resource that should be considered when searching for affected breakpoints.
*
* @return resource to search for breakpoint markers.
*/
protected IResource getBreakpointContainer() {
return fElement.getResource();
}
/**
* Returns the breakpoint associated with the given marker.
*
* @param marker breakpoint marker
* @return breakpoint or <code>null</code>
*/
protected IBreakpoint getBreakpoint(IMarker marker) {
return DebugPlugin.getDefault().getBreakpointManager().getBreakpoint(marker);
}
/**
* Creates a specific type of change for a breakpoint that is changing types.
*
* @return type change or <code>null</code>
*/
protected Change createTypeChange(IJavaBreakpoint breakpoint, IType destType, IType originalType) throws CoreException {
if (breakpoint instanceof IJavaWatchpoint) {
return new WatchpointTypeChange((IJavaWatchpoint) breakpoint, destType, originalType);
}
else if (breakpoint instanceof IJavaClassPrepareBreakpoint) {
return new ClassPrepareBreakpointTypeChange((IJavaClassPrepareBreakpoint) breakpoint, destType);
}
else
if (breakpoint instanceof IJavaMethodBreakpoint) {
return new MethodBreakpointTypeChange((IJavaMethodBreakpoint) breakpoint, destType);
}
else
if (breakpoint instanceof IJavaExceptionBreakpoint) {
return new ExceptionBreakpointTypeChange((IJavaExceptionBreakpoint) breakpoint, destType);
}
else
if (breakpoint instanceof IJavaLineBreakpoint) {
return new LineBreakpointTypeChange((IJavaLineBreakpoint) breakpoint, destType);
}
return null;
}
/**
* Returns whether the given target type is contained in the specified container type.
*
* @param container
* @param target
* @return
*/
protected boolean isContained(IJavaElement container, IType type) {
IJavaElement parent = type;
while (parent != null) {
if (parent.equals(container)) {
return true;
}
parent = parent.getParent();
}
return false;
}
|
| |||
/**
* Returns whether this given element is a valid target for this operation.
*
* @param element
* @return
*/
protected abstract boolean accepts(IJavaElement element);
/* (non-Javadoc)
* @see org.eclipse.ltk.core.refactoring.participants.RefactoringParticipant#getName()
*/
public String getName() {
return RefactoringMessages.BreakpointRenameParticipant_0;
}
/* (non-Javadoc)
* @see org.eclipse.ltk.core.refactoring.participants.RefactoringParticipant#checkConditions(org.eclipse.core.runtime.IProgressMonitor, org.eclipse.ltk.core.refactoring.participants.CheckConditionsContext)
*/
public RefactoringStatus checkConditions(IProgressMonitor pm, CheckConditionsContext context) throws OperationCanceledException {
return new RefactoringStatus();
}
/* (non-Javadoc)
* @see org.eclipse.ltk.core.refactoring.participants.RefactoringParticipant#createChange(org.eclipse.core.runtime.IProgressMonitor)
*/
public Change createChange(IProgressMonitor pm) throws CoreException, OperationCanceledException {
List changes = new ArrayList();
IResource resource = getBreakpointContainer();
IMarker[] markers = resource.findMarkers(IBreakpoint.BREAKPOINT_MARKER, true, IResource.DEPTH_INFINITE);
gatherChanges( [[#variableb95f01c0]], [[#variable9d447820]]);
if (changes.size() > 1) {
return new CompositeChange(RefactoringMessages.BreakpointRenameParticipant_1, (Change[]) changes.toArray(new Change[changes.size()]));
}
else
if (changes.size() == 1) {
return (Change) changes.get(0);
}
return null;
}
/**
* Gathers refactoring specific changes. Subclasses must override.
*
* @param breakpoint markers to consider during the change
* @param list to add changes to
* @return changes for this refactoring.
* @throws CoreException
* @throws OperationCanceledException
*/
/**
* Gathers refactoring specific changes. Subclasses must override.
*
* @param breakpoint markers to consider during the change
* @param list to add changes to
* @param name of the element being renamed
* @return changes for this refactoring.
* @throws CoreException
* @throws OperationCanceledException
*/
protected abstract void gatherChanges( [[#variableb95f00a0]], [[#variableb95f0060]] [[#variableb95f0140]])
throws CoreException, OperationCanceledException;
/**
* Returns the resource that should be considered when searching for affected breakpoints.
*
* @return resource to search for breakpoint markers.
*/
protected IResource getBreakpointContainer() {
return fElement.getResource();
}
/**
* Returns the breakpoint associated with the given marker.
*
* @param marker breakpoint marker
* @return breakpoint or <code>null</code>
*/
protected IBreakpoint getBreakpoint(IMarker marker) {
return DebugPlugin.getDefault().getBreakpointManager().getBreakpoint(marker);
}
/**
* Creates a specific type of change for a breakpoint that is changing types.
*
* @return type change or <code>null</code>
*/
protected Change createTypeChange(IJavaBreakpoint breakpoint, IType destType, IType originalType) throws CoreException {
if (breakpoint instanceof IJavaWatchpoint) {
return new WatchpointTypeChange((IJavaWatchpoint) breakpoint, destType, originalType);
}
else
if (breakpoint instanceof IJavaClassPrepareBreakpoint) {
return new ClassPrepareBreakpointTypeChange((IJavaClassPrepareBreakpoint) breakpoint, destType);
}
else
if (breakpoint instanceof IJavaMethodBreakpoint) {
return new MethodBreakpointTypeChange((IJavaMethodBreakpoint) breakpoint, destType);
}
else
if (breakpoint instanceof IJavaExceptionBreakpoint) {
return new ExceptionBreakpointTypeChange((IJavaExceptionBreakpoint) breakpoint, destType);
}
else
if (breakpoint instanceof IJavaLineBreakpoint) {
return new LineBreakpointTypeChange((IJavaLineBreakpoint) breakpoint, destType);
}
return null;
}
/**
* Returns whether the given target type is contained in the specified container type.
*
* @param container
* @param target
* @return
*/
protected boolean isContained(IJavaElement container, IType type) {
IJavaElement parent = type;
while (parent != null) {
if (parent.equals(container)) {
return true;
}
parent = parent.getParent();
}
return false;
}
|
| CloneAbstraction |
| Parameter Index | Clone Instance | Parameter Name | Value |
|---|---|---|---|
| 1 | 1 | [[#b95f01c0]] | markers |
| 1 | 2 | [[#b95f01c0]] | markers, changes |
| 2 | 1 | [[#9d447820]] | changes |
| 2 | 2 | [[#9d447820]] | getArguments().getNewName() |
| 3 | 1 | [[#b95f00a0]] | IMarker[] markers |
| 3 | 2 | [[#b95f00a0]] | IMarker[] markers, List changes |
| 4 | 1 | [[#b95f0060]] | List |
| 4 | 2 | [[#b95f0060]] | String |
| 5 | 1 | [[#b95f0140]] | changes |
| 5 | 2 | [[#b95f0140]] | destName |