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

org.nakedobjects.metamodel.facets.propparam.validate.mask.MaskFacetAbstract Maven / Gradle / Ivy

The newest version!
package org.nakedobjects.metamodel.facets.propparam.validate.mask;

import org.nakedobjects.applib.events.ValidityEvent;
import org.nakedobjects.metamodel.adapter.NakedObject;
import org.nakedobjects.metamodel.facets.Facet;
import org.nakedobjects.metamodel.facets.FacetHolder;
import org.nakedobjects.metamodel.facets.SingleStringValueFacetAbstract;
import org.nakedobjects.metamodel.interactions.ProposedHolder;
import org.nakedobjects.metamodel.interactions.ValidityContext;


public abstract class MaskFacetAbstract extends SingleStringValueFacetAbstract implements MaskFacet {

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

    public MaskFacetAbstract(final String value, final FacetHolder holder) {
        super(type(), holder, value);
    }

    public String invalidates(final ValidityContext context) {
        if (!(context instanceof ProposedHolder)) {
            return null;
        }
        final ProposedHolder proposedHolder = (ProposedHolder) context;
        final NakedObject proposedArgument = proposedHolder.getProposed();
        if (doesNotMatch(proposedArgument)) {
            return "'" + proposedArgument.titleString() + "' does not match the mask '" + value() + "'";
        }
        return null;
    }

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy