Example usage for org.eclipse.jdt.core.dom MemberValuePair resolveMemberValuePairBinding

List of usage examples for org.eclipse.jdt.core.dom MemberValuePair resolveMemberValuePairBinding

Introduction

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

Prototype

public final IMemberValuePairBinding resolveMemberValuePairBinding() 

Source Link

Document

Resolves and returns the member value pair binding for this member value pair.

Usage

From source file:com.wuetherich.osgi.ds.annotations.internal.builder.DetectDsAnnotationVersionAstVisitor.java

License:Open Source License

@Override
protected void handleComponentAnnotation(NormalAnnotation node) {
    for (Object object : node.values()) {
        MemberValuePair pair = (MemberValuePair) object;

        // handle xmlns
        if ("xmlns".equals(pair.getName().toString())) {
            String xmlns = (String) pair.resolveMemberValuePairBinding().getValue();
            _specifiedXmlns = DsAnnotationVersion.getFromNamespace(xmlns);
            if (_specifiedXmlns == null) {
                _annotationException = new DsAnnotationException(
                        String.format("Invalid namespace definition '%s'.", xmlns));
            }//ww w.  j  ava 2s.  c  om
        }
        //
        else if ("configurationPid".equals(pair.getName().toString())) {
            setUpTo(DsAnnotationVersion.V_1_2);
        }
        //
        else if ("configurationPolicy".equals(pair.getName().toString())) {
            setUpTo(DsAnnotationVersion.V_1_1);
        }
    }
}

From source file:com.wuetherich.osgi.ds.annotations.internal.builder.DsAnnotationAstVisitor.java

License:Open Source License

/**
 * <p>/*from w  w  w  . ja va  2 s  .  c o m*/
 * </p>
 * 
 * @param normalAnnotation
 */
private void handleNormalReferenceAnnotation(NormalAnnotation normalAnnotation) {

    String name = null;
    String cardinality = null;
    String policy = null;
    String unbind = null;
    String target = null;

    String service = _currentMethodDeclaration.resolveBinding().getParameterTypes()[0].getBinaryName();
    String bind = _currentMethodDeclaration.getName().getFullyQualifiedName();

    for (Object object : normalAnnotation.values()) {

        //
        MemberValuePair pair = (MemberValuePair) object;
        String valueName = pair.getName().toString();

        if ("name".equals(valueName)) {
            name = pair.resolveMemberValuePairBinding().getValue().toString();
        }
        //
        else if ("cardinality".equals(valueName)) {

            IVariableBinding variableBinding = (IVariableBinding) pair.resolveMemberValuePairBinding()
                    .getValue();
            cardinality = variableBinding.getName().toLowerCase();
        }
        //
        else if ("policy".equals(valueName)) {
            policy = ((IVariableBinding) pair.resolveMemberValuePairBinding().getValue()).getName();
        }
        //
        else if ("service".equals(valueName)) {
            service = ((ITypeBinding) pair.resolveMemberValuePairBinding().getValue()).getBinaryName();
        }
        //
        else if ("unbind".equals(valueName)) {
            unbind = pair.resolveMemberValuePairBinding().getValue().toString();
        }
        //
        else if ("target".equals(valueName)) {
            target = pair.resolveMemberValuePairBinding().getValue().toString();
        }
    }

    //
    getCurrentComponentDescription().addReference(service, bind, name, cardinality, policy, unbind, target);
}

From source file:com.wuetherich.osgi.ds.annotations.internal.builder.DsAnnotationAstVisitor.java

License:Open Source License

/**
 * <p>//from   www .  j a  v  a2s  .  com
 * </p>
 * 
 * @param normalAnnotation
 */
private void handleNormalComponentAnnotation(NormalAnnotation normalAnnotation) {

    for (Object object : normalAnnotation.values()) {

        //
        MemberValuePair pair = (MemberValuePair) object;
        String valueName = pair.getName().toString();

        //
        if ("name".equals(valueName)) {
            getCurrentComponentDescription().setName((String) pair.resolveMemberValuePairBinding().getValue());
        }
        //
        else if ("enabled".equals(valueName)) {
            getCurrentComponentDescription()
                    .setEnabled((Boolean) pair.resolveMemberValuePairBinding().getValue());
        }
        //
        else if ("immediate".equals(valueName)) {
            getCurrentComponentDescription()
                    .setImmediate((Boolean) pair.resolveMemberValuePairBinding().getValue());
        }
        //
        else if ("factory".equals(valueName)) {
            getCurrentComponentDescription()
                    .setFactory((String) pair.resolveMemberValuePairBinding().getValue());
        }
        //
        else if ("configurationPolicy".equals(valueName)) {
            IVariableBinding variableBinding = (IVariableBinding) pair.resolveMemberValuePairBinding()
                    .getValue();
            getCurrentComponentDescription().setConfigurationPolicy(variableBinding.getName().toLowerCase());
        }
        //
        else if ("property".equals(valueName)) {
            for (Object keyValue : (Object[]) pair.resolveMemberValuePairBinding().getValue()) {
                getCurrentComponentDescription().addProperty((String) keyValue);
            }
        }
        //
        else if ("properties".equals(valueName)) {
            for (Object keyValue : (Object[]) pair.resolveMemberValuePairBinding().getValue()) {
                getCurrentComponentDescription().addProperties((String) keyValue);
            }
        }
        //
        else if ("service".equals(valueName)) {

            Object[] objects = (Object[]) pair.resolveMemberValuePairBinding().getValue();
            List<String> services = new LinkedList<String>();
            for (Object tb : objects) {
                ITypeBinding typeBinding = (ITypeBinding) tb;
                services.add(typeBinding.getBinaryName());
            }
            getCurrentComponentDescription().setService(services.toArray(new String[0]));
        }
        //
        else if ("servicefactory".equals(valueName)) {
            getCurrentComponentDescription()
                    .setServiceFactory((Boolean) pair.resolveMemberValuePairBinding().getValue());
        }

    }
}

From source file:org.mapstruct.eclipse.internal.MapStructCompletionProposalComputer.java

License:Apache License

/**
 * Creates an {@link ASTVisitor} that discovers all properties for a <code>Mapping</code>'s <code>source</code> and
 * <code>target</code> method for the given invocation offset.
 *///from ww  w  .j a  va2s  .c  o  m
private ASTVisitor createVisitor(final int invocationOffset, final AtomicBoolean isValidValue,
        final AtomicBoolean isSource, final Set<String> sourceProperties, final Set<String> targetProperties) {

    return new ASTVisitor(false) {

        @Override
        public boolean visit(MemberValuePair node) {

            String annotationQualifiedName = getAnnotationQualifiedName(node.resolveMemberValuePairBinding());

            if (MAPPING_ANNOTATION_QUALIFIED_NAME.equals(annotationQualifiedName) && isInRange(invocationOffset,
                    node.getValue().getStartPosition(), node.getValue().getLength())
                    && isMappingAnnotationMethod(node)) {

                isValidValue.set(true);

                if (SOURCE_ANNOTATION_METHOD.equals(node.getName().toString())) {
                    isSource.set(true);
                }

            }

            return false;

        }

        @Override
        public boolean visit(MethodDeclaration node) {

            if (isInRange(invocationOffset, node.getStartPosition(), node.getLength())) {

                IMethodBinding binding = node.resolveBinding();

                ITypeBinding returnType = binding.getReturnType();
                targetProperties.addAll(findProperties(returnType.getDeclaredMethods(), SET_PREFIX));

                ITypeBinding[] parameterTypes = binding.getParameterTypes();
                if (parameterTypes.length == 1) {
                    IMethodBinding[] declaredMethods = parameterTypes[0].getDeclaredMethods();
                    sourceProperties.addAll(findProperties(declaredMethods, GET_PREFIX));
                    sourceProperties.addAll(findProperties(declaredMethods, IS_PREFIX));
                }

                return true;

            }

            return false;

        }

    };

}