Example usage for org.eclipse.jdt.core.dom IMemberValuePairBinding getName

List of usage examples for org.eclipse.jdt.core.dom IMemberValuePairBinding getName

Introduction

In this page you can find the example usage for org.eclipse.jdt.core.dom IMemberValuePairBinding getName.

Prototype

@Override
public String getName();

Source Link

Document

Returns the name of the annotation type member.

Usage

From source file:ca.ecliptical.pde.internal.ds.AnnotationProcessor.java

License:Open Source License

private IDSModel processComponent(TypeDeclaration type, ITypeBinding typeBinding, Annotation annotation,
        IAnnotationBinding annotationBinding, Collection<DSAnnotationProblem> problems) {
    HashMap<String, Object> params = new HashMap<String, Object>();
    for (IMemberValuePairBinding pair : annotationBinding.getDeclaredMemberValuePairs()) {
        params.put(pair.getName(), pair.getValue());
    }//  w  w  w  .  ja  v  a2s . co  m

    boolean requiresV12 = false;

    String implClass = typeBinding.getBinaryName();

    String name = implClass;
    Object value;
    if ((value = params.get("name")) instanceof String) { //$NON-NLS-1$
        name = (String) value;
        validateComponentName(annotation, name, problems);
    }

    Collection<String> services;
    if ((value = params.get("service")) instanceof Object[]) { //$NON-NLS-1$
        Object[] elements = (Object[]) value;
        services = new LinkedHashSet<String>(elements.length);
        Map<String, Integer> serviceDuplicates = errorLevel.isNone() ? null : new HashMap<String, Integer>();
        for (int i = 0; i < elements.length; ++i) {
            ITypeBinding serviceType = (ITypeBinding) elements[i];
            String serviceName = serviceType.getBinaryName();
            if (!errorLevel.isNone()) {
                if (serviceDuplicates.containsKey(serviceName)) {
                    reportProblem(annotation, "service", i, problems, //$NON-NLS-1$
                            Messages.AnnotationProcessor_duplicateServiceDeclaration, serviceName);
                    Integer pos = serviceDuplicates.put(serviceName, null);
                    if (pos != null)
                        reportProblem(annotation, "service", pos.intValue(), problems, //$NON-NLS-1$
                                Messages.AnnotationProcessor_duplicateServiceDeclaration, serviceName);
                } else {
                    serviceDuplicates.put(serviceName, i);
                }
            }

            services.add(serviceName);
            validateComponentService(annotation, typeBinding, serviceType, i, problems);
        }
    } else {
        ITypeBinding[] serviceTypes = typeBinding.getInterfaces();
        services = new ArrayList<String>(serviceTypes.length);
        for (int i = 0; i < serviceTypes.length; ++i) {
            services.add(serviceTypes[i].getBinaryName());
        }
    }

    String factory = null;
    if ((value = params.get("factory")) instanceof String) { //$NON-NLS-1$
        factory = (String) value;
        validateComponentFactory(annotation, factory, problems);
    }

    Boolean serviceFactory = null;
    if ((value = params.get("servicefactory")) instanceof Boolean) { //$NON-NLS-1$
        serviceFactory = (Boolean) value;
    }

    Boolean enabled = null;
    if ((value = params.get("enabled")) instanceof Boolean) { //$NON-NLS-1$
        enabled = (Boolean) value;
    }

    Boolean immediate = null;
    if ((value = params.get("immediate")) instanceof Boolean) { //$NON-NLS-1$
        immediate = (Boolean) value;
    }

    String[] properties;
    if ((value = params.get("property")) instanceof Object[]) { //$NON-NLS-1$
        Object[] elements = (Object[]) value;
        ArrayList<String> list = new ArrayList<String>(elements.length);
        for (int i = 0; i < elements.length; ++i) {
            if (elements[i] instanceof String)
                list.add((String) elements[i]);
        }

        properties = list.toArray(new String[list.size()]);
    } else {
        properties = new String[0];
    }

    String[] propertyFiles;
    if ((value = params.get("properties")) instanceof Object[]) { //$NON-NLS-1$
        Object[] elements = (Object[]) value;
        ArrayList<String> list = new ArrayList<String>(elements.length);
        for (int i = 0; i < elements.length; ++i) {
            if (elements[i] instanceof String)
                list.add((String) elements[i]);
        }

        propertyFiles = list.toArray(new String[list.size()]);
        validateComponentPropertyFiles(annotation,
                ((IType) typeBinding.getJavaElement()).getJavaProject().getProject(), propertyFiles, problems);
    } else {
        propertyFiles = new String[0];
    }

    String configPolicy = null;
    if ((value = params.get("configurationPolicy")) instanceof IVariableBinding) { //$NON-NLS-1$
        IVariableBinding configPolicyBinding = (IVariableBinding) value;
        ConfigurationPolicy configPolicyLiteral = ConfigurationPolicy.valueOf(configPolicyBinding.getName());
        if (configPolicyLiteral != null)
            configPolicy = configPolicyLiteral.toString();
    }

    String configPid = null;
    if ((value = params.get("configurationPid")) instanceof String) { //$NON-NLS-1$
        configPid = (String) value;
        validateComponentConfigPID(annotation, configPid, problems);
        requiresV12 = true;
    }

    DSModel model = new DSModel(new Document(), false);
    IDSComponent component = model.getDSComponent();

    if (name != null)
        component.setAttributeName(name);

    if (factory != null)
        component.setFactory(factory);

    if (enabled != null)
        component.setEnabled(enabled.booleanValue());

    if (immediate != null)
        component.setImmediate(immediate.booleanValue());

    if (configPolicy != null)
        component.setConfigurationPolicy(configPolicy);

    if (configPid != null)
        component.setXMLAttribute("configuration-pid", configPid); //$NON-NLS-1$

    IDSDocumentFactory dsFactory = component.getModel().getFactory();
    IDSImplementation impl = dsFactory.createImplementation();
    component.setImplementation(impl);
    impl.setClassName(implClass);

    if (!services.isEmpty()) {
        IDSService service = dsFactory.createService();
        component.setService(service);
        for (String serviceName : services) {
            IDSProvide provide = dsFactory.createProvide();
            service.addProvidedService(provide);
            provide.setInterface(serviceName);
        }

        if (serviceFactory != null)
            service.setServiceFactory(serviceFactory.booleanValue());
    }

    if (properties.length > 0) {
        HashMap<String, IDSProperty> map = new HashMap<String, IDSProperty>(properties.length);
        for (int i = 0; i < properties.length; ++i) {
            String propertyStr = properties[i];
            String[] pair = propertyStr.split("=", 2); //$NON-NLS-1$
            int colon = pair[0].indexOf(':');
            String propertyName, propertyType;
            if (colon == -1) {
                propertyName = pair[0];
                propertyType = null;
            } else {
                propertyName = pair[0].substring(0, colon);
                propertyType = pair[0].substring(colon + 1);
            }

            String propertyValue = pair.length > 1 ? pair[1].trim() : null;

            IDSProperty property = map.get(propertyName);
            if (property == null) {
                // create a new property
                property = dsFactory.createProperty();
                component.addPropertyElement(property);
                map.put(propertyName, property);
                property.setPropertyName(propertyName);
                property.setPropertyType(propertyType);
                property.setPropertyValue(propertyValue);
                validateComponentProperty(annotation, propertyName, propertyType, propertyValue, i, problems);
            } else {
                // property exists; make it multi-valued
                String content = property.getPropertyElemBody();
                if (content == null) {
                    content = property.getPropertyValue();
                    property.setPropertyElemBody(content);
                    property.setPropertyValue(null);
                }

                if (!errorLevel.isNone()) {
                    String expected = property.getPropertyType() == null || property.getPropertyType().isEmpty()
                            || String.class.getSimpleName().equals(property.getPropertyType())
                                    ? Messages.AnnotationProcessor_stringOrEmpty
                                    : property.getPropertyType();
                    String actual = propertyType == null || String.class.getSimpleName().equals(propertyType)
                            ? Messages.AnnotationProcessor_stringOrEmpty
                            : propertyType;
                    if (!actual.equals(expected))
                        reportProblem(annotation, "property", i, problems, //$NON-NLS-1$
                                NLS.bind(Messages.AnnotationProcessor_inconsistentComponentPropertyType, actual,
                                        expected),
                                actual);
                    else
                        validateComponentProperty(annotation, propertyName, propertyType, propertyValue, i,
                                problems);
                }

                if (propertyValue != null)
                    property.setPropertyElemBody(content + "\n" + pair[1]); //$NON-NLS-1$
            }
        }
    }

    if (propertyFiles.length > 0) {
        for (String propertyFile : propertyFiles) {
            IDSProperties propertiesElement = dsFactory.createProperties();
            component.addPropertiesElement(propertiesElement);
            propertiesElement.setEntry(propertyFile);
        }
    }

    String activate = null;
    Annotation activateAnnotation = null;
    String deactivate = null;
    Annotation deactivateAnnotation = null;
    String modified = null;
    Annotation modifiedAnnotation = null;

    ArrayList<IDSReference> references = new ArrayList<IDSReference>();
    HashMap<String, Annotation> referenceNames = new HashMap<String, Annotation>();

    for (MethodDeclaration method : type.getMethods()) {
        for (Object modifier : method.modifiers()) {
            if (!(modifier instanceof Annotation))
                continue;

            Annotation methodAnnotation = (Annotation) modifier;
            IAnnotationBinding methodAnnotationBinding = methodAnnotation.resolveAnnotationBinding();
            if (methodAnnotationBinding == null) {
                if (debug.isDebugging())
                    debug.trace(
                            String.format("Unable to resolve binding for annotation: %s", methodAnnotation)); //$NON-NLS-1$

                continue;
            }

            String annotationName = methodAnnotationBinding.getAnnotationType().getQualifiedName();

            if (ACTIVATE_ANNOTATION.equals(annotationName)) {
                if (activate == null) {
                    activate = method.getName().getIdentifier();
                    activateAnnotation = methodAnnotation;
                    validateLifeCycleMethod(methodAnnotation, "activate", method, problems); //$NON-NLS-1$
                } else if (!errorLevel.isNone()) {
                    reportProblem(methodAnnotation, null, problems,
                            Messages.AnnotationProcessor_duplicateActivateMethod,
                            method.getName().getIdentifier());
                    if (activateAnnotation != null) {
                        reportProblem(activateAnnotation, null, problems,
                                Messages.AnnotationProcessor_duplicateActivateMethod, activate);
                        activateAnnotation = null;
                    }
                }

                continue;
            }

            if (DEACTIVATE_ANNOTATION.equals(annotationName)) {
                if (deactivate == null) {
                    deactivate = method.getName().getIdentifier();
                    deactivateAnnotation = methodAnnotation;
                    validateLifeCycleMethod(methodAnnotation, "deactivate", method, problems); //$NON-NLS-1$
                } else if (!errorLevel.isNone()) {
                    reportProblem(methodAnnotation, null, problems,
                            Messages.AnnotationProcessor_duplicateDeactivateMethod,
                            method.getName().getIdentifier());
                    if (deactivateAnnotation != null) {
                        reportProblem(deactivateAnnotation, null, problems,
                                Messages.AnnotationProcessor_duplicateDeactivateMethod, deactivate);
                        deactivateAnnotation = null;
                    }
                }

                continue;
            }

            if (MODIFIED_ANNOTATION.equals(annotationName)) {
                if (modified == null) {
                    modified = method.getName().getIdentifier();
                    modifiedAnnotation = methodAnnotation;
                    validateLifeCycleMethod(methodAnnotation, "modified", method, problems); //$NON-NLS-1$
                } else if (!errorLevel.isNone()) {
                    reportProblem(methodAnnotation, null, problems,
                            Messages.AnnotationProcessor_duplicateModifiedMethod,
                            method.getName().getIdentifier());
                    if (modifiedAnnotation != null) {
                        reportProblem(modifiedAnnotation, null, problems,
                                Messages.AnnotationProcessor_duplicateModifiedMethod, modified);
                        modifiedAnnotation = null;
                    }
                }

                continue;
            }

            if (REFERENCE_ANNOTATION.equals(annotationName)) {
                IMethodBinding methodBinding = method.resolveBinding();
                if (methodBinding == null) {
                    if (debug.isDebugging())
                        debug.trace(String.format("Unable to resolve binding for method: %s", method)); //$NON-NLS-1$
                } else {
                    requiresV12 |= processReference(method, methodBinding, methodAnnotation,
                            methodAnnotationBinding, dsFactory, references, referenceNames, problems);
                }

                continue;
            }
        }
    }

    if (activate != null)
        component.setActivateMethod(activate);

    if (deactivate != null)
        component.setDeactivateMethod(deactivate);

    if (modified != null)
        component.setModifiedeMethod(modified);

    if (!references.isEmpty()) {
        // references must be declared in ascending lexicographical order of their names
        Collections.sort(references, REF_NAME_COMPARATOR);
        for (IDSReference reference : references) {
            component.addReference(reference);
        }
    }

    String xmlns = null;
    if ((value = params.get("xmlns")) instanceof String) { //$NON-NLS-1$
        xmlns = (String) value;
        validateComponentXMLNS(annotation, xmlns, requiresV12, problems);
    } else if (requiresV12) {
        xmlns = NAMESPACE_1_2;
    }

    if (xmlns != null)
        component.setNamespace(xmlns);

    return model;
}

