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

org.nakedobjects.metamodel.facets.SingleClassValueFacetAbstract Maven / Gradle / Ivy

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

import org.nakedobjects.metamodel.spec.NakedObjectSpecification;
import org.nakedobjects.metamodel.specloader.SpecificationLoader;


public abstract class SingleClassValueFacetAbstract extends FacetAbstract implements SingleClassValueFacet {

    private final Class value;
    private final SpecificationLoader specificationLoader;

    public SingleClassValueFacetAbstract(
            final Class facetType,
            final FacetHolder holder,
            final Class value,
            final SpecificationLoader specificationLoader) {
        super(facetType, holder, false);
        this.value = value;
        this.specificationLoader = specificationLoader;
    }

    public Class value() {
        return value;
    }

    /**
     * The {@link NakedObjectSpecification} of the {@link #value()}.
     */
    public NakedObjectSpecification valueSpec() {
        final Class valueType = value();
        return valueType != null ? getSpecificationLoader().loadSpecification(valueType) : null;
    }

    private SpecificationLoader getSpecificationLoader() {
        return specificationLoader;
    }

}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy