001    package com.hammurapi.flow.runtime;
002    
003    /**
004     * Instantiates property sets.
005     * @author Pavel
006     */
007    public interface PropertySetFactory {
008    
009            /**
010             * Creates new property set.
011             * @param chain Property sets can be chained. Chaining allows to
012             * build chains of property sets with forward-only modifications semantics. 
013             * New property set access operations delegate to chains if the property 
014             * set itself does not contain requested values. 
015             * All update and remove operations are local to the property
016             * set (and mounted sets) - chains are never modified.
017             * @return New property set.
018             */
019            PropertySet createPropertySet(PropertySet... chain);
020    }