/*
 * Copyright (c) 1997, 2018 Oracle and/or its affiliates. All rights reserved.
 *
 * This program and the accompanying materials are made available under the
 * terms of the Eclipse Distribution License v. 1.0, which is available at
 * http://www.eclipse.org/org/documents/edl-v10.php.
 *
 * SPDX-License-Identifier: BSD-3-Clause
 */

package org.glassfish.pfl.dynamic.copyobject.impl;

A factory used for creating ClassCopier instances.
/** A factory used for creating ClassCopier instances. */
public interface PipelineClassCopierFactory extends ClassCopierFactory {
Look for cls only in the cache; do not create a ClassCopier if there isn't one already in the cache.
/** Look for cls only in the cache; do not create a ClassCopier * if there isn't one already in the cache. */
public ClassCopier lookupInCache( Class<?> cls ) ;
Mark this class as immutable, so that it is not copied at all.
/** Mark this class as immutable, so that it is not copied at all. */
public void registerImmutable( Class<?> cls ) ;
Add a special ClassCopierFactory into the chain so that it handles some special cases.
/** Add a special ClassCopierFactory into the chain so that * it handles some special cases. */
public void setSpecialClassCopierFactory( ClassCopierFactory ccf ) ;
Added this method so reflective copier could check if serializable object contains a transient field of specific type.
/** Added this method so reflective copier could check if serializable * object contains a transient field of specific type. */
public boolean reflectivelyCopyable( Class<?> cls ) ; }