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

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

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

import org.nakedobjects.metamodel.adapter.NakedObject;
import org.nakedobjects.metamodel.facets.FacetHolder;
import org.nakedobjects.metamodel.facets.When;


public class DisabledFacetImpl extends DisabledFacetAbstract {

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

    public String disabledReason(final NakedObject targetAdapter) {
        if (value() == When.ALWAYS) {
            return "Always disabled";
        } else if (value() == When.NEVER) {
            return null;
        }

        // remaining tests depend upon the actual target in question
        if (targetAdapter == null) {
            return null;
        }

        if (value() == When.UNTIL_PERSISTED) {
            return targetAdapter.isTransient() ? "Disabled until persisted" : null;
        } else if (value() == When.ONCE_PERSISTED) {
            return targetAdapter.isPersistent() ? "Disabled once persisted" : null;
        }
        return null;
    }

}

// Copyright (c) Naked Objects Group Ltd.




© 2015 - 2024 Weber Informatics LLC | Privacy Policy