2
* $Id: PgDiffFunctions.java 90 2008-08-01 17:06:19Z fordfrog $
4
package cz.startnet.utils.pgdiff;
6
import cz.startnet.utils.pgdiff.schema.PgFunction;
7
import cz.startnet.utils.pgdiff.schema.PgSchema;
9
import java.io.PrintWriter;
15
* @version $Id: PgDiffFunctions.java 90 2008-08-01 17:06:19Z fordfrog $
17
public class PgDiffFunctions {
20
* Creates a new instance of PgDiffFunctions.
22
private PgDiffFunctions() {
27
* Outputs commands for differences in functions.
29
* @param writer writer the output should be written to
30
* @param arguments object containing arguments settings
31
* @param oldSchema original schema
32
* @param newSchema new schema
34
public static void diffFunctions(
35
final PrintWriter writer,
36
final PgDiffArguments arguments,
37
final PgSchema oldSchema,
38
final PgSchema newSchema) {
39
// Drop functions that exist no more
40
if (oldSchema != null) {
41
for (PgFunction oldFunction : oldSchema.getFunctions()) {
42
if (!newSchema.containsFunction(oldFunction.getDeclaration())) {
44
writer.println(oldFunction.getDropSQL());
49
// Add new functions and replace modified functions
50
for (PgFunction newFunction : newSchema.getFunctions()) {
51
final PgFunction oldFunction;
53
if (oldSchema == null) {
56
oldFunction = oldSchema.getFunction(
57
newFunction.getDeclaration());
60
if ((oldFunction == null) || !newFunction.equals(oldFunction,
61
arguments.isIgnoreFunctionWhitespace())) {
63
writer.println(newFunction.getCreationSQL());