/*- * See the file LICENSE for redistribution information. * * Copyright (c) 2002, 2010 Oracle and/or its affiliates. All rights reserved. * */ package com.sleepycat.persist.evolve; import java.util.Collections; import java.util.HashSet; import java.util.Set; import com.sleepycat.persist.EntityStore; /** * Configuration properties for eager conversion of unevolved objects. This * configuration is used with {@link EntityStore#evolve EntityStore.evolve}. * * @see com.sleepycat.persist.evolve Class Evolution * @author Mark Hayes */ public class EvolveConfig implements Cloneable { private Set classesToEvolve; private EvolveListener listener; /** * Creates an evolve configuration with default properties. */ public EvolveConfig() { classesToEvolve = new HashSet(); } /** * Returns a shallow copy of the configuration. * * @deprecated As of JE 4.0.13, replaced by {@link * EvolveConfig#clone()}.

*/ public EvolveConfig cloneConfig() { try { return (EvolveConfig) super.clone(); } catch (CloneNotSupportedException cannotHappen) { return null; } } /** * Returns a shallow copy of the configuration. */ @Override public EvolveConfig clone() { try { return (EvolveConfig) super.clone(); } catch (CloneNotSupportedException cannotHappen) { return null; } } /** * Adds an entity class for a primary index to be converted. If no classes * are added, all indexes that require evolution will be converted. */ public EvolveConfig addClassToEvolve(String entityClass) { classesToEvolve.add(entityClass); return this; } /** * Returns an unmodifiable set of the entity classes to be evolved. */ public Set getClassesToEvolve() { return Collections.unmodifiableSet(classesToEvolve); } /** * Sets a progress listener that is notified each time an entity is read. */ public EvolveConfig setEvolveListener(EvolveListener listener) { this.listener = listener; return this; } /** * Returns the progress listener that is notified each time an entity is * read. */ public EvolveListener getEvolveListener() { return listener; } }