List of usage examples for org.eclipse.jdt.core IJavaElement COMPILATION_UNIT
int COMPILATION_UNIT
To view the source code for org.eclipse.jdt.core IJavaElement COMPILATION_UNIT.
Click Source Link
From source file:edu.washington.cs.cupid.jdt.compiler.CompilationUnit.java
License:Open Source License
@Override public LinearJob<IJavaElement, ICompilationUnit> getJob(final IJavaElement input) { return new LinearJob<IJavaElement, ICompilationUnit>(this, input) { @Override/*from w w w. ja v a 2 s.c o m*/ protected LinearStatus<ICompilationUnit> run(final IProgressMonitor monitor) { try { monitor.beginTask(getName(), 1); IJavaElement cu = input.getAncestor(IJavaElement.COMPILATION_UNIT); if (cu != null) { return LinearStatus.<ICompilationUnit>makeError( new RuntimeException("No associated compilation unit")); } else { return LinearStatus.makeOk(getCapability(), (ICompilationUnit) cu); } } catch (Exception ex) { return LinearStatus.<ICompilationUnit>makeError(ex); } finally { monitor.done(); } } }; }
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. * /* www. j ava 2s . com*/ */ 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/*from w w w. j a va 2s . co m*/ * @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. *///www . j ava 2s . c o 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
/** * Recursive method that navigates the Java model and adds all of the * changes that occurred to possible associated artifacts. We won't * know whether they are actually associated until we check the database * in the handleChange method./* w ww.j a v a 2 s. c o m*/ * * Note: There are four types of changes we're interested in. * Change to method inside class- fine grained removed and added method * Moved method- fine grained removed and added method * Change to class- non-fine grained removed and added compilation unit with moved from/to attributes set * Change to class with a method inside- same as above, we take care of it in handleChange * * @param delta - the current IJavaElementDelta */ private void navigateModel(IJavaElementDelta delta) { IJavaElementDelta[] deltas = delta.getAffectedChildren(); for (int i = 0; i < deltas.length; i++) { int type = deltas[i].getElement().getElementType(); int flags = deltas[i].getFlags(); if (type == IJavaElement.COMPILATION_UNIT && (flags & flagChecks) != 0) { System.out.println("NavigateModel: " + deltas[i].getElement() + " " + deltas[i].toString() + " " + deltas[i].getKind()); if ((flags & IJavaElementDelta.F_FINE_GRAINED) == 0 && (deltas[i].getKind() == IJavaElementDelta.CHANGED || deltas[i].getKind() == IJavaElementDelta.ADDED)) { // change was to a compilation unit and there were no finer grained changes //relevantChanges.add(deltas[i]); } else if (deltas[i].getKind() != IJavaElementDelta.CHANGED && deltas[i].getMovedToElement() != null) { relevantChanges.add(deltas[i]); } } else if (type > IJavaElement.COMPILATION_UNIT) { System.out.println("NavigateModel: " + deltas[i].getElement() + " " + deltas[i].toString() + " " + deltas[i].getKind()); // change was to an element of a compilation unit, such as a method relevantChanges.add(deltas[i]); } navigateModel(deltas[i]); } }
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 a v a2 s .com*/ * @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//from w w w .j a va 2 s. 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:iot.jcypher.eclipse.JCypherCompletionProposalComputer.java
License:Apache License
private List<ICompletionProposal> buildJCypherProposals(List<ICompletionProposal> proposals) { List<ICompletionProposal> ret = new ArrayList<>(proposals.size()); List<String> classNames = new ArrayList<String>(); List<String> classNames_ext = new ArrayList<String>(); for (ICompletionProposal prop : proposals) { if (prop instanceof IJavaCompletionProposal) { if (prop instanceof JavaMethodCompletionProposal) { JavaMethodCompletionProposal jmcp = (JavaMethodCompletionProposal) prop; IJavaElement elem = jmcp.getJavaElement(); IJavaElement classfile = elem.getParent().getParent(); if (classfile.getElementType() == IJavaElement.CLASS_FILE || classfile.getElementType() == IJavaElement.COMPILATION_UNIT) { IJavaElement pkg = classfile.getParent(); if (JCypherPackages.addsToProposal(pkg.getElementName())) { IJavaCompletionProposal delegate = (IJavaCompletionProposal) prop; IJavaElement mthd = ((AbstractJavaCompletionProposal) delegate).getJavaElement(); IJavaElement clsfile = elem.getParent().getParent(); String className = clsfile.getElementName(); if (!classNames_ext.contains(className)) { classNames_ext.add(className); // trim className extension which can either be .class or .java classNames.add(className.substring(0, className.indexOf('.'))); }//from w ww .jav a 2 s . c om // classNames always contains (class, superClass, superSuperClass, ..) int relevance = ProposalOrderConfig.INSTANCE.getRelevance(classNames.get(0), mthd.getElementName(), JCypherConstants.DEFAULT_RELEVANCE); ret.add(new JCypherCompletionProposal((IJavaCompletionProposal) prop, relevance)); } } } } } if (ret.size() > 0) { ProposalOrderConfig.INSTANCE.addSeparators(classNames.get(0), ret, JCypherConstants.DEFAULT_RELEVANCE); ret.add(CompletionSeparator.INSTANCE); } return ret; }
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;//from w w w . j a v a2s . co 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:jp.littleforest.pathtools.handlers.CopyQualifiedNameHandler.java
License:Open Source License
protected String getQualifiedClassName(IType type) { String fqcn = type.getElementName(); IJavaElement parent = type.getParent(); if (parent == null) { return fqcn; }/*from www .j a v a 2s . com*/ int parentType = parent.getElementType(); if (parentType == IJavaElement.TYPE) { // ?? String enclosingQn = getQualifiedName(parent); fqcn = enclosingQn + "$" + fqcn; } else if (parentType == IJavaElement.COMPILATION_UNIT) { // ?? fqcn = getQualifiedClassName((ICompilationUnit) parent); } else if (parentType == IJavaElement.CLASS_FILE) { // Jar??? fqcn = getQualifiedClassName((IClassFile) parent); } else if (parentType == IJavaElement.PACKAGE_FRAGMENT) { fqcn = getQualifiedPackageName(parent) + "." + fqcn; } return fqcn; }