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

org.nakedobjects.metamodel.facets.object.defaults.PropertyDefaultFacetDerivedFromDefaultedFacet Maven / Gradle / Ivy

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

import org.nakedobjects.metamodel.adapter.NakedObject;
import org.nakedobjects.metamodel.facets.FacetAbstract;
import org.nakedobjects.metamodel.facets.FacetHolder;
import org.nakedobjects.metamodel.facets.properties.defaults.PropertyDefaultFacet;
import org.nakedobjects.metamodel.runtimecontext.RuntimeContext;


public class PropertyDefaultFacetDerivedFromDefaultedFacet extends FacetAbstract implements PropertyDefaultFacet {

    private final DefaultedFacet typeFacet;
	private final RuntimeContext runtimeContext;

    public PropertyDefaultFacetDerivedFromDefaultedFacet(
    		final DefaultedFacet typeFacet, 
    		final FacetHolder holder, 
    		final RuntimeContext runtimeContext) {
        super(PropertyDefaultFacet.class, holder, false);
        this.typeFacet = typeFacet;
        this.runtimeContext = runtimeContext;
    }

    public NakedObject getDefault(final NakedObject inObject) {
        if (getIdentified() == null) {
			return null;
		}
		Object typeFacetDefault = typeFacet.getDefault();
		if (typeFacetDefault == null) {
			return null;
		}
		return getRuntimeContext().adapterFor(typeFacetDefault);
    }


	///////////////////////////////////////////////////////
    // Dependencies (from constructor)
    ///////////////////////////////////////////////////////

    private RuntimeContext getRuntimeContext() {
		return runtimeContext;
	}

}

// Copyright (c) Naked Objects Group Ltd.




© 2015 - 2024 Weber Informatics LLC | Privacy Policy