Package org.apache.tuscany.sca.implementation.java.impl

Examples of org.apache.tuscany.sca.implementation.java.impl.JavaElementImpl


        String setter = JavaIntrospectionHelper.toSetter(name);
        try {
            Method method = impl.getJavaClass().getDeclaredMethod(setter, type);
            int mod = method.getModifiers();
            if ((Modifier.isPublic(mod) || Modifier.isProtected(mod)) && (!Modifier.isStatic(mod))) {
                return new JavaElementImpl(method, 0);
            }
        } catch (NoSuchMethodException e) {
            Field field;
            try {
                field = impl.getJavaClass().getDeclaredField(name);
                int mod = field.getModifiers();
                if ((Modifier.isPublic(mod) || Modifier.isProtected(mod)) && (!Modifier.isStatic(mod))) {
                  return new JavaElementImpl(field);
                }
            } catch (NoSuchFieldException e1) {
                // Ignore
            }
        }
View Full Code Here


                if (ref.getInterfaceContract() != null) {
                    Interface i = ref.getInterfaceContract().getInterface();
                    if (i instanceof JavaInterface) {
                        Class<?> type = ((JavaInterface)i).getJavaClass();
                        if (!refMembers.containsKey(ref.getName())) {
                            JavaElementImpl e = getMemeber(impl, ref.getName(), type);
                            if (e != null) {
                                refMembers.put(ref.getName(), e);
                            }
                        }
                    }
View Full Code Here

    @Test
    public void testIntegerInjectionValidWithJavaElement() {
        InjectionTestParams params = new InjectionTestParams();
        params.propertyName = "intField";
        params.xsdType = SimpleTypeMapperImpl.XSD_INT;
        params.expectedJavaElement = new JavaElementImpl(int.class);

        for (int i = -5; i <= 5; i++) {
            params.propertyValue = Integer.toString(i);
            params.expectedValueFromFactory = i;
            doInjection(params);
View Full Code Here

    public void testIntegerArrayInjectionValidWithJavaElement() {
        InjectionTestParams params = new InjectionTestParams();
        params.propertyName = "intField";
        params.xsdType = SimpleTypeMapperImpl.XSD_INT;
        params.isMany = true;
        params.expectedJavaElement = new JavaElementImpl(int[].class);
        params.propertyValue = "1 2 3 4 5";
        int[] expected = { 1, 2, 3, 4, 5 };
        params.expectedValueFromFactory = expected;
        doInjection(params);
    }
View Full Code Here

    @Test
    public void testIntegerInjectionBadNumberInvalidWithJavaElement() {
        InjectionTestParams params = new InjectionTestParams();
        params.propertyName = "intField";
        params.xsdType = SimpleTypeMapperImpl.XSD_INT;
        params.expectedJavaElement = new JavaElementImpl(Integer.TYPE);
        params.propertyValue = "a";
        params.exceptionExpected = true;
        doInjection(params);
    }
View Full Code Here

    public void testIntegerArrayInjectionBadNumberInvalidWithJavaElement() {
        InjectionTestParams params = new InjectionTestParams();
        params.propertyName = "intField";
        params.xsdType = SimpleTypeMapperImpl.XSD_INT;
        params.isMany = true;
        params.expectedJavaElement = new JavaElementImpl(int[].class);
        params.propertyValue = "1 2 aa 4 5";
        params.exceptionExpected = true;
        doInjection(params);
    }
View Full Code Here

    @Test
    public void testIntegerInjectionEmptyStringInvalidWithJavaElement() {
        InjectionTestParams params = new InjectionTestParams();
        params.propertyName = "intField";
        params.xsdType = SimpleTypeMapperImpl.XSD_INT;
        params.expectedJavaElement = new JavaElementImpl(Integer.TYPE);
        params.propertyValue = "";
        params.exceptionExpected = true;
        doInjection(params);
    }
View Full Code Here

    @Test
    public void testStringInjectionValidWithJavaElement() {
        InjectionTestParams params = new InjectionTestParams();
        params.propertyName = "StringField";
        params.xsdType = SimpleTypeMapperImpl.XSD_STRING;
        params.expectedJavaElement = new JavaElementImpl(String.class);

        params.propertyValue = "Some Test String";
        params.expectedValueFromFactory = "Some Test String";
        doInjection(params);
    }
View Full Code Here

    public void testStringArrayInjectionValidWithJavaElement() {
        InjectionTestParams params = new InjectionTestParams();
        params.propertyName = "StringField";
        params.xsdType = SimpleTypeMapperImpl.XSD_STRING;
        params.isMany = true;
        params.expectedJavaElement = new JavaElementImpl(String.class);
        params.propertyValue = "\"String1\" \"String2\" \"String3\" \"String4\" \"String5\"";
        params.expectedValueFromFactory = Arrays.asList(
                "String1", "String2", "String3", "String4", "String5");
        doInjection(params);
    }
View Full Code Here

        List<ComponentProperty> componentProperties = component.getProperties();
        Map<String, JavaElementImpl> propertyMembers = javaImpl.getPropertyMembers();
       
        for (ComponentProperty prop : componentProperties) {
            JavaElementImpl element = propertyMembers.get(prop.getName());
           
            if (element != null && !(element.getAnchor() instanceof Constructor) && prop.getValue() != null) {
                Class propertyJavaType = JavaIntrospectionHelper.getBaseType(element.getType(), element.getGenericType());
                ObjectFactory objFactory = propertyValueFactory.createValueFactory(prop, prop.getValue(), propertyJavaType);
                   
                factories.put(element, objFactory);
                injectionSites.add(element);
           
        }
       
        for (Member member : javaImpl.getConversationIDMembers()) {
            ObjectFactory<String> factory = new ConversationIDObjectFactory();
            if (member instanceof Field) {
                JavaElementImpl element = new JavaElementImpl((Field) member);
                element.setClassifer(ConversationID.class);
                injectionSites.add(element);
                factories.put(element, factory);
            } else if (member instanceof Method) {
                JavaElementImpl element = new JavaElementImpl((Method) member, 0);
                element.setName(JavaIntrospectionHelper.toPropertyName(member.getName()));
                element.setClassifer(ConversationID.class);
                injectionSites.add(element);
                factories.put(element, factory);
            } else {
                throw new InvalidAccessorException(
                        "Member must be a field or method: " + member.getName());
            }

        }
       
        if (!javaImpl.getCallbackMembers().isEmpty()) {
            Map<String, List<RuntimeWire>> callbackWires = new HashMap<String, List<RuntimeWire>>();
            for (ComponentService service : component.getServices()) {

                RuntimeComponentReference callbackReference = (RuntimeComponentReference)service.getCallbackReference();
                if (callbackReference != null) {
                    List<RuntimeWire> wires = callbackReference.getRuntimeWires();
                    if (!wires.isEmpty()) {
                        callbackWires.put(wires.get(0).getSource().getInterfaceContract().getInterface().toString(), wires);
                    }
                }
            }

            for (Map.Entry<String, Collection<JavaElementImpl>> entry : javaImpl.getCallbackMembers()
                .entrySet()) {
                List<RuntimeWire> wires = callbackWires.get(entry.getKey());
                if (wires == null) {
                    // this can happen when there are no client wires to a
                    // component that has a callback
                    continue;
                }
                for(JavaElementImpl element : entry.getValue()) {
                    ObjectFactory<?> factory = new CallbackWireObjectFactory(element.getType(), proxyFactory, wires);
                    if (!(element.getAnchor() instanceof Constructor)) {
                        injectionSites.add(element);
                    }
                    factories.put(element, factory);
                }
            }
View Full Code Here

TOP

Related Classes of org.apache.tuscany.sca.implementation.java.impl.JavaElementImpl

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.