Example usage for org.eclipse.jdt.core IJavaElement FIELD

List of usage examples for org.eclipse.jdt.core IJavaElement FIELD

Introduction

In this page you can find the example usage for org.eclipse.jdt.core IJavaElement FIELD.

Prototype

int FIELD

To view the source code for org.eclipse.jdt.core IJavaElement FIELD.

Click Source Link

Document

Constant representing a field.

Usage

From source file:edu.illinois.compositerefactorings.refactorings.MemberCheckUtil.java

License:Open Source License

public static RefactoringStatus checkMembersInDestinationType(IMember[] members, IType destinationType)
        throws JavaModelException {
    RefactoringStatus result = new RefactoringStatus();
    for (int i = 0; i < members.length; i++) {
        if (members[i].getElementType() == IJavaElement.METHOD)
            checkMethodInType(destinationType, result, (IMethod) members[i]);
        else if (members[i].getElementType() == IJavaElement.FIELD)
            checkFieldInType(destinationType, result, (IField) members[i]);
        else if (members[i].getElementType() == IJavaElement.TYPE)
            checkTypeInType(destinationType, result, (IType) members[i]);
    }// ww w .j  av  a2  s  . c  o m
    return result;
}

From source file:edu.wpi.cs.jburge.SEURAT.actions.AssociateArtifactAction.java

License:Open Source License

/** Executes the association. We get our selected rationale item and 
 * associated it with the java element selected.
 * /* w  w w.  java2s.c o m*/
 */
public void run() {
    //Get our selected items. Send a message to the user to confirm that
    //this is the correct association.
    if (navigatorSelection != null) {
        ISelection selection = viewer.getSelection();
        obj = ((IStructuredSelection) selection).getFirstElement();
        if (obj instanceof TreeParent) {
            String assQ = "Associate '" + ((TreeParent) obj).getName() + "' with "
                    + navigatorSelection.getElementName() + "?";

            boolean selOk = showQuestion(assQ);
            //            showMessage(navigatorSelection.getHandleIdentifier());
            //            System.out.println(navigatorSelection.getHandleIdentifier());
            if (selOk) {
                cstart = 0;

                ourRes = null;
                try {

                    if (navigatorSelection.getElementType() == IJavaElement.COMPILATION_UNIT) {
                        ourRes = navigatorSelection.getCorrespondingResource();
                    } else {
                        ourRes = navigatorSelection.getUnderlyingResource();
                        if (ourRes != null) {
                            //                        ***                        System.out.println("this one wasn't null?");
                        }
                        //find the enclosing class file
                        IJavaElement nextE = navigatorSelection.getParent();
                        while ((nextE != null) && (nextE.getElementType() != IJavaElement.COMPILATION_UNIT)) {
                            //                        ***                        System.out.println("Name = " + nextE.getElementName());
                            //                        ***                     System.out.println("Type = " + nextE.getElementType());
                            nextE = nextE.getParent();
                        }
                        try {
                            //                        ***                     System.out.println("getting our resource");
                            //                  ourRes = nextE.getUnderlyingResource();
                            ourRes = nextE.getCorrespondingResource();
                            ourRes = nextE.getResource();
                        } catch (JavaModelException ex) {
                            System.out.println("exception getting resource?");
                        }
                        //                     ***                     System.out.println("Final name = " + nextE.getElementName());
                        //                     ***                     System.out.println("Final type = " + nextE.getElementType());
                        if (ourRes == null) {
                            //see if we can get the element from the working copy
                            IJavaElement original = nextE.getPrimaryElement();
                            //                        Get working copy has been deprecated
                            //                        IJavaElement original = ((ICompilationUnit) ((ICompilationUnit) nextE).getWorkingCopy()).getOriginalElement();
                            ourRes = original.getCorrespondingResource();

                        }
                    }
                    //                  ourRes = navigatorSelection.getUnderlyingResource();
                    if (ourRes == null) {
                        //                     ***                     System.out.println("why would our resource be null?");
                    }
                    //                  ***                  System.out.println("FullPath = " + ourRes.getFullPath().toString());
                    //                  ***                  System.out.println("now checking file extension?");
                    if (ourRes.getFullPath().getFileExtension().compareTo("java") == 0) {
                        //                     ***                     System.out.println("creating our file?");
                        IJavaElement myJavaElement = JavaCore.create((IFile) ourRes);
                        //                     ***                  System.out.println("created an element?");
                        if (myJavaElement.getElementType() == IJavaElement.COMPILATION_UNIT) {
                            //                        ***                     System.out.println("Compilation Unit");
                            ICompilationUnit myCompilationUnit = (ICompilationUnit) myJavaElement;

                            IType[] myTypes = myCompilationUnit.getTypes();
                            boolean found = false;
                            int i = 0;
                            while ((!found) && i < myTypes.length) {
                                //selected item was the class itself
                                if (navigatorSelection.getElementType() == IJavaElement.COMPILATION_UNIT) {
                                    //                              ***                            System.out.println("found the class");
                                    if (myTypes[i].isClass()) {
                                        found = true;
                                        cstart = myTypes[i].getNameRange().getOffset();
                                    }
                                } else if (navigatorSelection.getElementType() == IJavaElement.FIELD) {
                                    //                              ***                            System.out.println("looking for types");
                                    IField[] myFields = myTypes[i].getFields();
                                    for (int j = 0; j < myFields.length; j++) {
                                        if (myFields[j].getElementName()
                                                .compareTo(navigatorSelection.getElementName()) == 0) {
                                            //                                    ***                               System.out.println("found a type");
                                            found = true;
                                            cstart = myFields[j].getNameRange().getOffset();
                                        }
                                    }

                                } else if (navigatorSelection.getElementType() == IJavaElement.METHOD) {
                                    //                              ***                            System.out.println("looking for a method");
                                    IMethod[] myMethods = myTypes[i].getMethods();
                                    for (int j = 0; j < myMethods.length; j++) {
                                        if (myMethods[j].getElementName()
                                                .compareTo(navigatorSelection.getElementName()) == 0) {
                                            //                                    ***                               System.out.println("found a method");
                                            found = true;
                                            cstart = myMethods[j].getNameRange().getOffset();
                                        }
                                    }
                                }
                                //don't forget to increment!
                                i++;
                            } //end while
                        } else {
                            //                        ***                      System.out.println("not a compilation unit?");
                            System.out.println(myJavaElement.getElementType());
                        }
                        //ok... now what type is our selected item? 
                        System.out.println("got the resource?");
                        if (ourRes == null) {
                            System.out.println("null resource???");
                        }
                    } else {
                        System.out.println("not a java file?");
                    }
                    //                  from the newsgroup - in a runnable?                  
                    ResourcesPlugin.getWorkspace().run(new IWorkspaceRunnable() {
                        public void run(IProgressMonitor monitor) {
                            try {
                                //                           ***                  System.out.println("line number = " + new Integer(lineNumber).toString());
                                IMarker ratM = ourRes.createMarker("SEURAT.ratmarker");
                                String dbname = RationaleDB.getDbName();
                                String markD = "Alt: '" + ((TreeParent) obj).getName() + "'   Rationale DB: '"
                                        + dbname + "'";
                                ratM.setAttribute(IMarker.MESSAGE, markD);
                                ratM.setAttribute(IMarker.CHAR_START, cstart);
                                ratM.setAttribute(IMarker.CHAR_END, cstart + 1);
                                ratM.setAttribute(IMarker.SEVERITY, 0);
                                String artName = navigatorSelection.getElementName();
                                ratM.setAttribute("alternative", ((TreeParent) obj).getName());
                                SEURATResourcePropertiesManager.addPersistentProperty(ourRes, "Rat", "true");
                                RationaleDB d = RationaleDB.getHandle();
                                d.associateAlternative(((TreeParent) obj).getName(),
                                        navigatorSelection.getHandleIdentifier(), ourRes.getName(), artName,
                                        markD);

                            } catch (CoreException e) {
                                e.printStackTrace();
                            }
                        }
                    }, null);
                    //                  ***                  System.out.println("adding persistent property");

                    SEURATDecoratorManager.addSuccessResources(ourRes);
                    //                  ***                  System.out.println("added our property");  
                    // Refresh the label decorations... Change it to DemoDecoratorWithImageCaching if image caching should be used
                    //                  ((TreeParent) obj).setStatus(RationaleErrorLevel.ERROR);
                    viewer.update((TreeParent) obj, null);
                    SEURATLightWeightDecorator.getRatDecorator().refresh();
                    //                  ***                  System.out.println("refresh");

                } catch (Exception ex) {
                    ex.printStackTrace();
                    System.out.println("an exception occured in AssociateArtifactAction");
                }

            } else
                System.out.println("selection rejected");
        }
    } else {
        System.out.println("No java element selected...");
    }
}

From source file:edu.wpi.cs.jburge.SEURAT.actions.RemoveRationaleAssociation.java

License:Open Source License

/**
 * This is when the action really runs/* www. jav  a2s.  c  om*/
 * @param action - not used
 */
public void run(IAction action) {
    IJavaElement navigatorSelection;
    //      ***      System.out.println("removing association");
    if (selection.getFirstElement() instanceof IJavaElement) {
        //         ***         System.out.println("we are a java element");
        navigatorSelection = (IJavaElement) selection.getFirstElement();
        ourRes = null;

        boolean proceed = showQuestion("Do you want to delete all associations to this file?");
        if (!proceed) {
            return;
        }

        //find the associated resource that goes with the element
        try {
            if (navigatorSelection.getElementType() == IJavaElement.COMPILATION_UNIT) {
                ourRes = navigatorSelection.getCorrespondingResource();

            } else {
                ourRes = navigatorSelection.getUnderlyingResource();
                if (ourRes != null) {
                    //                  ***                  System.out.println("this one wasn't null?");
                }
                //find the enclosing class file
                IJavaElement nextE = navigatorSelection.getParent();
                while ((nextE != null) && (nextE.getElementType() != IJavaElement.COMPILATION_UNIT)) {
                    //                  ***                  System.out.println("Name = " + nextE.getElementName());
                    //                  ***                  System.out.println("Type = " + nextE.getElementType());
                    nextE = nextE.getParent();
                }
                try {
                    //                  ***                  System.out.println("getting our resource");
                    //                  ourRes = nextE.getUnderlyingResource();
                    ourRes = nextE.getCorrespondingResource();
                    ourRes = nextE.getResource();
                } catch (JavaModelException ex) {
                    //                  ***                  System.out.println("exception getting resource?");
                }
                System.out.println("Final name = " + nextE.getElementName());
                System.out.println("Final type = " + nextE.getElementType());
                if (ourRes == null) {
                    //                  ***                  System.out.println("see if there's a working copy");
                    IJavaElement original = nextE.getPrimaryElement();
                    //see if we can get the element from the working copy
                    //                  IJavaElement original = ((IWorkingCopy) ((ICompilationUnit) nextE).getWorkingCopy()).getOriginalElement();
                    ourRes = original.getCorrespondingResource();
                }
            }
            //                  ourRes = navigatorSelection.getUnderlyingResource();
            if (ourRes == null) {
                //               ***               System.out.println("why would our resource be null?");
            }
            //            ***            System.out.println("FullPath = " + ourRes.getFullPath().toString());
            //            ***            System.out.println("now checking file extension?");
            if (ourRes.getFullPath().getFileExtension().compareTo("java") == 0) {
                //               ***               System.out.println("creating our file?");
                IJavaElement myJavaElement = JavaCore.create((IFile) ourRes);
                //               ***                  System.out.println("created an element?");
                if (myJavaElement.getElementType() == IJavaElement.COMPILATION_UNIT) {
                    //                  ***                  System.out.println("Compilation Unit");
                    ICompilationUnit myCompilationUnit = (ICompilationUnit) myJavaElement;

                    IType[] myTypes = myCompilationUnit.getTypes();
                    boolean found = false;
                    int i = 0;
                    while ((!found) && i < myTypes.length) {
                        //selected item was the class itself
                        if (navigatorSelection.getElementType() == IJavaElement.COMPILATION_UNIT) {
                            //                        ***                     System.out.println("found the class");
                            if (myTypes[i].isClass()) {
                                found = true;
                            }
                        } else if (navigatorSelection.getElementType() == IJavaElement.FIELD) {
                            //                        ***                     System.out.println("looking for types");
                            IField[] myFields = myTypes[i].getFields();
                            for (int j = 0; j < myFields.length; j++) {
                                if (myFields[j].getElementName()
                                        .compareTo(navigatorSelection.getElementName()) == 0) {
                                    //                              ***                           System.out.println("found a type");
                                    found = true;
                                }
                            }

                        } else if (navigatorSelection.getElementType() == IJavaElement.METHOD) {
                            //                        ***                     System.out.println("looking for a method");
                            IMethod[] myMethods = myTypes[i].getMethods();
                            for (int j = 0; j < myMethods.length; j++) {
                                if (myMethods[j].getElementName()
                                        .compareTo(navigatorSelection.getElementName()) == 0) {
                                    //                              ***                           System.out.println("found a method");
                                    found = true;
                                }
                            }
                        }
                        //don't forget to increment!
                        i++;
                    } //end while

                } else {
                    //                  ***                  System.out.println("not a compilation unit?");
                    //                  ***                  System.out.println(myJavaElement.getElementType());
                }
                //ok... now what type is our selected item? 
                //               ***               System.out.println("got the resource?");
                if (ourRes == null) {
                    //                  ***                  System.out.println("null resource???");
                }
            } else {
                //               ***                  System.out.println("not a java file?");
            }
            //            from the newsgroup - in a runnable?                  
            ResourcesPlugin.getWorkspace().run(new IWorkspaceRunnable() {
                public void run(IProgressMonitor monitor) {
                    try {
                        //                     ***                           System.out.println("removing our markers, etc.");
                        //                     ourResource.setPersistentProperty()
                        SEURATResourcePropertiesManager.addPersistentProperty(ourRes, "Rat", "false");
                        SEURATDecoratorManager.addSuccessResources(ourRes);
                        ourRes.deleteMarkers("SEURAT.ratmarker", true, IResource.DEPTH_INFINITE);
                        RationaleDB d = RationaleDB.getHandle();
                        d.removeAssociation(ourRes.getName());
                    } catch (CoreException e) {
                        e.printStackTrace();
                    }
                }
            }, null);

        } catch (Exception ex) {
            ex.printStackTrace();
            System.out.println("an exception occured in AssociateArtifactAction");
        }
    }

}

From source file:edu.wpi.cs.jburge.SEURAT.actions.RestoreAssociations.java

License:Open Source License

/**
 * This is where the action takes place when the restore is invoked from the SEURAT pull-down menu.
 *///from  w ww  .j a v a2 s.  co  m
public void run() {
    //find all our resources
    RationaleDB d = RationaleDB.getHandle();
    Vector<Association> ourResources = d.getAssociations();
    Iterator<Association> resI = ourResources.iterator();
    try {

        while (resI.hasNext()) {
            cstart = 0;
            ourAssoc = (Association) resI.next();
            String ourArtifact = ourAssoc.getArtifact();

            //System.out.println(ourArtifact);
            //System.out.println(ourAssoc.getResource());
            try {
                // We create the java element from its artifact that is stored in the DB
                // and then search through the resource to find out where the marker needs to be placed.
                IJavaElement ourEle = JavaCore.create(ourArtifact);
                //System.out.println(ourEle.getElementName() + " " + ourEle.getElementType());

                if (ourEle.getElementType() == IJavaElement.COMPILATION_UNIT) {
                    ourRes = ourEle.getCorrespondingResource();
                } else {
                    ourRes = ourEle.getUnderlyingResource();
                    if (ourRes != null) {
                        //                     ***                        System.out.println("this one wasn't null?");
                    }
                    //find the enclosing class file
                    IJavaElement nextE = ourEle.getParent();
                    while ((nextE != null) && (nextE.getElementType() != IJavaElement.COMPILATION_UNIT)) {
                        //                     ***                        System.out.println("Name = " + nextE.getElementName());
                        //                     ***                     System.out.println("Type = " + nextE.getElementType());
                        nextE = nextE.getParent();
                    }
                    try {
                        //                     ***                     System.out.println("getting our resource");
                        //                  ourRes = nextE.getUnderlyingResource();
                        ourRes = nextE.getCorrespondingResource();
                        ourRes = nextE.getResource();
                    } catch (JavaModelException ex) {
                        System.out.println("exception getting resource?");
                    }
                    //                  ***                     System.out.println("Final name = " + nextE.getElementName());
                    //                  ***                     System.out.println("Final type = " + nextE.getElementType());
                    if (ourRes == null) {
                        //                     ***                        System.out.println("see if there's a working copy");
                        IJavaElement original = nextE.getPrimaryElement();
                        //see if we can get the element from the working copy
                        //                     IJavaElement original = ((IWorkingCopy) ((ICompilationUnit) nextE).getWorkingCopy()).getOriginalElement();
                        ourRes = original.getCorrespondingResource();
                    }
                }
                //                  ourRes = navigatorSelection.getUnderlyingResource();
                if (ourRes == null) {
                    //                  ***                     System.out.println("why would our resource be null?");
                }
                //               ***                  System.out.println("FullPath = " + ourRes.getFullPath().toString());
                //               ***                  System.out.println("now checking file extension?");
                if (ourRes.getFullPath().getFileExtension().compareTo("java") == 0) {
                    //                  ***                     System.out.println("creating our file?");
                    IJavaElement myJavaElement = JavaCore.create((IFile) ourRes);
                    //                  ***                  System.out.println("created an element?");
                    if (myJavaElement.getElementType() == IJavaElement.COMPILATION_UNIT) {
                        //                     ***                     System.out.println("Compilation Unit");
                        ICompilationUnit myCompilationUnit = (ICompilationUnit) myJavaElement;

                        IType[] myTypes = myCompilationUnit.getTypes();
                        boolean found = false;
                        int i = 0;
                        while ((!found) && i < myTypes.length) {
                            //selected item was the class itself
                            if (ourEle.getElementType() == IJavaElement.COMPILATION_UNIT) {
                                //                           ***                            System.out.println("found the class");
                                if (myTypes[i].isClass()) {
                                    found = true;
                                    cstart = myTypes[i].getNameRange().getOffset();
                                }
                            } else if (ourEle.getElementType() == IJavaElement.FIELD) {
                                //                           ***                            System.out.println("looking for types");
                                IField[] myFields = myTypes[i].getFields();
                                for (int j = 0; j < myFields.length; j++) {
                                    if (myFields[j].getElementName().compareTo(ourEle.getElementName()) == 0) {
                                        //                                 ***                               System.out.println("found a type");
                                        found = true;
                                        cstart = myFields[j].getNameRange().getOffset();
                                    }
                                }

                            } else if (ourEle.getElementType() == IJavaElement.METHOD) {
                                //                           ***                            System.out.println("looking for a method");
                                IMethod[] myMethods = myTypes[i].getMethods();
                                for (int j = 0; j < myMethods.length; j++) {
                                    if (myMethods[j].getElementName().compareTo(ourEle.getElementName()) == 0) {
                                        //                                 ***                         System.out.println("found a method");
                                        found = true;
                                        cstart = myMethods[j].getNameRange().getOffset();
                                    }
                                }
                            }
                            //don't forget to increment!
                            i++;
                        } //end while

                    } else {
                        //                     ***                      System.out.println("not a compilation unit?");
                        System.out.println(myJavaElement.getElementType());
                    }
                    //ok... now what type is our selected item? 
                    System.out.println("got the resource?");
                    if (ourRes == null) {
                        //                     ***                     System.out.println("null resource???");
                    }
                } else {
                    //                  ***                     System.out.println("not a java file?");
                }
                //               from the newsgroup - in a runnable?                  
                ResourcesPlugin.getWorkspace().run(new IWorkspaceRunnable() {
                    public void run(IProgressMonitor monitor) {
                        try {
                            //                        ***                  System.out.println("line number = " + new Integer(lineNumber).toString());
                            IMarker ratM = ourRes.createMarker("SEURAT.ratmarker");
                            String markD = ourAssoc.getMsg();
                            ratM.setAttribute(IMarker.MESSAGE, markD);
                            ratM.setAttribute(IMarker.CHAR_START, cstart);
                            ratM.setAttribute(IMarker.CHAR_END, cstart + 1);
                            ratM.setAttribute(IMarker.SEVERITY, 0);
                            System.out.println(cstart);
                            Alternative ourAlt = (Alternative) RationaleDB
                                    .getRationaleElement(ourAssoc.getAlt(), RationaleElementType.ALTERNATIVE);
                            ratM.setAttribute("alternative", ourAlt.getName());
                            SEURATResourcePropertiesManager.addPersistentProperty(ourRes, "Rat", "true");

                        } catch (CoreException e) {
                            e.printStackTrace();
                        }
                    }
                }, null);
                //               ***                  System.out.println("adding persistent property");

                SEURATDecoratorManager.addSuccessResources(ourRes);
                //               ***                  System.out.println("added our property");  
                // Refresh the label decorations... Change it to DemoDecoratorWithImageCaching if image caching should be used
                //               ((TreeParent) obj).setStatus(RationaleErrorLevel.ERROR);
                //              viewer.update((TreeParent) obj, null);
                //for some reason the next line is giving us an exception - ???
                //it doesn't seem to be needed - the decorator appears.
                //         SEURATLightWeightDecorator.getRatDecorator().refresh();
                //               ***                  System.out.println("refresh");

            } catch (Exception e) {
                System.out.println("couldn't create our element " + ourArtifact);
            }

        }
    } catch (Exception ex) {
        System.out.println("exception while trying to add associations");
    }

}

From source file:edu.wpi.cs.jburge.SEURAT.SEURATElementChangedManager.java

License:Open Source License

/**
 * Determines whether a change occurred to an associated artifact, and if it did,
 * handles the change.  It basically works by saving the first element it gets and
 * mapping it to a corresponding element later on (provided that the elements are actually
 * associated with some alternative).  Two exceptions come up: one, if it's a compilation unit,
 * we just use the getMovedToElement() method to take care of the mapping for us (we don't have
 * access to this for single methods due to the confusing/arcane way they decided to code
 * java element changes).  The other exception is also for compilation units- we have to manually check
 * the java elements attached to it such as methods and fields to see if any of those are associated
 * and handle the changes if they are, because we don't get deltas for them.
 * //from   w w  w  . j ava2s. co m
 * @param change - the possible change, an IJavaElementDelta
 */
private void handleChange(IJavaElementDelta change) {
    System.out
            .println("HandleChange: " + change.getElement() + " " + change.toString() + " " + change.getKind());
    //System.out.println("Saved Delta: " + savedDelta.getElement() + " " + savedDelta.toString() + " " + savedDelta.getKind());
    IJavaElement movedTo = change.getMovedToElement();
    if (change.getKind() == IJavaElementDelta.ADDED || change.getKind() == IJavaElementDelta.REMOVED) {
        if (change.getKind() == IJavaElementDelta.REMOVED && savedDelta == null && movedTo == null) {
            checkDeltaAndSave(change);
        } else if (change.getKind() == IJavaElementDelta.ADDED && savedDelta == null && movedTo == null) {
            // always save this kind of delta, can't check if in DB without reference to removed delta
            savedDelta = change;
            System.out.println("Saved a delta");
        } else {
            IJavaElement oldElt = null;
            IJavaElement newElt = null;
            if (change.getKind() == IJavaElementDelta.ADDED) {
                // get the saved added delta
                oldElt = savedDelta.getElement();
                newElt = change.getElement();
            } else { // change.getKind() == IJavaElementDelta.REMOVED
                if (movedTo != null) {
                    // process the move
                    checkDeltaAndSave(change); // in this case we're not really saving, just checking
                    newElt = movedTo;
                    oldElt = change.getElement();
                } else {
                    // check the removed delta, then get the saved added delta
                    checkDeltaAndSave(change);
                    if (savedDelta != null) { // sanity check
                        newElt = savedDelta.getElement();
                        oldElt = change.getElement();
                    }
                }
            }
            // Get the saved association and the old artName
            Association ourAssoc = savedAssoc;
            String oldArtName = oldElt.getElementName();
            // Reset the saved delta and association
            savedDelta = null;
            savedAssoc = null;

            // Make sure the association is in the database
            if (ourAssoc != null && ourAssoc.getAlt() != -1) {
                // Find the artifact itself
                IResource newResource = null;
                int cstart = 0;
                IField[] fields = null;
                IMethod[] methods = null;
                try {
                    ICompilationUnit compUnit = null;
                    if (newElt.getElementType() != IJavaElement.COMPILATION_UNIT) {
                        newResource = newElt.getUnderlyingResource();
                        compUnit = (ICompilationUnit) newElt.getAncestor(IJavaElement.COMPILATION_UNIT);
                    } else {
                        newResource = newElt.getCorrespondingResource();
                        compUnit = (ICompilationUnit) newElt;
                    }
                    IType[] myTypes = compUnit.getTypes();
                    boolean found = false;
                    int i = 0;
                    while ((!found) && i < myTypes.length) {
                        //selected item was the class itself
                        if (newElt.getElementType() == IJavaElement.COMPILATION_UNIT) {
                            if (myTypes[i].isClass()) {
                                found = true;
                                cstart = myTypes[i].getNameRange().getOffset();
                                fields = myTypes[i].getFields();
                                methods = myTypes[i].getMethods();
                            }
                        } else if (newElt.getElementType() == IJavaElement.FIELD) {
                            IField[] myFields = myTypes[i].getFields();
                            for (int j = 0; j < myFields.length; j++) {
                                if (myFields[j].getElementName().compareTo(newElt.getElementName()) == 0) {
                                    found = true;
                                    cstart = myFields[j].getNameRange().getOffset();
                                }
                            }
                        } else if (newElt.getElementType() == IJavaElement.METHOD) {
                            IMethod[] myMethods = myTypes[i].getMethods();
                            for (int j = 0; j < myMethods.length; j++) {
                                if (myMethods[j].getElementName().compareTo(newElt.getElementName()) == 0) {
                                    found = true;
                                    cstart = myMethods[j].getNameRange().getOffset();
                                }
                            }
                        }
                        i++;
                    } //end while
                } catch (JavaModelException jme) {
                    System.err.println(jme.toString());
                }
                System.out.println("DEBUG: newresource " + newResource.getName() + " cstart " + cstart);

                // Get new values for association data
                String newRes = newResource.getName();
                String newArtName = newElt.getElementName();
                String newArt = newElt.getHandleIdentifier();

                IResource oldResource = null;
                // Now, the time-consuming part.  If this is a compilation unit, we need to go through
                // all of its fields and methods and if they have associations, update them.
                if (newElt.getElementType() == IJavaElement.COMPILATION_UNIT) {
                    for (int i = 0; i < fields.length; i++) {
                        checkAssocAndUpdate(fields[i], newRes, null);
                    }
                    for (int i = 0; i < methods.length; i++) {
                        String oldSubArtName = methods[i].getElementName();
                        String oldSubArtNameJava = oldSubArtName + ".java";
                        if ((oldSubArtName == oldArtName || oldSubArtNameJava == oldArtName)
                                && oldArtName != newArtName) {
                            // Names of old comp unit and old method are same; this is a constructor, and its name has changed
                            checkAssocAndUpdate(methods[i], newRes, oldSubArtName);
                        } else {
                            checkAssocAndUpdate(methods[i], newRes, null);
                        }
                    }
                }
                // If we're not dealing with a compilation unit, a single method/field was renamed or moved.
                // If it was moved we need to know the old resource to change resource properties (it might not
                // have rationale anymore) so we save that now.
                else {
                    oldResource = oldElt.getResource();
                }

                // Update them
                ourAssoc.setArtifact(newArt);
                ourAssoc.setResource(newRes);
                ourAssoc.setArtName(newArtName);

                System.out.println("oldArt became " + newArt);
                System.out.println("oldRes became " + newRes);
                System.out.println(oldArtName + " became " + newArtName);

                // Send the update to the DB
                ourAssoc.toDatabase(oldArtName);

                // Update the marker- this will sometimes give us "resource tree locked" exceptions.
                // However, in the cases where it does, we're making changes to a compilation unit
                // and the markers will stay where they are.
                try {
                    IMarker ratM = newResource.createMarker("SEURAT.ratmarker");
                    String markD = ourAssoc.getMsg();
                    ratM.setAttribute(IMarker.MESSAGE, markD);
                    ratM.setAttribute(IMarker.CHAR_START, cstart);
                    ratM.setAttribute(IMarker.CHAR_END, cstart + 1);
                    ratM.setAttribute(IMarker.SEVERITY, 0);
                    System.out.println(cstart);
                    Alternative ourAlt = (Alternative) RationaleDB.getRationaleElement(ourAssoc.getAlt(),
                            RationaleElementType.ALTERNATIVE);
                    ratM.setAttribute("alternative", ourAlt.getName());
                } catch (CoreException e) {
                    System.err.println(e.toString());
                }

                // If the element was moved, remove the persistent property from the old resource.
                // This is a hack, because if there is associated rationale remaining in the old resource
                // it still removes the decorator, but the next time restoreAssociations is called it will
                // be back.  I couldn't see a better way to do it short of rewriting the decorator and/or resource properties manager.
                if (oldResource != null) { // it will be null for a compilation unit because we didn't set it
                    SEURATResourcePropertiesManager.addPersistentProperty(oldResource, "Rat", "false");
                    SEURATDecoratorManager.addSuccessResources(oldResource);
                }
                // add property for the new resource in all cases
                SEURATResourcePropertiesManager.addPersistentProperty(newResource, "Rat", "true");
                SEURATDecoratorManager.addSuccessResources(newResource);
            }
        }
    }
}

From source file:edu.wpi.cs.jburge.SEURAT.views.RationaleExplorer.java

License:Open Source License

/**
 * This method is used to associate the java file with alternative in the ratinale 
 * explore in the java direction/*  www .j  ava2s.  c o m*/
 */
public void associateAlternative(RationaleUpdateEvent e)

{
    //get the Java element selected in the Package Explorer from the RationaleUpdateEvent
    navigatorSelection = e.getIJavaElement();

    if (navigatorSelection != null) {

        ISelection selection = viewer.getSelection();

        obj = ((IStructuredSelection) selection).getFirstElement();

        //whether an alternative is selected?
        if (obj != null && ((TreeParent) obj).getType() == RationaleElementType.ALTERNATIVE) {
            alternativeName = ((TreeParent) obj).getName();
        }
        //if there is no alternative selected, provide a select items of alternative
        else {
            SelectItem selectItem = new SelectItem(ourDisplay, RationaleElementType.fromString("Alternative"));
            //DEBUG: Is this where the infinite loop is? (YQ)
            if (selectItem == null) {
                System.out.println("NULL selectItem at line 2098");
            }
            if (selectItem.getNewItem() == null) {
                System.out.println("NULL Pointer at line 2099 in RationaleExplorer.java Expect Crashes");
            }
            alternativeName = selectItem.getNewItem().getName();
        }

        String assQ = "Associate '" + alternativeName + "' with " + navigatorSelection.getElementName() + "?";

        boolean selOk = showQuestion(assQ);
        if (selOk) {
            cstart = 0;

            ourRes = null;
            try {

                if (navigatorSelection.getElementType() == IJavaElement.COMPILATION_UNIT) {
                    ourRes = navigatorSelection.getCorrespondingResource();
                } else {
                    ourRes = navigatorSelection.getUnderlyingResource();
                    if (ourRes != null) {
                        //                     ***                        System.out.println("this one wasn't null?");
                    }
                    //find the enclosing class file
                    IJavaElement nextE = navigatorSelection.getParent();
                    while ((nextE != null) && (nextE.getElementType() != IJavaElement.COMPILATION_UNIT)) {
                        //                     ***                        System.out.println("Name = " + nextE.getElementName());
                        //                     ***                     System.out.println("Type = " + nextE.getElementType());
                        nextE = nextE.getParent();
                    }
                    try {
                        //                     ***                     System.out.println("getting our resource");
                        //                  ourRes = nextE.getUnderlyingResource();
                        ourRes = nextE.getCorrespondingResource();
                        ourRes = nextE.getResource();
                    } catch (JavaModelException ex) {
                        System.out.println("exception getting resource?");
                    }
                    //                  ***                     System.out.println("Final name = " + nextE.getElementName());
                    //                  ***                     System.out.println("Final type = " + nextE.getElementType());
                    if (ourRes == null) {
                        //see if we can get the element from the working copy
                        IJavaElement original = nextE.getPrimaryElement();
                        //                     Get working copy has been deprecated
                        //                     IJavaElement original = ((ICompilationUnit) ((ICompilationUnit) nextE).getWorkingCopy()).getOriginalElement();
                        ourRes = original.getCorrespondingResource();

                    }
                }
                //                  ourRes = navigatorSelection.getUnderlyingResource();
                if (ourRes == null) {
                    //                  ***                     System.out.println("why would our resource be null?");
                }
                //               ***                  System.out.println("FullPath = " + ourRes.getFullPath().toString());
                //               ***                  System.out.println("now checking file extension?");
                if (ourRes.getFullPath().getFileExtension().compareTo("java") == 0) {
                    //                  ***                     System.out.println("creating our file?");
                    IJavaElement myJavaElement = JavaCore.create((IFile) ourRes);
                    //                  ***                  System.out.println("created an element?");
                    if (myJavaElement.getElementType() == IJavaElement.COMPILATION_UNIT) {
                        //                     ***                     System.out.println("Compilation Unit");
                        ICompilationUnit myCompilationUnit = (ICompilationUnit) myJavaElement;

                        IType[] myTypes = myCompilationUnit.getTypes();
                        boolean found = false;
                        int i = 0;
                        while ((!found) && i < myTypes.length) {
                            //selected item was the class itself
                            if (navigatorSelection.getElementType() == IJavaElement.COMPILATION_UNIT) {
                                //                           ***                            System.out.println("found the class");
                                if (myTypes[i].isClass()) {
                                    found = true;
                                    cstart = myTypes[i].getNameRange().getOffset();
                                }
                            } else if (navigatorSelection.getElementType() == IJavaElement.FIELD) {
                                //                           ***                            System.out.println("looking for types");
                                IField[] myFields = myTypes[i].getFields();
                                for (int j = 0; j < myFields.length; j++) {
                                    if (myFields[j].getElementName()
                                            .compareTo(navigatorSelection.getElementName()) == 0) {
                                        //                                 ***                               System.out.println("found a type");
                                        found = true;
                                        cstart = myFields[j].getNameRange().getOffset();
                                    }
                                }

                            } else if (navigatorSelection.getElementType() == IJavaElement.METHOD) {
                                //                           ***                            System.out.println("looking for a method");
                                IMethod[] myMethods = myTypes[i].getMethods();
                                for (int j = 0; j < myMethods.length; j++) {
                                    if (myMethods[j].getElementName()
                                            .compareTo(navigatorSelection.getElementName()) == 0) {
                                        //                                 ***                               System.out.println("found a method");
                                        found = true;
                                        cstart = myMethods[j].getNameRange().getOffset();
                                    }
                                }
                            }
                            //don't forget to increment!
                            i++;
                        } //end while
                    } else {
                        //                     ***                      System.out.println("not a compilation unit?");
                        System.out.println(myJavaElement.getElementType());
                    }
                    //ok... now what type is our selected item? 
                    System.out.println("got the resource?");
                    if (ourRes == null) {
                        System.out.println("null resource???");
                    }
                } else {
                    System.out.println("not a java file?");
                }
                //               from the newsgroup - in a runnable?                  
                ResourcesPlugin.getWorkspace().run(new IWorkspaceRunnable() {
                    public void run(IProgressMonitor monitor) {
                        try {
                            //                        ***                  System.out.println("line number = " + new Integer(lineNumber).toString());
                            IMarker ratM = ourRes.createMarker("SEURAT.ratmarker");
                            String dbname = RationaleDB.getDbName();
                            String markD = "Alt: '" + alternativeName + "'   Rationale DB: '" + dbname + "'";
                            ratM.setAttribute(IMarker.MESSAGE, markD);
                            ratM.setAttribute(IMarker.CHAR_START, cstart);
                            ratM.setAttribute(IMarker.CHAR_END, cstart + 1);
                            ratM.setAttribute(IMarker.SEVERITY, 0);
                            //                        ratM.setAttribute(IMarker.LINE_NUMBER, lineNumber);
                            String artName = navigatorSelection.getElementName();
                            ratM.setAttribute("alternative", alternativeName);
                            SEURATResourcePropertiesManager.addPersistentProperty(ourRes, "Rat", "true");
                            RationaleDB d = RationaleDB.getHandle();
                            d.associateAlternative(alternativeName, navigatorSelection.getHandleIdentifier(),
                                    ourRes.getName(), artName, markD);

                        } catch (CoreException e) {
                            e.printStackTrace();
                        }
                    }
                }, null);
                //               ***                  System.out.println("adding persistent property");

                SEURATDecoratorManager.addSuccessResources(ourRes);
                //               ***                  System.out.println("added our property");  
                // Refresh the label decorations... Change it to DemoDecoratorWithImageCaching if image caching should be used
                //               ((TreeParent) obj).setStatus(RationaleErrorLevel.ERROR);
                //Is this the inf loop? (YQ)
                if (obj == null) {
                    System.out.println("CRITICAL ERROR: Obj is null at RationaleExplorer.java, line 2280");
                }
                if (viewer == null) {
                    System.out.println("Viewer is null at RationaleExplorer.java line 2283");
                }
                viewer.update((TreeParent) obj, null);
                SEURATLightWeightDecorator.getRatDecorator().refresh();
                //               ***                  System.out.println("refresh");

            } catch (Exception ex) {
                ex.printStackTrace();
                System.out.println("an exception occured in AssociateArtifactAction");
            }

        } else {
            System.out.println("selection rejected");
        }
    }

    else {
        System.out.println("No java element selected...");
    }

}

