All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.sleepycat.persist.evolve.Renamer Maven / Gradle / Ivy

Go to download

Berkeley DB Java Edition is a open source, transactional storage solution for Java applications. The Direct Persistence Layer (DPL) API is faster and easier to develop, deploy, and manage than serialized object files or ORM-based Java persistence solutions. The Collections API enhances the standard java.util.collections classes allowing them to be persisted to a local file system and accessed concurrently while protected by ACID transactions. Data is stored by serializing objects and managing class and instance data separately so as not to waste space. Berkeley DB Java Edition is the reliable drop-in solution for complex, fast, and scalable storage. Source for this release is in 'je-4.0.92-sources.jar', the Javadoc is located at 'http://download.oracle.com/berkeley-db/docs/je/4.0.92/'.

There is a newer version: 5.0.73
Show newest version
/*-
 * Copyright (C) 2002, 2018, Oracle and/or its affiliates. All rights reserved.
 *
 * This file was distributed by Oracle as part of a version of Oracle Berkeley
 * DB Java Edition made available at:
 *
 * http://www.oracle.com/technetwork/database/database-technologies/berkeleydb/downloads/index.html
 *
 * Please see the LICENSE file included in the top-level directory of the
 * appropriate version of Oracle Berkeley DB Java Edition for a copy of the
 * license and additional information.
 */

package com.sleepycat.persist.evolve;

/**
 * A mutation for renaming a class or field without changing the instance or
 * field value.  For example:
 * 
 *  package my.package;
 *
 *  // The old class.  Version 0 is implied.
 *  //
 *  {@literal @Entity}
 *  class Person {
 *      String name;
 *  }
 *
 *  // The new class.  A new version number must be assigned.
 *  //
 *  {@literal @Entity(version=1)}
 *  class Human {
 *      String fullName;
 *  }
 *
 *  // Add the mutations.
 *  //
 *  Mutations mutations = new Mutations();
 *
 *  mutations.addRenamer(new Renamer("my.package.Person", 0,
 *                                   Human.class.getName()));
 *
 *  mutations.addRenamer(new Renamer("my.package.Person", 0,
 *                                   "name", "fullName"));
 *
 *  // Configure the mutations as described {@link Mutations here}.
* * *

In a replicated environment, renaming an entity class or secondary key * field may require handling the {@link * com.sleepycat.je.rep.DatabasePreemptedException} during the upgrade process. * See * Upgrading a Replication Group * for more information.

* * * @see com.sleepycat.persist.evolve Class Evolution * @author Mark Hayes */ public class Renamer extends Mutation { private static final long serialVersionUID = 2238151684405810427L; private String newName; /** * Creates a mutation for renaming the class of all instances of the given * class version. * * @param fromClass the class to rename. * @param fromVersion the class version to rename. * @param toClass the new class name. */ public Renamer(String fromClass, int fromVersion, String toClass) { super(fromClass, fromVersion, null); newName = toClass; } /** * Creates a mutation for renaming the given field for all instances of the * given class version. * * @param declaringClass the class to which this mutation applies. * @param declaringClassVersion the class version to which this mutation * applies. * @param fromField field name in the given class version. * @param toField the new field name. */ public Renamer(String declaringClass, int declaringClassVersion, String fromField, String toField) { super(declaringClass, declaringClassVersion, fromField); newName = toField; } /** * Returns the new class or field name specified in the constructor. * * @return the new name. */ public String getNewName() { return newName; } /** * Returns true if the new class name is equal in this object and given * object, and if the {@link Mutation#equals} method returns true. */ @Override public boolean equals(Object other) { if (other instanceof Renamer) { Renamer o = (Renamer) other; return newName.equals(o.newName) && super.equals(other); } else { return false; } } @Override public int hashCode() { return newName.hashCode() + super.hashCode(); } @Override public String toString() { return "[Renamer " + super.toString() + " NewName: " + newName + ']'; } }




© 2015 - 2025 Weber Informatics LLC | Privacy Policy