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