Package ch.uzh.ifi.seal.changedistiller.model.entities

Examples of ch.uzh.ifi.seal.changedistiller.model.entities.Delete


     * @return the delete source code changes from the delete operation
     */
    public Delete createDeleteOperation(StructureEntityVersion structureEntity, DeleteOperation delete) {
        if (isUsableForChangeExtraction(delete.getNodeToDelete())) {
            SourceCodeEntity parent = delete.getParentNode().getEntity();
            return new Delete(structureEntity, delete.getNodeToDelete().getEntity(), parent);
        }
        return null;
    }
View Full Code Here


        if (diffNode.isAddition()) {
            Insert insert =
                    new Insert(fRootEntity, fRightASTHelper.createSourceCodeEntity(diffNode.getRight()), fParentEntity);
            fRefactoringContainer.addCandidate(new RefactoringCandidate(insert, diffNode));
        } else if (diffNode.isDeletion()) {
            Delete delete =
                    new Delete(fRootEntity, fLeftASTHelper.createSourceCodeEntity(diffNode.getLeft()), fParentEntity);
            fRefactoringContainer.addCandidate(new RefactoringCandidate(delete, diffNode));
        } else if (diffNode.isChanged()) {
            processFineGrainedChanges(diffNode);
        }
    }
View Full Code Here

        for (Insert ins : fInsertsToDelete) {
            fInserts.remove(ins);
        }
        fInsertsToDelete.clear();
        for (Iterator<Delete> it = fDeletes.iterator(); it.hasNext();) {
            Delete del = it.next();
            scc = classify(del);
            if ((scc != null) && !classifiedChanges.contains(scc)) {
                classifiedChanges.add(scc);
                it.remove();
            }
View Full Code Here

            if (insert.getParentEntity().getType() == JavaEntityType.SUPER_INTERFACE_TYPES) {
                insert.setChangeType(ChangeType.PARENT_INTERFACE_INSERT);
                result = insert;
            } else {
                boolean check = true;
                Delete del = null;
                for (Iterator<Delete> it = fDeletes.iterator(); it.hasNext() && check;) {
                    del = it.next();
                    if ((del.getRootEntity().getType() == JavaEntityType.CLASS)
                            && (del.getParentEntity().getType() != JavaEntityType.SUPER_INTERFACE_TYPES)
                            && del.getChangedEntity().getType().isType()) {
                        check = false;
                    }
                }
                if (check) {
                    insert.setChangeType(ChangeType.PARENT_CLASS_INSERT);
                    result = insert;
                } else {
                    result =
                            new Update(
                                    insert.getRootEntity(),
                                    del.getChangedEntity(),
                                    insert.getChangedEntity(),
                                    insert.getParentEntity());
                    result.setChangeType(ChangeType.PARENT_CLASS_CHANGE);
                    fDeletes.remove(del);
                }
View Full Code Here

    private SourceCodeChange handleFieldDeclarationChange(Insert insert) {
        SourceCodeChange result = null;
        // may lead to incorrect result (never happened so far); better: check for each
        // possible kind of type
        if (insert.getChangedEntity().getType().isType()) {
            Delete del =
                    findSpDeleteOperation(
                            insert.getRootEntity().getType(),
                            insert.getRootEntity().getUniqueName(),
                            insert.getParentEntity().getType(),
                            insert.getParentEntity().getUniqueName());
            if (del != null) {
                result =
                        new Update(
                                insert.getRootEntity(),
                                del.getChangedEntity(),
                                insert.getChangedEntity(),
                                insert.getParentEntity());
                fDeletes.remove(del);
                result.setChangeType(ChangeType.ATTRIBUTE_TYPE_CHANGE);
            }
        } else if (insert.getChangedEntity().getType() == JavaEntityType.JAVADOC) {
            Delete del =
                    findDeleteOperation(
                            insert.getRootEntity().getType(),
                            insert.getRootEntity().getUniqueName(),
                            insert.getParentEntity().getType(),
                            insert.getParentEntity().getUniqueName(),
                            insert.getChangedEntity().getType(),
                            null);
            if (del != null) {
                result =
                        new Update(
                                insert.getRootEntity(),
                                del.getChangedEntity(),
                                insert.getChangedEntity(),
                                insert.getParentEntity());
                result.setChangeType(ChangeType.DOC_UPDATE);
                fDeletes.remove(del);
            } else {
View Full Code Here

    }

    private SourceCodeChange handleTypeDeclarationChange(Insert insert) {
        SourceCodeChange result = null;
        if (insert.getChangedEntity().getType() == JavaEntityType.JAVADOC) {
            Delete del =
                    findDeleteOperation(
                            insert.getRootEntity().getType(),
                            insert.getRootEntity().getUniqueName(),
                            insert.getParentEntity().getType(),
                            insert.getParentEntity().getUniqueName(),
                            insert.getChangedEntity().getType(),
                            null);
            if (del != null) {
                result =
                        new Update(
                                insert.getRootEntity(),
                                del.getChangedEntity(),
                                insert.getChangedEntity(),
                                insert.getParentEntity());
                result.setChangeType(ChangeType.DOC_UPDATE);
                fDeletes.remove(del);
            } else {
View Full Code Here

    private SourceCodeChange handleMethodSignatureChange(Insert insert) {
        SourceCodeChange result = null;

        if (insert.getChangedEntity().getType() == JavaEntityType.JAVADOC) {
            Delete del =
                    findDeleteOperation(
                            insert.getRootEntity().getType(),
                            insert.getRootEntity().getUniqueName(),
                            insert.getParentEntity().getType(),
                            insert.getParentEntity().getUniqueName(),
                            insert.getChangedEntity().getType(),
                            null);
            if (del != null) {
                result =
                        new Update(
                                insert.getRootEntity(),
                                del.getChangedEntity(),
                                insert.getChangedEntity(),
                                insert.getParentEntity());
                result.setChangeType(ChangeType.DOC_UPDATE);
                fDeletes.remove(del);
            } else {
View Full Code Here

        SourceCodeChange result = null;
        // may lead to incorrect result (never happened so far); better: check for each
        // possible kind of type
        if (insert.getChangedEntity().getType().isType()) {
            if (insert.getChangedEntity().getUniqueName().endsWith(VOID_RETURN)) {
                Delete del =
                        findSpDeleteOperation(
                                insert.getRootEntity().getType(),
                                insert.getRootEntity().getUniqueName(),
                                insert.getParentEntity().getType(),
                                insert.getParentEntity().getUniqueName());

                del.setChangeType(ChangeType.RETURN_TYPE_DELETE);
                result = del;
            } else {
                Delete del = null;
                boolean check = true;
                // if a non-void type deletion in method declaration occurred
                // => RETURN_TYPE_CHANGE
                for (Iterator<Delete> it = fDeletes.iterator(); it.hasNext() && check;) {
                    del = it.next();
                    if ((insert.getRootEntity().getType() == del.getRootEntity().getType())
                            && insert.getRootEntity().getUniqueName().equals(del.getRootEntity().getUniqueName())
                            && (del.getParentEntity().getType() == JavaEntityType.METHOD_DECLARATION)
                            && del.getParentEntity().getUniqueName().equals(insert.getParentEntity().getUniqueName())
                            && del.getChangedEntity().getType().isType()
                            && !del.getChangedEntity().getUniqueName().matches(".*: void")) {
                        check = false;
                    }
                }
                if (!check) {
                    result =
                            new Update(
                                    insert.getRootEntity(),
                                    del.getChangedEntity(),
                                    insert.getChangedEntity(),
                                    insert.getParentEntity());
                    result.setChangeType(ChangeType.RETURN_TYPE_CHANGE);
                    fDeletes.remove(del);
                } else {
View Full Code Here

                            JavaEntityType.PARAMETER,
                            insert.getChangedEntity().getUniqueName(),
                            null,
                            null);

            Delete del =
                    findDeleteOperation(
                            insert.getRootEntity().getType(),
                            insert.getRootEntity().getUniqueName(),
                            JavaEntityType.PARAMETERS,
                            "",
                            JavaEntityType.PARAMETER,
                            insert.getChangedEntity().getUniqueName());
            // parameter renaming
            if (mov != null) {
                Delete d =
                        findDeleteOperation(
                                insert.getRootEntity().getType(),
                                insert.getRootEntity().getUniqueName(),
                                JavaEntityType.PARAMETERS,
                                "",
                                JavaEntityType.PARAMETER,
                                mov.getParentEntity().getUniqueName());
                if (d == null) {
                    insert.setChangeType(ChangeType.PARAMETER_INSERT);
                    result = insert;
                } else {
                    result =
                            new Update(
                                    insert.getRootEntity(),
                                    insert.getChangedEntity(),
                                    d.getChangedEntity(),
                                    insert.getParentEntity());
                    result.setChangeType(ChangeType.PARAMETER_RENAMING);
                    fMoves.remove(mov);
                    fDeletes.remove(d);
                }

                // SingleVariableDeclaration remains the same but the type
                // node (child) are not equal => PARAMETER_TYPE_CHANGE
            } else if (del != null) {
                Delete dell =
                        findDeleteOperation(
                                insert.getRootEntity().getType(),
                                insert.getRootEntity().getUniqueName(),
                                del.getChangedEntity().getType(),
                                del.getChangedEntity().getUniqueName(),
                                null,
                                null);
                if (dell == null) {
                    insert.setChangeType(ChangeType.PARAMETER_INSERT);
                    result = insert;
                } else {

                    // WTF how to remove the insert?

                    Insert i =
                            findInsertOperation(insert.getRootEntity().getType(), insert.getRootEntity()
                                    .getUniqueName(), insert.getChangedEntity().getType(), insert.getChangedEntity()
                                    .getUniqueName(), null, null);
                    if (i == null) {
                        insert.setChangeType(ChangeType.PARAMETER_INSERT);
                        result = insert;
                    } else {
                        result =
                                new Update(
                                        insert.getRootEntity(),
                                        dell.getChangedEntity(),
                                        i.getChangedEntity(),
                                        insert.getChangedEntity());
                        result.setChangeType(ChangeType.PARAMETER_TYPE_CHANGE);
                        fDeletes.remove(del);
                        fDeletes.remove(dell);
View Full Code Here

        } else if (insert.getChangedEntity().getUniqueName().equals(PUBLIC)) {
            result = extractIncreasingAccessibilityChange(insert);
        } else if (insert.getChangedEntity().getUniqueName().equals(PRIVATE)) {
            result = extractDecreasingAccessibilityChange(insert);
        } else if (insert.getChangedEntity().getUniqueName().equals(PROTECTED)) {
            Delete delPublic =
                    findDeleteOperation(
                            insert.getRootEntity().getType(),
                            insert.getRootEntity().getUniqueName(),
                            JavaEntityType.MODIFIERS,
                            "",
                            JavaEntityType.MODIFIER,
                            PUBLIC);
            Delete delPrivate =
                    findDeleteOperation(
                            insert.getRootEntity().getType(),
                            insert.getRootEntity().getUniqueName(),
                            JavaEntityType.MODIFIERS,
                            "",
View Full Code Here

TOP

Related Classes of ch.uzh.ifi.seal.changedistiller.model.entities.Delete

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.