public static ReorgTypedSourcePasteStarter create(TypedSource[] typedSources, IJavaElement destination) { Assert.isNotNull(typedSources); Assert.isNotNull(destination); PasteTypedSourcesRefactoring pasteRefactoring= PasteTypedSourcesRefactoring.create(typedSources); if (pasteRefactoring == null) return null; if (! pasteRefactoring.setDestination(destination).isOK()) return null; return new ReorgTypedSourcePasteStarter(pasteRefactoring); }
@Override public Change createChange(IProgressMonitor pm) throws CoreException { ASTParser p= ASTParser.newParser(IASTSharedValues.SHARED_AST_LEVEL); p.setSource(getDestinationCu()); CompilationUnit cuNode= (CompilationUnit) p.createAST(pm); ASTRewrite rewrite= ASTRewrite.create(cuNode.getAST()); TypedSource source= null; for (int i= fSources.length - 1; i >= 0; i--) { source= fSources[i]; final ASTNode destination= getDestinationNodeForSourceElement(fDestination, source.getType(), cuNode); if (destination != null) { if (destination instanceof CompilationUnit) insertToCu(rewrite, createNewNodeToInsertToCu(source, rewrite), (CompilationUnit) destination); else if (destination instanceof AbstractTypeDeclaration) insertToType(rewrite, createNewNodeToInsertToType(source, rewrite), (AbstractTypeDeclaration) destination); } } final CompilationUnitChange result= new CompilationUnitChange(ReorgMessages.PasteAction_change_name, getDestinationCu()); try { ITextFileBuffer buffer= RefactoringFileBuffers.acquire(getDestinationCu()); TextEdit rootEdit= rewrite.rewriteAST(buffer.getDocument(), fDestination.getJavaProject().getOptions(true)); if (getDestinationCu().isWorkingCopy()) result.setSaveMode(TextFileChange.LEAVE_DIRTY); TextChangeCompatibility.addTextEdit(result, ReorgMessages.PasteAction_edit_name, rootEdit); } finally { RefactoringFileBuffers.release(getDestinationCu()); } return result; }
public Change createChange(IProgressMonitor pm) throws CoreException { ASTParser p= ASTParser.newParser(AST.JLS3); p.setSource(getDestinationCu()); CompilationUnit cuNode= (CompilationUnit) p.createAST(pm); ASTRewrite rewrite= ASTRewrite.create(cuNode.getAST()); TypedSource source= null; for (int i= fSources.length - 1; i >= 0; i--) { source= fSources[i]; final ASTNode destination= getDestinationNodeForSourceElement(fDestination, source.getType(), cuNode); if (destination != null) { if (destination instanceof CompilationUnit) insertToCu(rewrite, createNewNodeToInsertToCu(source, rewrite), (CompilationUnit) destination); else if (destination instanceof AbstractTypeDeclaration) insertToType(rewrite, createNewNodeToInsertToType(source, rewrite), (AbstractTypeDeclaration) destination); } } final CompilationUnitChange result= new CompilationUnitChange(ReorgMessages.PasteAction_change_name, getDestinationCu()); try { ITextFileBuffer buffer= RefactoringFileBuffers.acquire(getDestinationCu()); TextEdit rootEdit= rewrite.rewriteAST(buffer.getDocument(), fDestination.getJavaProject().getOptions(true)); if (getDestinationCu().isWorkingCopy()) result.setSaveMode(TextFileChange.LEAVE_DIRTY); TextChangeCompatibility.addTextEdit(result, ReorgMessages.PasteAction_edit_name, rootEdit); } finally { RefactoringFileBuffers.release(getDestinationCu()); } return result; }
@Override public Change createChange(IProgressMonitor pm) throws CoreException { ASTParser p= ASTParser.newParser(ASTProvider.SHARED_AST_LEVEL); p.setSource(getDestinationCu()); CompilationUnit cuNode= (CompilationUnit) p.createAST(pm); ASTRewrite rewrite= ASTRewrite.create(cuNode.getAST()); TypedSource source= null; for (int i= fSources.length - 1; i >= 0; i--) { source= fSources[i]; final ASTNode destination= getDestinationNodeForSourceElement(fDestination, source.getType(), cuNode); if (destination != null) { if (destination instanceof CompilationUnit) insertToCu(rewrite, createNewNodeToInsertToCu(source, rewrite), (CompilationUnit) destination); else if (destination instanceof AbstractTypeDeclaration) insertToType(rewrite, createNewNodeToInsertToType(source, rewrite), (AbstractTypeDeclaration) destination); } } final CompilationUnitChange result= new CompilationUnitChange(ReorgMessages.PasteAction_change_name, getDestinationCu()); try { ITextFileBuffer buffer= RefactoringFileBuffers.acquire(getDestinationCu()); TextEdit rootEdit= rewrite.rewriteAST(buffer.getDocument(), fDestination.getJavaProject().getOptions(true)); if (getDestinationCu().isWorkingCopy()) result.setSaveMode(TextFileChange.LEAVE_DIRTY); TextChangeCompatibility.addTextEdit(result, ReorgMessages.PasteAction_edit_name, rootEdit); } finally { RefactoringFileBuffers.release(getDestinationCu()); } return result; }
/** * @param destination the destination element * @param kind the type of the source to paste * @param unit the parsed CU * @return an AbstractTypeDeclaration, a CompilationUnit, or null * @throws JavaModelException if something fails */ private ASTNode getDestinationNodeForSourceElement(IJavaElement destination, int kind, CompilationUnit unit) throws JavaModelException { final IType ancestor= getAncestorType(destination); if (ancestor != null) return ASTNodeSearchUtil.getAbstractTypeDeclarationNode(ancestor, unit); if (kind == IJavaElement.TYPE || kind == IJavaElement.PACKAGE_DECLARATION || kind == IJavaElement.IMPORT_DECLARATION || kind == IJavaElement.IMPORT_CONTAINER) return unit; return null; }
/** * @param destination the destination element * @param kind the type of the source to paste * @param unit the parsed CU * @return an AbstractTypeDeclaration, a CompilationUnit, or null * @throws JavaModelException if something fails */ private ASTNode getDestinationNodeForSourceElement(IJavaElement destination, int kind, CompilationUnit unit) throws JavaModelException { final IType ancestor= getAncestorType(destination); if (ancestor != null) return ASTNodeSearchUtil.getAbstractTypeDeclarationNode(ancestor, unit); if (kind == IJavaElement.TYPE || kind == IJavaElement.PACKAGE_DECLARATION || kind == IJavaElement.IMPORT_DECLARATION || kind == IJavaElement.IMPORT_CONTAINER) return unit; return null; }
private boolean canPasteAll(IJavaElement destination) { for (int i= 0; i < fSources.length; i++) { if (! canPaste(fSources[i].getType(), destination)) return false; } return true; } private static boolean canPaste(int elementType, IJavaElement destination) {
/** * @return an AbstractTypeDeclaration, a CompilationUnit, or null */ private ASTNode getDestinationNodeForSourceElement(IJavaElement destination, int kind, CompilationUnit unit) throws JavaModelException { final IType ancestor= getAncestorType(destination); if (ancestor != null) return ASTNodeSearchUtil.getAbstractTypeDeclarationNode(ancestor, unit); if (kind == IJavaElement.TYPE || kind == IJavaElement.PACKAGE_DECLARATION || kind == IJavaElement.IMPORT_DECLARATION || kind == IJavaElement.IMPORT_CONTAINER) return unit; return null; }
private boolean canPasteAll(IJavaElement destination) { for (int i= 0; i < fSources.length; i++) { if (! canPaste(fSources[i].getType(), destination)) return false; } return true; } private static boolean canPaste(int elementType, IJavaElement destination) {
@Override public RefactoringStatus checkFinalConditions(IProgressMonitor pm) throws CoreException { RefactoringStatus result= Checks.validateModifiesFiles( ResourceUtil.getFiles(new ICompilationUnit[]{getDestinationCu()}), getValidationContext()); return result; }
public RefactoringStatus setDestination(IJavaElement destination) { fDestination= destination; if (ReorgUtils.getCompilationUnit(destination) == null) return RefactoringStatus.createFatalErrorStatus(ReorgMessages.PasteAction_wrong_destination); if (! destination.exists()) return RefactoringStatus.createFatalErrorStatus(ReorgMessages.PasteAction_element_doesnot_exist); if (! canPasteAll(destination)) return RefactoringStatus.createFatalErrorStatus(ReorgMessages.PasteAction_invalid_destination); return new RefactoringStatus(); } private boolean canPasteAll(IJavaElement destination) {
public RefactoringStatus setDestination(IJavaElement destination) { fDestination= destination; if (ReorgUtils.getCompilationUnit(destination) == null) return RefactoringStatus.createFatalErrorStatus(ReorgMessages.PasteAction_wrong_destination); if (! destination.exists()) return RefactoringStatus.createFatalErrorStatus(ReorgMessages.PasteAction_element_doesnot_exist); if (! canPasteAll(destination)) return RefactoringStatus.createFatalErrorStatus(ReorgMessages.PasteAction_invalid_destination); return new RefactoringStatus(); } private boolean canPasteAll(IJavaElement destination) {
public static ReorgTypedSourcePasteStarter create(TypedSource[] typedSources, IJavaElement destination) { Assert.isNotNull(typedSources); Assert.isNotNull(destination); PasteTypedSourcesRefactoring pasteRefactoring= PasteTypedSourcesRefactoring.create(typedSources); if (pasteRefactoring == null) return null; if (! pasteRefactoring.setDestination(destination).isOK()) return null; return new ReorgTypedSourcePasteStarter(pasteRefactoring); }
static PasteTypedSourcesRefactoring create(TypedSource[] sources){ if (! isAvailable(sources)) return null; return new PasteTypedSourcesRefactoring(sources); } public RefactoringStatus setDestination(IJavaElement destination) {
private static boolean canPaste(int elementType, IJavaElement destination) { IType ancestorType= getAncestorType(destination); if (ancestorType != null) return canPasteToType(elementType); return canPasteToCu(elementType); } private static boolean canPasteToType(int elementType) {
private static boolean canPaste(int elementType, IJavaElement destination) { IType ancestorType= getAncestorType(destination); if (ancestorType != null) return canPasteToType(elementType); return canPasteToCu(elementType); } private static boolean canPasteToType(int elementType) {
@Override public RefactoringStatus checkFinalConditions(IProgressMonitor pm) throws CoreException { RefactoringStatus result= Checks.validateModifiesFiles( ResourceUtil.getFiles(new ICompilationUnit[]{getDestinationCu()}), getValidationContext()); return result; }
static PasteTypedSourcesRefactoring create(TypedSource[] sources){ if (! isAvailable(sources)) return null; return new PasteTypedSourcesRefactoring(sources); } public RefactoringStatus setDestination(IJavaElement destination) {
public RefactoringStatus checkFinalConditions(IProgressMonitor pm) throws CoreException { RefactoringStatus result= Checks.validateModifiesFiles( ResourceUtil.getFiles(new ICompilationUnit[]{getDestinationCu()}), getValidationContext()); return result; }
private boolean canPasteAll(IJavaElement destination) { for (int i= 0; i < fSources.length; i++) { if (! canPaste(fSources[i].getType(), destination)) return false; } return true; } private static boolean canPaste(int elementType, IJavaElement destination) {