Example usage for org.aspectj.asm IProgramElement getModifiers

List of usage examples for org.aspectj.asm IProgramElement getModifiers

Introduction

In this page you can find the example usage for org.aspectj.asm IProgramElement getModifiers.

Prototype

public List<IProgramElement.Modifiers> getModifiers();

Source Link

Usage

From source file:org.eclipse.ajdt.core.codeconversion.AspectsConvertingParser.java

License:Open Source License

/**
 * @param currentTypeName/*from  w  w w . ja  va  2 s.co  m*/
 * @param sb
 * @param declareElt
 * @param name
 */
protected void createITDMethodText(char[] currentTypeName, StringBuffer sb, IProgramElement declareElt,
        String name) {
    sb.append(getAccessibilityString(declareElt));
    for (IProgramElement.Modifiers modifier : declareElt.getModifiers()) {
        sb.append(modifier + " ");
    }
    // need to add a return statement?
    if (declareElt.getKind() == IProgramElement.Kind.INTER_TYPE_METHOD) {
        sb.append(declareElt.getCorrespondingType(true) + " " + name);
    } else {
        sb.append(currentTypeName);
    }
    sb.append("(");
    List<String> names = declareElt.getParameterNames();
    List<char[]> types = declareElt.getParameterTypes();
    if (types != null && names != null) {
        for (Iterator<?> typeIter = types.iterator(), nameIter = names.iterator(); typeIter.hasNext();) {
            String paramType = String.valueOf((char[]) typeIter.next());
            String paramName = (String) nameIter.next();
            sb.append(paramType + " " + paramName);
            if (typeIter.hasNext()) {
                sb.append(", ");
            }
        }
    }
    sb.append(") { }\n");
}

From source file:org.eclipse.ajdt.core.codeconversion.AspectsConvertingParser.java

License:Open Source License

/**
 * @param sb//from  w  w  w .  jav a  2  s.co  m
 * @param declareElt
 * @param name
 */
protected void createITDFieldText(StringBuffer sb, IProgramElement declareElt, String name) {
    for (IProgramElement.Modifiers modifier : declareElt.getModifiers()) {
        sb.append(modifier + " ");
    }
    sb.append(declareElt.getCorrespondingType(true) + " " + name + ";\n\t");
}

From source file:org.eclipse.ajdt.core.javaelements.AdviceElement.java

License:Open Source License

protected Object createElementInfo() {
    try {//from w  ww. j a  v a 2 s .c om
        IProgramElement ipe = AJProjectModelFactory.getInstance().getModelForJavaElement(this)
                .javaElementToProgramElement(this);

        AdviceElementInfo info = new AdviceElementInfo();
        info.setAJExtraInfo(ipe.getExtraInfo());
        info.setName(name.toCharArray());
        info.setAJKind(IProgramElement.Kind.ADVICE);
        info.setAJModifiers(ipe.getModifiers());
        ISourceLocation sourceLocation = ipe.getSourceLocation();
        info.setSourceRangeStart(sourceLocation.getOffset());
        info.setNameSourceStart(sourceLocation.getOffset());
        info.setNameSourceEnd(sourceLocation.getOffset() + ipe.getName().length());

        return info;
    } catch (Exception e) {
        // can fail for any of a number of reasons.
        // return null so that we can try again later.
        return null;
    }
}

From source file:org.eclipse.ajdt.core.javaelements.AspectElement.java

License:Open Source License

protected Object createElementInfo() {

    AspectElementInfo info = new AspectElementInfo();
    info.setAJKind(IProgramElement.Kind.ASPECT);
    info.setHandle(this);
    info.setSourceRangeStart(0);//w  w w  . j  a  v  a 2s.com

    IProgramElement ipe = AJProjectModelFactory.getInstance().getModelForJavaElement(this)
            .javaElementToProgramElement(this);
    if (ipe != null && ipe != IHierarchy.NO_STRUCTURE) {
        info.setAJExtraInfo(ipe.getExtraInfo());
        info.setAJModifiers(ipe.getModifiers());
        info.setFlags(getProgramElementModifiers(ipe));
        info.setAJAccessibility(ipe.getAccessibility());
        ISourceLocation sourceLocation = ipe.getSourceLocation();
        info.setSourceRangeStart(sourceLocation.getOffset());
        info.setNameSourceStart(sourceLocation.getOffset());
        info.setNameSourceEnd(sourceLocation.getOffset() + ipe.getName().length());
        // info.setPrivileged(???); not setting this yet
    }
    return info;
}