From source file:ca.ecliptical.pde.internal.ds.AnnotationProcessor.java

License:Open Source License

private boolean processReference(MethodDeclaration method, IMethodBinding methodBinding, Annotation annotation,
        IAnnotationBinding annotationBinding, IDSDocumentFactory factory, Collection<IDSReference> collector,
        Map<String, Annotation> names, Collection<DSAnnotationProblem> problems) {
    HashMap<String, Object> params = new HashMap<String, Object>();
    for (IMemberValuePairBinding pair : annotationBinding.getDeclaredMemberValuePairs()) {
        params.put(pair.getName(), pair.getValue());
    }//from   w  w  w  . j  a v  a 2 s  .  c  o  m

    boolean requiresV12 = false;

    ITypeBinding[] argTypes = methodBinding.getParameterTypes();

    ITypeBinding serviceType;
    Object value;
    if ((value = params.get("service")) instanceof ITypeBinding) { //$NON-NLS-1$
        serviceType = (ITypeBinding) value;
        if (!errorLevel.isNone() && argTypes.length > 0) {
            ITypeBinding[] typeArgs;
            if (!(ServiceReference.class.getName().equals(argTypes[0].getErasure().getQualifiedName())
                    && ((typeArgs = argTypes[0].getTypeArguments()).length == 0
                            || serviceType.isAssignmentCompatible(typeArgs[0])))
                    && !serviceType.isAssignmentCompatible(argTypes[0]))
                reportProblem(annotation, "service", problems, //$NON-NLS-1$
                        NLS.bind(Messages.AnnotationProcessor_invalidReferenceService, argTypes[0].getName(),
                                serviceType.getName()),
                        serviceType.getName());
        }
    } else if (argTypes.length > 0) {
        if (ServiceReference.class.getName().equals(argTypes[0].getErasure().getQualifiedName())) {
            ITypeBinding[] typeArgs = argTypes[0].getTypeArguments();
            if (typeArgs.length > 0)
                serviceType = typeArgs[0];
            else
                serviceType = null;
        } else {
            serviceType = argTypes[0].isPrimitive() ? getObjectType(method.getAST(), argTypes[0]) : argTypes[0];
        }
    } else {
        serviceType = null;
    }

    if (serviceType == null) {
        reportProblem(annotation, null, problems, Messages.AnnotationProcessor_invalidReferenceServiceUnknown);

        serviceType = method.getAST().resolveWellKnownType(Object.class.getName());
    }

    validateReferenceBindMethod(annotation, serviceType, methodBinding, problems);

    String service = serviceType == null ? null : serviceType.getBinaryName();

    String methodName = methodBinding.getName();
    String name;
    if ((value = params.get("name")) instanceof String) { //$NON-NLS-1$
        name = (String) value;
    } else if (methodName.startsWith("bind")) { //$NON-NLS-1$
        name = methodName.substring("bind".length()); //$NON-NLS-1$
    } else if (methodName.startsWith("set")) { //$NON-NLS-1$
        name = methodName.substring("set".length()); //$NON-NLS-1$
    } else if (methodName.startsWith("add")) { //$NON-NLS-1$
        name = methodName.substring("add".length()); //$NON-NLS-1$
    } else {
        name = methodName;
    }

    if (!errorLevel.isNone()) {
        if (names.containsKey(name)) {
            reportProblem(annotation, "name", problems, //$NON-NLS-1$
                    NLS.bind(Messages.AnnotationProcessor_duplicateReferenceName, name), name);
            Annotation duplicate = names.put(name, null);
            if (duplicate != null)
                reportProblem(duplicate, "name", problems, //$NON-NLS-1$
                        NLS.bind(Messages.AnnotationProcessor_duplicateReferenceName, name), name);
        } else {
            names.put(name, annotation);
        }
    }

    String cardinality = null;
    if ((value = params.get("cardinality")) instanceof IVariableBinding) { //$NON-NLS-1$
        IVariableBinding cardinalityBinding = (IVariableBinding) value;
        ReferenceCardinality cardinalityLiteral = ReferenceCardinality.valueOf(cardinalityBinding.getName());
        if (cardinalityLiteral != null)
            cardinality = cardinalityLiteral.toString();
    }

    String policy = null;
    if ((value = params.get("policy")) instanceof IVariableBinding) { //$NON-NLS-1$
        IVariableBinding policyBinding = (IVariableBinding) value;
        ReferencePolicy policyLiteral = ReferencePolicy.valueOf(policyBinding.getName());
        if (policyLiteral != null)
            policy = policyLiteral.toString();
    }

    String target = null;
    if ((value = params.get("target")) instanceof String) { //$NON-NLS-1$
        target = (String) value;
        validateReferenceTarget(annotation, target, problems);
    }

    String unbind;
    if ((value = params.get("unbind")) instanceof String) { //$NON-NLS-1$
        String unbindValue = (String) value;
        if ("-".equals(unbindValue)) { //$NON-NLS-1$
            unbind = null;
        } else {
            unbind = unbindValue;
            if (!errorLevel.isNone() && serviceType != null) {
                IMethodBinding unbindMethod = findReferenceMethod(methodBinding.getDeclaringClass(),
                        serviceType, unbind);
                if (unbindMethod == null)
                    reportProblem(annotation, "unbind", problems, //$NON-NLS-1$
                            NLS.bind(Messages.AnnotationProcessor_invalidReferenceUnbind, unbind), unbind);
            }
        }
    } else if (serviceType != null) {
        String unbindCandidate;
        if (methodName.startsWith("add")) { //$NON-NLS-1$
            unbindCandidate = "remove" + methodName.substring("add".length()); //$NON-NLS-1$ //$NON-NLS-2$
        } else {
            unbindCandidate = "un" + methodName; //$NON-NLS-1$
        }

        IMethodBinding unbindMethod = findReferenceMethod(methodBinding.getDeclaringClass(), serviceType,
                unbindCandidate);
        if (unbindMethod == null)
            unbind = null;
        else
            unbind = unbindMethod.getName();
    } else {
        unbind = null;
    }

    String policyOption = null;
    if ((value = params.get("policyOption")) instanceof IVariableBinding) { //$NON-NLS-1$
        IVariableBinding policyOptionBinding = (IVariableBinding) value;
        ReferencePolicyOption policyOptionLiteral = ReferencePolicyOption
                .valueOf(policyOptionBinding.getName());
        if (policyOptionLiteral != null) {
            policyOption = policyOptionLiteral.toString();
            requiresV12 = true;
        }
    }

    String updated;
    if ((value = params.get("updated")) instanceof String) { //$NON-NLS-1$
        String updatedValue = (String) value;
        if ("-".equals(updatedValue)) { //$NON-NLS-1$
            updated = null;
        } else {
            updated = updatedValue;
            if (!errorLevel.isNone() && serviceType != null) {
                IMethodBinding updatedMethod = findReferenceMethod(methodBinding.getDeclaringClass(),
                        serviceType, updated);
                if (updatedMethod == null)
                    reportProblem(annotation, "updated", problems, //$NON-NLS-1$
                            NLS.bind(Messages.AnnotationProcessor_invalidReferenceUpdated, updated), updated);
            }
        }

        requiresV12 = true;
    } else if (serviceType != null) {
        String updatedCandidate;
        if (methodName.startsWith("bind")) { //$NON-NLS-1$
            updatedCandidate = "updated" + methodName.substring("bind".length()); //$NON-NLS-1$ //$NON-NLS-2$
        } else if (methodName.startsWith("set")) { //$NON-NLS-1$
            updatedCandidate = "updated" + methodName.substring("set".length()); //$NON-NLS-1$ //$NON-NLS-2$
        } else if (methodName.startsWith("add")) { //$NON-NLS-1$
            updatedCandidate = "updated" + methodName.substring("add".length()); //$NON-NLS-1$ //$NON-NLS-2$
        } else {
            updatedCandidate = "updated" + methodName; //$NON-NLS-1$
        }

        IMethodBinding updatedMethod = findReferenceMethod(methodBinding.getDeclaringClass(), serviceType,
                updatedCandidate);
        if (updatedMethod == null)
            updated = null;
        else
            updated = updatedMethod.getName();
    } else {
        updated = null;
    }

    IDSReference reference = factory.createReference();
    collector.add(reference);

    reference.setReferenceBind(methodName);

    if (name != null)
        reference.setReferenceName(name);

    if (service != null)
        reference.setReferenceInterface(service);

    if (cardinality != null)
        reference.setReferenceCardinality(cardinality);

    if (policy != null)
        reference.setReferencePolicy(policy);

    if (target != null)
        reference.setReferenceTarget(target);

    if (unbind != null)
        reference.setReferenceUnbind(unbind);

    if (policyOption != null)
        reference.setXMLAttribute("policy-option", policyOption); //$NON-NLS-1$

    if (updated != null)
        reference.setXMLAttribute("updated", updated); //$NON-NLS-1$

    return requiresV12;
}