From source file:io.sarl.eclipse.tests.util.Jdt2EcoreTest.java

License:Apache License

/** Replies a mock of a IField.
 *
 * <table>//from  w ww.  j  a  va 2  s.c  o m
 * <tr><td>Z</td><td>boolean</td></tr>
 * <tr><td>B</td><td>byte</td></tr>
 * <tr><td>C</td><td>char</td></tr>
 * <tr><td>S</td><td>short</td></tr>
 * <tr><td>I</td><td>int</td></tr>
 * <tr><td>J</td><td>long</td></tr>
 * <tr><td>F</td><td>float</td></tr>
 * <tr><td>D</td><td>double</td></tr>
 * <tr><td>V</td><td>void</td></tr>
 * <tr><td>L fully-qualified-class ;</td><td>fully-qualified-class</td></tr>
 * <tr><td>[ type</td><td>type[]</td></tr>
 * </table>
 */
protected static IField createIFieldMock(IType type, String fieldName, String typeSignature, int flags) {
    try {
        IField field = AbstractSarlTest.mock(IField.class);
        when(field.getDeclaringType()).thenReturn(type);
        when(field.getElementName()).thenReturn(fieldName);
        when(field.getElementName()).thenReturn(fieldName);
        when(field.getElementType()).thenReturn(IJavaElement.FIELD);
        if (Strings.isNullOrEmpty(typeSignature)) {
            when(field.getTypeSignature()).thenReturn("V");
        } else {
            when(field.getTypeSignature()).thenReturn(typeSignature);
        }
        when(field.getFlags()).thenReturn(flags);
        return field;
    } catch (JavaModelException exception) {
        throw new RuntimeException(exception);
    }
}

