class PlatformDotNetCacheStoreFactory implements Factory<PlatformDotNetCacheStore> {
    /** */
    private static final long serialVersionUID = 0L;

    /** .Net type name. */
    private String typName;

    /** Properties. */
    private Map<String, ?> props;

    /** Instance. */
    private transient PlatformDotNetCacheStore instance;

    /**
     * Gets .NET type name.
     *
     * @return .NET type name.
     */
    public String getTypeName() {
        return typName;
    }

    /**
     * Sets .NET type name.
     *
     * @param typName .NET type name.
     */
    public void setTypeName(String typName) {
        this.typName = typName;
    }

    /**
     * Get properties.
     *
     * @return Properties.
     */
    public Map<String, ?> getProperties() {
        return props;
    }

    /**
     * Set properties.
     *
     * @param props Properties.
     */
    public void setProperties(Map<String, ?> props) {
        this.props = props;
    }

    /** {@inheritDoc} */
    @SuppressWarnings("unchecked")
    @Override public PlatformDotNetCacheStore create() {<FILL_FUNCTION_BODY>}
}

        synchronized (this) {
            if (instance == null) {
                instance = new PlatformDotNetCacheStore();

                instance.setTypeName(typName);
                instance.setProperties(props);
            }

            return instance;
        }
    
<no_super_class>