From source file:com.codenvy.ide.ext.java.server.JavadocFinder.java

License:Open Source License

private void addAnnotation(StringBuffer buf, IJavaElement element, IAnnotationBinding annotation)
        throws URISyntaxException {
    IJavaElement javaElement = annotation.getAnnotationType().getJavaElement();
    buf.append('@');
    if (javaElement != null) {
        String uri = JavaElementLinks.createURI(baseHref, javaElement);
        addLink(buf, uri, annotation.getName());
    } else {/* w ww.  j a  v  a 2s .co m*/
        buf.append(annotation.getName());
    }

    IMemberValuePairBinding[] mvPairs = annotation.getDeclaredMemberValuePairs();
    if (mvPairs.length > 0) {
        buf.append('(');
        for (int j = 0; j < mvPairs.length; j++) {
            if (j > 0) {
                buf.append(JavaElementLabels.COMMA_STRING);
            }
            IMemberValuePairBinding mvPair = mvPairs[j];
            String memberURI = JavaElementLinks.createURI(baseHref, mvPair.getMethodBinding().getJavaElement());
            addLink(buf, memberURI, mvPair.getName());
            buf.append('=');
            addValue(buf, element, mvPair.getValue());
        }
        buf.append(')');
    }
}

From source file:com.google.devtools.j2objc.gen.ObjectiveCImplementationGenerator.java

License:Open Source License

private void printAnnotationParameters(Annotation annotation) {
    IAnnotationBinding binding = annotation.getAnnotationBinding();
    IMemberValuePairBinding[] valueBindings = BindingUtil.getSortedMemberValuePairs(binding);
    for (int i = 0; i < valueBindings.length; i++) {
        if (i > 0) {
            print(' ');
        }/* w  ww .  j  a v a2s .c  o  m*/
        IMemberValuePairBinding valueBinding = valueBindings[i];
        print(i == 0 ? "With" : "with");
        printf("%s:", NameTable.capitalize(valueBinding.getName()));
        Object value = valueBinding.getValue();
        printAnnotationValue(value);
    }
}

From source file:com.google.devtools.j2objc.util.BindingUtil.java

License:Apache License

public static Object getAnnotationValue(IAnnotationBinding annotation, String name) {
    for (IMemberValuePairBinding pair : annotation.getAllMemberValuePairs()) {
        if (name.equals(pair.getName())) {
            return pair.getValue();
        }//from   w  w w.  j a  v a 2s .c om
    }
    return null;
}

From source file:com.google.devtools.j2objc.util.BindingUtil.java

License:Apache License

/**
 * Returns an alphabetically sorted list of an annotation's member values.
 * This is necessary since an annotation's values can be specified in any
 * order, but the annotation's constructor needs to be invoked using its
 * declaration order.//from   ww  w .  j  av  a  2 s. com
 */
