Package org.apache.isis.applib.annotation

Examples of org.apache.isis.applib.annotation.PostsPropertyChangedEvent


    @Override
    public void process(final ProcessMethodContext processMethodContext) {
        final Method method = processMethodContext.getMethod();
        FacetedMethod holder = processMethodContext.getFacetHolder();
       
        final PostsPropertyChangedEvent annotation = Annotations.getAnnotation(method, PostsPropertyChangedEvent.class);
        if(annotation == null) {
            return;
        }
        final PropertyOrCollectionAccessorFacet getterFacet = holder.getFacet(PropertyOrCollectionAccessorFacet.class);
        if(getterFacet == null) {
            return;
        }
       
        final PropertySetterFacet setterFacet = holder.getFacet(PropertySetterFacet.class);
        if(setterFacet != null) {
            final Class<? extends PropertyChangedEvent<?, ?>> changedEventType = annotation.value();
            FacetUtil.addFacet(new PostsPropertyChangedEventSetterFacetAnnotation(changedEventType, getterFacet, setterFacet, servicesInjector, holder));
        }
       
        final PropertyClearFacet clearFacet = holder.getFacet(PropertyClearFacet.class);
        if(clearFacet != null) {
            final Class<? extends PropertyChangedEvent<?, ?>> changedEventType = annotation.value();
            FacetUtil.addFacet(new PostsPropertyChangedEventClearFacetAnnotation(changedEventType, getterFacet, clearFacet, servicesInjector, holder));
        }
    }
View Full Code Here


        //
        // here we support the deprecated annotations
        //


        final PostsPropertyChangedEvent postsPropertyChangedEvent = Annotations.getAnnotation(method, PostsPropertyChangedEvent.class);

        final PropertySetterFacet setterFacet = holder.getFacet(PropertySetterFacet.class);
        if(setterFacet != null) {
            // the current setter facet will end up as the underlying facet
            final PropertySetterFacetForInteractionAbstract replacementFacet;
            if(propertyInteraction != null) {
                replacementFacet = new PropertySetterFacetForPropertyInteractionAnnotation(
                        propertyInteractionEventType, getterFacet, setterFacet, propertyInteractionFacet, holder, servicesInjector);
            } else if(postsPropertyChangedEvent != null) {
                replacementFacet = new PropertySetterFacetForPostsPropertyChangedEventAnnotation(
                        postsPropertyChangedEvent.value(), getterFacet, setterFacet, propertyInteractionFacet, holder, servicesInjector);
            } else {
                replacementFacet = new PropertySetterFacetForPropertyInteractionDefault(
                        PropertyInteractionEvent.Default.class, getterFacet, setterFacet, propertyInteractionFacet, holder, servicesInjector);
            }
            FacetUtil.addFacet(replacementFacet);
        }
       
        final PropertyClearFacet clearFacet = holder.getFacet(PropertyClearFacet.class);
        if(clearFacet != null) {
            // the current clear facet will end up as the underlying facet
            final PropertyClearFacetForInteractionAbstract replacementFacet;
            if(propertyInteraction != null) {
                replacementFacet = new PropertyClearFacetForPropertyInteractionAnnotation(
                        propertyInteractionEventType, getterFacet, clearFacet, propertyInteractionFacet, holder, servicesInjector);
            } else if(postsPropertyChangedEvent != null) {
                replacementFacet = new PropertyClearFacetForPostsPropertyChangedEventAnnotation(
                        postsPropertyChangedEvent.value(), getterFacet, clearFacet, propertyInteractionFacet, holder, servicesInjector);
            } else {
                replacementFacet = new PropertyClearFacetForPropertyInteractionDefault(
                        PropertyInteractionEvent.Default.class, getterFacet, clearFacet, propertyInteractionFacet, holder, servicesInjector);
            }
            FacetUtil.addFacet(replacementFacet);
View Full Code Here

        final Method method = processMethodContext.getMethod();
        FacetUtil.addFacet(create(method, processMethodContext.getFacetHolder()));
    }

    private PostsPropertyChangedEventFacet create(Method method, final FacetHolder holder) {
        final PostsPropertyChangedEvent annotation = Annotations.getAnnotation(method, PostsPropertyChangedEvent.class);
        if(annotation == null) {
            return null;
        }
        final PropertyOrCollectionAccessorFacet getterFacet = holder.getFacet(PropertyOrCollectionAccessorFacet.class);
        if(getterFacet == null) {
            return null;
        }
        final PropertyClearFacet clearFacet = holder.getFacet(PropertyClearFacet.class);
        final PropertySetterFacet setterFacet = holder.getFacet(PropertySetterFacet.class);
        if (clearFacet == null && setterFacet == null) {
            return null;
        }
        if(setterFacet != null) {
            holder.removeFacet(setterFacet);
        }
        if(clearFacet != null) {
            holder.removeFacet(clearFacet);
        }
        final Class<? extends PropertyChangedEvent<?, ?>> changedEventType = annotation.value();
        return new PostsPropertyChangedEventFacetAnnotation(changedEventType, getterFacet, setterFacet, clearFacet, servicesProvider, holder);
    }
View Full Code Here

TOP

Related Classes of org.apache.isis.applib.annotation.PostsPropertyChangedEvent

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.