01: /*-
02: * See the file LICENSE for redistribution information.
03: *
04: * Copyright (c) 2002,2008 Oracle. All rights reserved.
05: *
06: * $Id: Deleter.java,v 1.7.2.2 2008/01/07 15:14:19 cwl Exp $
07: */
08:
09: package com.sleepycat.persist.evolve;
10:
11: /**
12: * A mutation for deleting an entity class or field.
13: *
14: * <p><strong>WARNING:</strong> The data for the deleted class or field will be
15: * destroyed and will be recoverable only by restoring from backup. If you
16: * wish to convert the instance data to a different type or format, use a
17: * {@link Conversion} mutation instead.</p>
18: *
19: * <p>For example, to delete a field:</p>
20: *
21: * <pre class="code">
22: * package my.package;
23: *
24: * // The old class. Version 0 is implied.
25: * //
26: * {@literal @Entity}
27: * class Person {
28: * String name;
29: * String favoriteColors;
30: * }
31: *
32: * // The new class. A new version number must be assigned.
33: * //
34: * {@literal @Entity(version=1)}
35: * class Person {
36: * String name;
37: * }
38: *
39: * // Add the mutation for deleting a field.
40: * //
41: * Mutations mutations = new Mutations();
42: *
43: * mutations.addDeleter(new Deleter(Person.class.getName(), 0,
44: * "favoriteColors");
45: *
46: * // Configure the mutations as described {@link Mutations here}.</pre>
47: *
48: * <p>To delete an entity class:</p>
49: *
50: * <pre class="code">
51: * package my.package;
52: *
53: * // The old class. Version 0 is implied.
54: * //
55: * {@literal @Entity}
56: * class Statistics {
57: * ...
58: * }
59: *
60: * // Add the mutation for deleting a class.
61: * //
62: * Mutations mutations = new Mutations();
63: *
64: * mutations.addDeleter(new Deleter("my.package.Statistics", 0));
65: *
66: * // Configure the mutations as described {@link Mutations here}.</pre>
67: *
68: * @see com.sleepycat.persist.evolve Class Evolution
69: * @author Mark Hayes
70: */
71: public class Deleter extends Mutation {
72:
73: private static final long serialVersionUID = 446348511871654947L;
74:
75: /**
76: * Creates a mutation for deleting an entity class.
77: */
78: public Deleter(String className, int classVersion) {
79: super (className, classVersion, null);
80: }
81:
82: /**
83: * Creates a mutation for deleting the given field from all instances of
84: * the given class version.
85: */
86: public Deleter(String declaringClass, int declaringClassVersion,
87: String fieldName) {
88: super (declaringClass, declaringClassVersion, fieldName);
89: }
90:
91: @Override
92: public String toString() {
93: return "[Deleter " + super .toString() + ']';
94: }
95: }
|