From source file:jp.littleforest.pathtools.handlers.CopyQualifiedNameHandler.java

License:Open Source License

protected String getQualifiedName(IJavaElement e) {
    String qn = "";
    switch (e.getElementType()) {
    case IJavaElement.ANNOTATION:
        break;// w  w w .  j  a  va2  s.c o m
    case IJavaElement.CLASS_FILE:
        qn = getQualifiedClassName((IClassFile) e);
        break;
    case IJavaElement.COMPILATION_UNIT:
        qn = getQualifiedClassName((ICompilationUnit) e);
        break;
    case IJavaElement.FIELD:
        qn = getQualifiedFieldName((IField) e);
        break;
    case IJavaElement.IMPORT_CONTAINER:
        break;
    case IJavaElement.IMPORT_DECLARATION:
        break;
    case IJavaElement.INITIALIZER:
        break;
    case IJavaElement.JAVA_MODEL:
        break;
    case IJavaElement.JAVA_PROJECT:
        break;
    case IJavaElement.LOCAL_VARIABLE:
        break;
    case IJavaElement.METHOD:
        qn = getQualifiedMethodName((IMethod) e);
        break;
    case IJavaElement.PACKAGE_DECLARATION:
        break;
    case IJavaElement.PACKAGE_FRAGMENT:
        qn = getQualifiedPackageName(e);
        break;
    case IJavaElement.TYPE:
        qn = getQualifiedClassName((IType) e);
        break;
    case IJavaElement.TYPE_PARAMETER:
        break;
    default:
        break;
    }
    return qn;
}

From source file:mychangedetector.copyclasses.MyRenameLinkedMode.java

License:Open Source License

/**
 * Creates a rename descriptor.//  w  ww  .  j  a  v a  2s. c  o m
 * 
 * @param javaElement element to rename 
 * @param newName new name
 * @return a rename descriptor with current settings as used in the refactoring dialogs
 * @throws JavaModelException if an error occurs while accessing the element
 */
