All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.nakedobjects.metamodel.interactions.InteractionUtils Maven / Gradle / Ivy

The newest version!
package org.nakedobjects.metamodel.interactions;

import org.nakedobjects.metamodel.consent.InteractionResult;
import org.nakedobjects.metamodel.consent.InteractionResultSet;
import org.nakedobjects.metamodel.facets.Facet;
import org.nakedobjects.metamodel.facets.FacetFilters;
import org.nakedobjects.metamodel.facets.FacetHolder;


public final class InteractionUtils {

    private InteractionUtils() {}

    public static InteractionResult isVisibleResult(final FacetHolder facetHolder, final VisibilityContext context) {
        final InteractionResult result = new InteractionResult(context.createInteractionEvent());
        final Facet[] facets = facetHolder.getFacets(FacetFilters.isA(HidingInteractionAdvisor.class));
        for (int i = 0; i < facets.length; i++) {
            final HidingInteractionAdvisor advisor = (HidingInteractionAdvisor) facets[i];
            result.advise(advisor.hides(context), advisor);
        }
        return result;
    }

    public static InteractionResultSet isVisibleResultSet(
            final FacetHolder facetHolder,
            final VisibilityContext context,
            final InteractionResultSet resultSet) {
        return resultSet.add(isVisibleResult(facetHolder, context));
    }

    public static InteractionResult isUsableResult(final FacetHolder facetHolder, final UsabilityContext context) {
        final InteractionResult result = new InteractionResult(context.createInteractionEvent());
        final Facet[] facets = facetHolder.getFacets(FacetFilters.isA(DisablingInteractionAdvisor.class));
        for (int i = 0; i < facets.length; i++) {
            final DisablingInteractionAdvisor advisor = (DisablingInteractionAdvisor) facets[i];
            final String disables = advisor.disables(context);
            result.advise(disables, advisor);
        }
        return result;
    }

    public static InteractionResultSet isUsableResultSet(
            final FacetHolder facetHolder,
            final UsabilityContext context,
            final InteractionResultSet resultSet) {
        return resultSet.add(isUsableResult(facetHolder, context));
    }

    public static InteractionResult isValidResult(final FacetHolder facetHolder, final ValidityContext context) {
        final InteractionResult result = new InteractionResult(context.createInteractionEvent());
        final Facet[] facets = facetHolder.getFacets(FacetFilters.isA(ValidatingInteractionAdvisor.class));
        for (int i = 0; i < facets.length; i++) {
            final ValidatingInteractionAdvisor advisor = (ValidatingInteractionAdvisor) facets[i];
            result.advise(advisor.invalidates(context), advisor);
        }
        return result;
    }

    public static InteractionResultSet isValidResultSet(
            final FacetHolder facetHolder,
            final ValidityContext context,
            final InteractionResultSet resultSet) {
        return resultSet.add(isValidResult(facetHolder, context));
    }

}

// Copyright (c) Naked Objects Group Ltd.




© 2015 - 2024 Weber Informatics LLC | Privacy Policy