From source file:org.eclipse.ajdt.core.javaelements.CompilationUnitTools.java

License:Open Source License

public static int getModifierCode(IProgramElement elem) {
    IProgramElement.Accessibility acc = elem.getAccessibility();
    List<Modifiers> others = elem.getModifiers();
    int modifiers = 0;
    if (acc == IProgramElement.Accessibility.PUBLIC) {
        modifiers |= ClassFileConstants.AccPublic;
    } else if (acc == IProgramElement.Accessibility.PROTECTED) {
        modifiers |= ClassFileConstants.AccProtected;
    } else if (acc == IProgramElement.Accessibility.PRIVATE) {
        modifiers |= ClassFileConstants.AccPrivate;
    }//  w w  w  .  j a  v a 2  s.  c  om

    if (others != null) {
        if (others.contains(IProgramElement.Modifiers.ABSTRACT)) {
            modifiers |= ClassFileConstants.AccAbstract;
        }
        if (others.contains(IProgramElement.Modifiers.FINAL)) {
            modifiers |= ClassFileConstants.AccFinal;
        }
        if (others.contains(IProgramElement.Modifiers.NATIVE)) {
            modifiers |= ClassFileConstants.AccNative;
        }
        if (others.contains(IProgramElement.Modifiers.STATIC)) {
            modifiers |= ClassFileConstants.AccStatic;
        }
        if (others.contains(IProgramElement.Modifiers.SYNCHRONIZED)) {
            modifiers |= ClassFileConstants.AccSynchronized;
        }
        if (others.contains(IProgramElement.Modifiers.TRANSIENT)) {
            modifiers |= ClassFileConstants.AccTransient;
        }
        if (others.contains(IProgramElement.Modifiers.VOLATILE)) {
            modifiers |= ClassFileConstants.AccVolatile;
        }
    }
    return modifiers;
}

From source file:org.eclipse.ajdt.core.javaelements.IntertypeElement.java

License:Open Source License

protected Object createElementInfo() {
    IntertypeElementInfo info = new IntertypeElementInfo();

    IProject project = this.getJavaProject().getProject();
    IProgramElement ipe = AJProjectModelFactory.getInstance().getModelForProject(project)
            .javaElementToProgramElement(this);
    if (ipe != IHierarchy.NO_STRUCTURE) {
        // this way of creating the element info does not contain proper source locations for the name and target type
        info.setAJExtraInfo(ipe.getExtraInfo());
        info.setName(name.toCharArray());
        info.setAJKind(ipe.getKind());//from www.  j  av  a  2 s .c o m
        info.setAJModifiers(ipe.getModifiers());
        info.setFlags(ipe.getRawModifiers());
        info.setDeclaredModifiers(info.getModifiers());
        info.setAJAccessibility(ipe.getAccessibility());
        ISourceLocation sourceLocation = ipe.getSourceLocation();
        info.setSourceRangeStart(sourceLocation.getOffset());
        info.setNameSourceStart(sourceLocation.getOffset()); // This is wrong
        info.setNameSourceEnd(sourceLocation.getOffset() + ipe.getName().length()); // also wrong

        info.setConstructor(info.getAJKind() == IProgramElement.Kind.INTER_TYPE_CONSTRUCTOR);
        char[][] argumentNames = CoreUtils.listStringsToCharArrays(ipe.getParameterNames());
        char[][] argumentTypeNames = CoreUtils.listCharsToCharArrays(ipe.getParameterTypes());
        if (argumentNames.length == 0 && argumentTypeNames.length > 0) {
            // argument names not found.  likely coming from binary class file w/p source attachment
            // generate argument names
            argumentNames = new char[argumentTypeNames.length][];
            for (int i = 0; i < argumentNames.length; i++) {
                argumentNames[i] = ("arg" + i).toCharArray();
            }
        }

        info.setArgumentNames(argumentNames);
        info.setArgumentTypeNames(argumentTypeNames);
        info.setReturnType(ipe.getCorrespondingType(false).toCharArray());
        info.setQualifiedReturnType(ipe.getCorrespondingType(true).toCharArray());

        info.setTypeParameters(createTypeParameters(project));

        if (argumentNames != null && argumentNames.length > 0) {
            ILocalVariable[] arguments = new ILocalVariable[argumentNames.length];
            for (int i = 0; i < argumentNames.length; i++) {
                arguments[i] = new LocalVariable(this, String.valueOf(argumentNames[i]),
                        // sloc is not correct, but it is close enough
                        sourceLocation.getOffset(), sourceLocation.getOffset() + 1, sourceLocation.getOffset(),
                        sourceLocation.getOffset() + 1, String.valueOf(argumentTypeNames[i]), new Annotation[0],
                        Flags.AccDefault, true);
            }
            info.setArguments(arguments);
        }

    } else {
        // no successful build yet, we don't know the contents
        info.setName(name.toCharArray());
        info.setAJKind(IProgramElement.Kind.ERROR);
        info.setAJModifiers(Collections.<Modifiers>emptyList());
    }
    return info;
}

