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

org.nakedobjects.metamodel.facets.collections.modify.CollectionFacetAbstract Maven / Gradle / Ivy

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

import java.util.Collection;
import java.util.Enumeration;
import java.util.Iterator;

import org.apache.commons.collections.iterators.IteratorEnumeration;
import org.nakedobjects.metamodel.adapter.NakedObject;
import org.nakedobjects.metamodel.facets.FacetAbstract;
import org.nakedobjects.metamodel.facets.FacetHolder;
import org.nakedobjects.metamodel.facets.actcoll.typeof.TypeOfFacet;


public abstract class CollectionFacetAbstract extends FacetAbstract implements CollectionFacet {

    public CollectionFacetAbstract(final FacetHolder holder) {
        super(CollectionFacet.class, holder, false);
    }
    
    @SuppressWarnings("unchecked")
    public final Enumeration elements(final NakedObject nakedObjectRepresentingCollection) {
        return new IteratorEnumeration(iterator(nakedObjectRepresentingCollection));
    }

    public final boolean contains(final NakedObject nakedObjectRepresentingCollection, final NakedObject candidateNakedObject) {
        Collection collection = collection(nakedObjectRepresentingCollection);
        return collection.contains(candidateNakedObject);
    }

    @SuppressWarnings("unchecked")
    public final Iterator iterator(final NakedObject nakedObjectRepresentingCollection) {
        Collection collection = collection(nakedObjectRepresentingCollection);
        return collection.iterator();
    }

    public Iterable iterable(final NakedObject nakedObjectRepresentingCollection) {
        return new Iterable() {
            public Iterator iterator() {
                return CollectionFacetAbstract.this.iterator(nakedObjectRepresentingCollection);
            }
        };
    }

    public final TypeOfFacet getTypeOfFacet() {
        return getFacetHolder().getFacet(TypeOfFacet.class);
    }


}

// Copyright (c) Naked Objects Group Ltd.




© 2015 - 2024 Weber Informatics LLC | Privacy Policy