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

org.nakedobjects.metamodel.facets.disable.DisabledFacetAbstract Maven / Gradle / Ivy

The newest version!
package org.nakedobjects.metamodel.facets.disable;

import org.nakedobjects.applib.events.UsabilityEvent;
import org.nakedobjects.metamodel.adapter.NakedObject;
import org.nakedobjects.metamodel.facets.Facet;
import org.nakedobjects.metamodel.facets.FacetHolder;
import org.nakedobjects.metamodel.facets.SingleWhenValueFacetAbstract;
import org.nakedobjects.metamodel.facets.When;
import org.nakedobjects.metamodel.interactions.UsabilityContext;


public abstract class DisabledFacetAbstract extends SingleWhenValueFacetAbstract implements DisabledFacet {

    public static Class type() {
        return DisabledFacet.class;
    }

    public DisabledFacetAbstract(final When value, final FacetHolder holder) {
        super(type(), holder, value);
    }

    public String disables(final UsabilityContext ic) {
        final NakedObject target = ic.getTarget();
        String disabledReason = disabledReason(target);
        if (disabledReason != null) {
        	return disabledReason;
        }
        if (getUnderlyingFacet() != null) {
        	DisabledFacet underlyingFacet = (DisabledFacet) getUnderlyingFacet();
        	return underlyingFacet.disabledReason(target);
        }
        return null;
    }

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy