List of usage examples for org.aspectj.asm IProgramElement getParent
public IProgramElement getParent();
From source file:edu.utdallas.fdaf.aspectj.reverse.AspectJ2UMLConverter.java
License:Open Source License
private String printInfoOn(IProgramElement element) { String info = printNameTypeOf(element); IProgramElement parent = element.getParent(); if (parent != null) { info += ": child of " + printInfoOn(parent); } else {/*from w w w .j av a 2 s. c o m*/ info += ": childless"; } return info; }
From source file:org.caesarj.ui.marker.AdviceMarkerGenerator.java
License:Open Source License
/** * Used to add Markers to the editor./* w w w. jav a 2 s. co m*/ * @param node - CaesarProgramElement representing the Position where to add the Marker * @param relation - defines the Marker */ private void setMarkers(IProgramElement parent) { Logger.getLogger(this.getClass()).info("setMarkers() for relation node"); String messageLocal = ""; HashMap args = new HashMap(); List lElems = new ArrayList(); Iterator i = parent.getChildren().iterator(); while (i.hasNext()) { IProgramElement elem = (IProgramElement) i.next(); if (elem instanceof LinkNode) { // Add if it is a link node LinkNode node = (LinkNode) elem; Iterator i2 = node.getChildren().iterator(); while (i2.hasNext()) { IProgramElement elem2 = (IProgramElement) i2.next(); if (elem2 instanceof LinkNode) { // Add if it is a link node IProgramElement target = ((LinkNode) elem2).getTargetElement(); //if (!lElems.contains(target)) { if (target.getKind().equals(IProgramElement.Kind.ADVICE)) { args.put(AdviceMarker.ID, "AdviceLink"); } else { args.put(AdviceMarker.ID, "MethodeLink"); } if (!messageLocal.equals("")) { messageLocal += ", "; } if (target.getParent() != null) { String parentName = target.getParent().getName(); parentName = parentName.replaceAll("_Impl.*", ""); messageLocal += parentName + "." + target.getName(); } else { messageLocal += target.getName(); } lElems.add(target); //} } } } } if (!lElems.isEmpty()) { IResource resource = ProjectProperties .findResource(parent.getSourceLocation().getSourceFile().getAbsolutePath(), project); args.put(IMarker.LINE_NUMBER, new Integer(parent.getSourceLocation().getLine())); args.put(IMarker.MESSAGE, messageLocal); args.put(AdviceMarker.LINKS, lElems.toArray(new IProgramElement[0])); try { IMarker marker = resource.createMarker(AdviceMarker.ADVICEMARKER); marker.setAttributes(args); } catch (CoreException e) { Logger.getLogger(this.getClass()).error("FEHLER BEIM MARKER ERZEUGEN", e); //$NON-NLS-1$ } } }
From source file:org.eclipse.ajdt.core.codeconversion.AspectsConvertingParser.java
License:Open Source License
/** * returns reasonable text for all ITDs and ITITs * @param currentTypeName/* ww w . j a va 2 s . co m*/ * @return */ protected char[] getInterTypeDecls(char[] currentTypeName) { if (unit != null && currentTypeName != null && currentTypeName.length > 0) { AJProjectModelFacade model = AJProjectModelFactory.getInstance().getModelForJavaElement(unit); if (model.hasModel()) { IType type = getHandle(new String(currentTypeName)); if (type.exists()) { List<IJavaElement> rels = model.getRelationshipsForElement(type, AJRelationshipManager.ASPECT_DECLARATIONS); StringBuffer sb = new StringBuffer("\n\t"); for (IJavaElement je : rels) { IProgramElement declareElt = model.javaElementToProgramElement(je); if (declareElt != null && declareElt.getParent() != null && declareElt.getKind().isInterTypeMember()) { // checks to see if this element is valid // should be fully qualified type and simple name int lastDot = declareElt.getName().lastIndexOf('.'); String name = declareElt.getName().substring(lastDot + 1); if (declareElt.getKind() == IProgramElement.Kind.INTER_TYPE_FIELD) { createITDFieldText(sb, declareElt, name); } else if (declareElt.getKind() == IProgramElement.Kind.INTER_TYPE_METHOD || declareElt.getKind() == IProgramElement.Kind.INTER_TYPE_CONSTRUCTOR) { createITDMethodText(currentTypeName, sb, declareElt, name); } } else if (declareElt.getKind() == IProgramElement.Kind.CLASS) { // Intertype Inner type // add the declaration and all fields/methhods createITITText(sb, declareElt); } } return sb.toString().toCharArray(); } } } return new char[0]; }
From source file:org.eclipse.ajdt.core.parserbridge.ITDInserter.java
License:Open Source License
private MethodDeclaration createMethod(IProgramElement method, TypeDeclaration type, IType handle) { MethodDeclaration decl = new MethodDeclaration(type.compilationResult); decl.scope = new MethodScope(type.scope, decl, true); String[] split = method.getName().split("\\."); decl.selector = split[split.length - 1].toCharArray(); decl.modifiers = method.getRawModifiers(); decl.returnType = createTypeReference(method.getCorrespondingType(true)); decl.modifiers = method.getRawModifiers(); Argument[] args = method.getParameterTypes() != null ? new Argument[method.getParameterTypes().size()] : new Argument[0]; try {//from w w w.j av a 2s. co m ErasedTypeSignature sig = null; if (handle != null) { AJWorldFacade world = new AJWorldFacade(handle.getJavaProject().getProject()); sig = world.getMethodTypeSignatures( Signature.createTypeSignature(handle.getFullyQualifiedName(), true), method); } if (sig == null) { String[] params = new String[method.getParameterTypes().size()]; for (int i = 0; i < params.length; i++) { params[i] = new String(Signature.getTypeErasure((char[]) method.getParameterTypes().get(i))); } sig = new ErasedTypeSignature(method.getCorrespondingTypeSignature(), params); } List<String> pNames = method.getParameterNames(); // bug 270123... no parameter names if coming in from a jar and // not build with debug info...mock it up. if (pNames == null || pNames.size() != args.length) { pNames = new ArrayList<String>(args.length); for (int i = 0; i < args.length; i++) { pNames.add("args" + i); } } for (int i = 0; i < args.length; i++) { args[i] = new Argument(((String) pNames.get(i)).toCharArray(), 0, createTypeReference(Signature.getElementType(sig.paramTypes[i])), 0); } decl.returnType = createTypeReferenceFromSignature(sig.returnTypeSig); decl.typeParameters = createTypeParameters(sig.typeParameters); } catch (Exception e) { AJLog.log("Exception occurred in ITDInserter.createMethod(). (Ignoring)"); AJLog.log("Relevant method: " + method.getParent().getName() + "." + method.getName()); List<String> pNames = method.getParameterNames(); // bug 270123... no parameter names if coming in from a jar and // not build with debug info...mock it up. if (pNames == null || pNames.size() != args.length) { pNames = new ArrayList<String>(args.length); for (int i = 0; i < args.length; i++) { pNames.add("args" + i); } } for (int i = 0; i < args.length; i++) { args[i] = new Argument(((String) pNames.get(i)).toCharArray(), 0, createTypeReference(new String((char[]) method.getParameterTypes().get(i))), 0); } } decl.arguments = args; return decl; }