001
002 /*
003 * Copyright (C) 2011 Archie L. Cobbs. All rights reserved.
004 *
005 * $Id: AbstractSchemaUpdate.java 209 2012-01-12 15:52:06Z archie.cobbs $
006 */
007
008 package org.dellroad.stuff.schema;
009
010 import java.util.HashSet;
011 import java.util.Set;
012
013 /**
014 * Support superclass for {@link SchemaUpdate} implementations with standard bean property implementations.
015 *
016 * @param <T> database transaction type
017 */
018 public abstract class AbstractSchemaUpdate<T> implements SchemaUpdate<T> {
019
020 private String name;
021 private Set<SchemaUpdate<T>> requiredPredecessors = new HashSet<SchemaUpdate<T>>();
022 private boolean singleAction;
023
024 @Override
025 public String getName() {
026 return this.name;
027 }
028
029 public void setName(String name) {
030 this.name = name;
031 }
032
033 @Override
034 public Set<SchemaUpdate<T>> getRequiredPredecessors() {
035 return this.requiredPredecessors;
036 }
037
038 public void setRequiredPredecessors(Set<SchemaUpdate<T>> requiredPredecessors) {
039 this.requiredPredecessors = requiredPredecessors;
040 }
041
042 @Override
043 public boolean isSingleAction() {
044 return this.singleAction;
045 }
046
047 public void setSingleAction(boolean singleAction) {
048 this.singleAction = singleAction;
049 }
050
051 @Override
052 public String toString() {
053 return this.getClass().getSimpleName() + "[" + this.getName() + "]";
054 }
055 }
056