From source file:org.eclipse.ajdt.core.javaelements.MockSourceMethod.java

License:Open Source License

protected Object createElementInfo() {
    if (elementInfo != null) {
        return elementInfo;
    }// w w  w .  j  a  v a  2  s . com

    try {
        IProgramElement ipe = AJProjectModelFactory.getInstance().getModelForJavaElement(this)
                .javaElementToProgramElement(this);

        elementInfo = new MethodElementInfo();
        ISourceLocation sourceLocation = ipe.getSourceLocation();
        elementInfo.setSourceRangeStart(sourceLocation.getOffset());
        elementInfo.setNameSourceStart(sourceLocation.getOffset());
        elementInfo.setNameSourceEnd(sourceLocation.getOffset() + ipe.getName().length());
        elementInfo.setAJExtraInfo(ipe.getExtraInfo());
        elementInfo.setName(name.toCharArray());
        elementInfo.setAJKind(IProgramElement.Kind.METHOD);
        elementInfo.setAJModifiers(ipe.getModifiers());
        elementInfo.setAJAccessibility(ipe.getAccessibility());

        return elementInfo;
    } catch (Exception e) {
        // can fail for any of a number of reasons.
        // return null so that we can try again later.
        return null;
    }
}

From source file:org.eclipse.ajdt.internal.utils.AJDTUtils.java

License:Open Source License

/**
 * Decorate icon based on modifiers, errors etc. Possible decorations are:
 * abstract, final, synchronized, static, runnable, warning, error,
 * overrides, implements/*from   ww  w .  j a v a2 s.c  o m*/
 */
public static ImageDescriptor decorate(ImageDescriptor base, IProgramElement pNode) {
    int flags = 0;
    if (pNode != null) {
        List<Modifiers> modifiers = pNode.getModifiers();
        if (modifiers != null) {
            if (modifiers.contains(IProgramElement.Modifiers.ABSTRACT)) {
                flags = flags | JavaElementImageDescriptor.ABSTRACT;
            }
            if (modifiers.contains(IProgramElement.Modifiers.FINAL)) {
                flags = flags | JavaElementImageDescriptor.FINAL;
            }
            if (modifiers.contains(IProgramElement.Modifiers.SYNCHRONIZED)) {
                flags = flags | JavaElementImageDescriptor.SYNCHRONIZED;
            }
            if (modifiers.contains(IProgramElement.Modifiers.STATIC)) {
                flags = flags | JavaElementImageDescriptor.STATIC;
            }
        }
        if (pNode.getKind() == IProgramElement.Kind.CONSTRUCTOR
                || pNode.getKind() == IProgramElement.Kind.INTER_TYPE_CONSTRUCTOR) {
            flags = flags | JavaElementImageDescriptor.CONSTRUCTOR;
        }
        if (pNode.isRunnable()) {
            flags = flags | JavaElementImageDescriptor.RUNNABLE;
        }
        if (pNode.isOverrider()) {
            flags = flags | JavaElementImageDescriptor.OVERRIDES;
        }
        if (pNode.isImplementor()) {
            flags = flags | JavaElementImageDescriptor.IMPLEMENTS;
        }
        IMessage sMessage = pNode.getMessage();
        if (sMessage != null) {
            if (sMessage.getKind() == IMessage.ERROR) {
                flags = flags | JavaElementImageDescriptor.ERROR;
            } else if (sMessage.getKind() == IMessage.WARNING) {
                flags = flags | JavaElementImageDescriptor.WARNING;
            }
        }
    }
    return decorate(base, flags);
}