private RenameJavaElementDescriptor createRenameDescriptor(IJavaElement javaElement, String newName)
        throws JavaModelException {
    String contributionId;
    // see RefactoringExecutionStarter#createRenameSupport(..):
    int elementType = javaElement.getElementType();
    switch (elementType) {
    case IJavaElement.JAVA_PROJECT:
        contributionId = IJavaRefactorings.RENAME_JAVA_PROJECT;
        break;
    case IJavaElement.PACKAGE_FRAGMENT_ROOT:
        contributionId = IJavaRefactorings.RENAME_SOURCE_FOLDER;
        break;
    case IJavaElement.PACKAGE_FRAGMENT:
        contributionId = IJavaRefactorings.RENAME_PACKAGE;
        break;
    case IJavaElement.COMPILATION_UNIT:
        contributionId = IJavaRefactorings.RENAME_COMPILATION_UNIT;
        break;
    case IJavaElement.TYPE:
        contributionId = IJavaRefactorings.RENAME_TYPE;
        break;
    case IJavaElement.METHOD:
        final IMethod method = (IMethod) javaElement;
        if (method.isConstructor())
            return createRenameDescriptor(method.getDeclaringType(), newName);
        else
            contributionId = IJavaRefactorings.RENAME_METHOD;
        break;
    case IJavaElement.FIELD:
        IField field = (IField) javaElement;
        if (field.isEnumConstant())
            contributionId = IJavaRefactorings.RENAME_ENUM_CONSTANT;
        else
            contributionId = IJavaRefactorings.RENAME_FIELD;
        break;
    case IJavaElement.TYPE_PARAMETER:
        contributionId = IJavaRefactorings.RENAME_TYPE_PARAMETER;
        break;
    case IJavaElement.LOCAL_VARIABLE:
        contributionId = IJavaRefactorings.RENAME_LOCAL_VARIABLE;
        break;
    default:
        return null;
    }

    RenameJavaElementDescriptor descriptor = (RenameJavaElementDescriptor) RefactoringCore
            .getRefactoringContribution(contributionId).createDescriptor();
    descriptor.setJavaElement(javaElement);
    descriptor.setNewName(newName);
    if (elementType != IJavaElement.PACKAGE_FRAGMENT_ROOT)
        descriptor.setUpdateReferences(true);

    IDialogSettings javaSettings = JavaPlugin.getDefault().getDialogSettings();
    IDialogSettings refactoringSettings = javaSettings.getSection(RefactoringWizardPage.REFACTORING_SETTINGS); //TODO: undocumented API
    if (refactoringSettings == null) {
        refactoringSettings = javaSettings.addNewSection(RefactoringWizardPage.REFACTORING_SETTINGS);
    }

    switch (elementType) {
    case IJavaElement.METHOD:
    case IJavaElement.FIELD:
        descriptor.setDeprecateDelegate(refactoringSettings.getBoolean(DelegateUIHelper.DELEGATE_DEPRECATION));
        descriptor.setKeepOriginal(refactoringSettings.getBoolean(DelegateUIHelper.DELEGATE_UPDATING));
    }
    switch (elementType) {
    case IJavaElement.TYPE:
        //         case IJavaElement.COMPILATION_UNIT: // TODO
        descriptor.setUpdateSimilarDeclarations(
                refactoringSettings.getBoolean(RenameRefactoringWizard.TYPE_UPDATE_SIMILAR_ELEMENTS));
        int strategy;
        try {
            strategy = refactoringSettings.getInt(RenameRefactoringWizard.TYPE_SIMILAR_MATCH_STRATEGY);
        } catch (NumberFormatException e) {
            strategy = RenamingNameSuggestor.STRATEGY_EXACT;
        }
        descriptor.setMatchStrategy(strategy);
    }
    switch (elementType) {
    case IJavaElement.PACKAGE_FRAGMENT:
        descriptor.setUpdateHierarchy(
                refactoringSettings.getBoolean(RenameRefactoringWizard.PACKAGE_RENAME_SUBPACKAGES));
    }
    switch (elementType) {
    case IJavaElement.PACKAGE_FRAGMENT:
    case IJavaElement.TYPE:
        String fileNamePatterns = refactoringSettings.get(RenameRefactoringWizard.QUALIFIED_NAMES_PATTERNS);
        if (fileNamePatterns != null && fileNamePatterns.length() != 0) {
            descriptor.setFileNamePatterns(fileNamePatterns);
            boolean updateQualifiedNames = refactoringSettings
                    .getBoolean(RenameRefactoringWizard.UPDATE_QUALIFIED_NAMES);
            descriptor.setUpdateQualifiedNames(updateQualifiedNames);
            fShowPreview |= updateQualifiedNames;
        }
    }
    switch (elementType) {
    case IJavaElement.PACKAGE_FRAGMENT:
    case IJavaElement.TYPE:
    case IJavaElement.FIELD:
        boolean updateTextualOccurrences = refactoringSettings
                .getBoolean(RenameRefactoringWizard.UPDATE_TEXTUAL_MATCHES);
        descriptor.setUpdateTextualOccurrences(updateTextualOccurrences);
        fShowPreview |= updateTextualOccurrences;
    }
    switch (elementType) {
    case IJavaElement.FIELD:
        descriptor
                .setRenameGetters(refactoringSettings.getBoolean(RenameRefactoringWizard.FIELD_RENAME_GETTER));
        descriptor
                .setRenameSetters(refactoringSettings.getBoolean(RenameRefactoringWizard.FIELD_RENAME_SETTER));
    }
    return descriptor;
}

From source file:navclus.userinterface.monitor.patterns.PatternPresenter.java

License:Open Source License

public void show(LinkedList<IJavaElement> selectedElements) throws JavaModelException {
    for (IJavaElement javaElement : selectedElements) {
        if (javaElement == null)
            continue;

        switch (javaElement.getElementType()) {
        case (IJavaElement.METHOD):
        case (IJavaElement.FIELD):
            // show the elements in a class figure
            rootmodel.addMember(javaElement);
            break;
        case (IJavaElement.TYPE):
            rootmodel.createType((IType) javaElement);
            break;
        case (IJavaElement.COMPILATION_UNIT):
            rootmodel.openCU((ICompilationUnit) javaElement);
            break;
        }//from  w w  w.j  av a  2  s  .c  o m
    }
    rootmodel.drawNodes();
    (new RedrawAction()).run();
}