public static IMemberValuePairBinding[] getSortedMemberValuePairs(IAnnotationBinding annotation) {
    IMemberValuePairBinding[] valuePairs = annotation.getAllMemberValuePairs();
    Arrays.sort(valuePairs, new Comparator<IMemberValuePairBinding>() {
        @Override
        public int compare(IMemberValuePairBinding o1, IMemberValuePairBinding o2) {
            return o1.getName().compareTo(o2.getName());
        }
    });
    return valuePairs;
}

From source file:com.google.gwt.eclipse.core.validators.rpc.ValidationSuppressionVisitor.java

License:Open Source License

private boolean computeSuppressWarning(IMemberValuePairBinding iMemberValuePairBinding) {
    if (!"value".equals(iMemberValuePairBinding.getName())) {
        return false;
    }//from  www.j a va2  s.  co  m

    Object value = iMemberValuePairBinding.getValue();
    return findString(value, "rpc-validation");
}

From source file:com.ibm.wala.cast.java.translator.jdt.JDTJava2CAstTranslator.java

License:Open Source License

private Set<CAstAnnotation> handleAnnotations(IBinding binding) {
    IAnnotationBinding[] annotations = binding.getAnnotations();

    if (annotations == null || annotations.length == 0) {
        return null;
    }//from w  w w  .j av  a2s .c om

    Set<CAstAnnotation> castAnnotations = HashSetFactory.make();
    for (IAnnotationBinding annotation : annotations) {
        ITypeBinding annotationTypeBinding = annotation.getAnnotationType();
        final CAstType annotationType = fTypeDict.getCAstTypeFor(annotationTypeBinding);
        final Map<String, Object> args = HashMapFactory.make();
        for (IMemberValuePairBinding mvpb : annotation.getAllMemberValuePairs()) {
            String name = mvpb.getName();
            Object value = mvpb.getValue();
            args.put(name, value);
        }
        castAnnotations.add(new CAstAnnotation() {
            @Override
            public CAstType getType() {
                return annotationType;
            }

            @Override
            public Map<String, Object> getArguments() {
                return args;
            }

            @Override
            public String toString() {
                return annotationType.getName() + args;
            }
        });
    }

    return castAnnotations;
}

From source file:com.servoy.eclipse.docgenerator.parser.JavadocExtractor.java

License:Open Source License

private Object extractAnnotationValue(Object value) {
    if (value instanceof IVariableBinding) {
        IVariableBinding varBinding = (IVariableBinding) value;
        String typeQualifiedName = null;
        String typeSimpleName = null;
        if (varBinding.getDeclaringClass() != null) {
            typeQualifiedName = varBinding.getDeclaringClass().getQualifiedName();
            typeSimpleName = varBinding.getDeclaringClass().getName();
        }/*from  ww  w .j ava 2s . c  o  m*/
        return new ReferenceMetaModel(typeQualifiedName, typeSimpleName, varBinding.getName(), null,
                QualifiedNameDisplayState.Simple);
    } else if (value instanceof IAnnotationBinding) {
        IAnnotationBinding annBinding = (IAnnotationBinding) value;
        AnnotationMetaModel annot = new AnnotationMetaModel(annBinding.getName());
        for (IMemberValuePairBinding attr : annBinding.getAllMemberValuePairs()) {
            try {
                String key = attr.getName();
                Object val = extractAnnotationValue(attr.getValue());
                annot.addAttribute(key, val);
            } catch (Exception e) {
                System.err.println("Attribute " + attr.getName() + " value is null (annotation binding "
                        + annBinding.getName() + ")");
            }
        }
        return annot;
    } else if (value.getClass().isArray()) {
        Object[] values = (Object[]) value;
        Object[] extractedValues = new Object[values.length];
        for (int i = 0; i < values.length; i++) {
            extractedValues[i] = extractAnnotationValue(values[i]);
        }
        return extractedValues;
    } else {
        return value;
    }
}

From source file:com.tsc9526.monalisa.plugin.eclipse.generator.SelectMethod.java

License:Open Source License

public void calculateResultClassName() {
    if (selectAnnotation.isNormalAnnotation()) {
        NormalAnnotation n = (NormalAnnotation) selectAnnotation;
        for (IMemberValuePairBinding mvp : n.resolveAnnotationBinding().getAllMemberValuePairs()) {
            String name = mvp.getName();
            if (name.equals("name")) {
                forceRenameResultClass = true;

                resultClassName = mvp.getValue().toString().trim();

                int x = resultClassName.lastIndexOf(".");
                if (x > 0) {
                    resultClassPackage = resultClassName.substring(0, x);
                    resultClassName = resultClassName.substring(x + 1);
                }/*w  w w.ja  v a 2s.c  o  m*/

            } else if (name.equals("build")) {
                buildCode = mvp.getValue().toString();
            }
        }
    }

    if (resultClassPackage == null || resultClassPackage.length() == 0) {
        resultClassPackage = unit.getSubPackageName();
    }

    if (resultClassName == null || resultClassName.length() == 0) {
        resultClassName = "Result" + firstUpper(md.getName().toString());
    }
}