001
002 /*
003 * Copyright (C) 2011 Archie L. Cobbs. All rights reserved.
004 *
005 * $Id: SchemaUpdateEdgeLister.java 209 2012-01-12 15:52:06Z archie.cobbs $
006 */
007
008 package org.dellroad.stuff.schema;
009
010 import java.util.Set;
011
012 import org.dellroad.stuff.graph.TopologicalSorter.EdgeLister;
013
014 /**
015 * {@link EdgeLister} implementation reflecting {@link SchemaUpdate} predecessor constraints.
016 *
017 * <p>
018 * Graph edges will exist from each update to its predecessors. Note, this is the reverse of the actual
019 * desired ordering of the updates.
020 *
021 * @param <T> database transaction type
022 */
023 public class SchemaUpdateEdgeLister<T> implements EdgeLister<SchemaUpdate<T>> {
024
025 @Override
026 public Set<SchemaUpdate<T>> getOutEdges(SchemaUpdate<T> update) {
027 return update.getRequiredPredecessors();
028 }
029 }
030