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

org.nakedobjects.metamodel.java5.PropertyOrCollectionIdentifyingFacetFactoryAbstract Maven / Gradle / Ivy

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

import org.nakedobjects.metamodel.facets.FacetFactory;
import org.nakedobjects.metamodel.facets.PropertyOrCollectionIdentifyingFacetFactory;
import org.nakedobjects.metamodel.spec.feature.NakedObjectFeatureType;
import org.nakedobjects.metamodel.specloader.collectiontyperegistry.CollectionTypeRegistry;
import org.nakedobjects.metamodel.specloader.collectiontyperegistry.CollectionTypeRegistryAware;


public abstract class PropertyOrCollectionIdentifyingFacetFactoryAbstract extends MethodPrefixBasedFacetFactoryAbstract implements
        PropertyOrCollectionIdentifyingFacetFactory, CollectionTypeRegistryAware {

    private CollectionTypeRegistry collectionTypeRegistry;

    public PropertyOrCollectionIdentifyingFacetFactoryAbstract(
            final String[] prefixes,
            final NakedObjectFeatureType[] featureTypes) {
        super(prefixes, featureTypes);
    }

    protected boolean isCollectionOrArray(final Class cls) {
        return getCollectionTypeRepository().isCollectionType(cls) || getCollectionTypeRepository().isArrayType(cls);
    }

    // /////////////////////////////////////////////////////////////////////////
    // Injected: CollectionTypeRegistry
    // /////////////////////////////////////////////////////////////////////////

    protected CollectionTypeRegistry getCollectionTypeRepository() {
        return collectionTypeRegistry;
    }

    /**
     * Injected so can propogate to any {@link #registerFactory(FacetFactory) registered} {@link FacetFactory}
     * s that are also {@link CollectionTypeRegistryAware}.
     */
    public void setCollectionTypeRegistry(final CollectionTypeRegistry collectionTypeRegistry) {
        this.collectionTypeRegistry = collectionTypeRegistry;
    }

}

// Copyright (c) Naked Objects Group Ltd.




© 2015 - 2024 Weber Informatics LLC | Privacy Policy