/*-
* See the file LICENSE for redistribution information.
*
* Copyright (c) 2002,2008 Oracle. All rights reserved.
*
* $Id: EvolveConfig.java,v 1.6.2.2 2008/01/07 15:14:19 cwl Exp $
*/
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<String> classesToEvolve;
private EvolveListener listener;
/**
* Creates an evolve configuration with default properties.
*/
public EvolveConfig() {
classesToEvolve = new HashSet<String>();
}
/**
* Returns a shallow copy of the configuration.
*/
public EvolveConfig cloneConfig() {
try {
return (EvolveConfig) 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 void addClassToEvolve(String entityClass) {
classesToEvolve.add(entityClass);
}
/**
* Returns an unmodifiable set of the entity classes to be evolved.
*/
public Set<String> getClassesToEvolve() {
return Collections.unmodifiableSet(classesToEvolve);
}
/**
* Sets a progress listener that is notified each time an entity is read.
*/
public void setEvolveListener(EvolveListener listener) {
this.listener = listener;
}
/**
* Returns the progress listener that is notified each time an entity is
* read.
*/
public EvolveListener getEvolveListener() {
return listener;
}
}
|