~ubuntu-branches/ubuntu/karmic/apgdiff/karmic

« back to all changes in this revision

Viewing changes to src/main/java/cz/startnet/utils/pgdiff/schema/PgView.java

  • Committer: Bazaar Package Importer
  • Author(s): Christoph Berg
  • Date: 2008-09-09 15:42:54 UTC
  • Revision ID: james.westby@ubuntu.com-20080909154254-458sv7ew1rczdal1
Tags: upstream-1.2
ImportĀ upstreamĀ versionĀ 1.2

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/*
 
2
 * $Id: PgView.java 84 2007-09-09 16:18:16Z fordfrog $
 
3
 */
 
4
package cz.startnet.utils.pgdiff.schema;
 
5
 
 
6
import cz.startnet.utils.pgdiff.PgDiffUtils;
 
7
 
 
8
 
 
9
/**
 
10
 * Stores view information.
 
11
 *
 
12
 * @author fordfrog
 
13
 * @version $Id: PgView.java 84 2007-09-09 16:18:16Z fordfrog $
 
14
 */
 
15
public class PgView {
 
16
    /**
 
17
     * String specifying column names.
 
18
     */
 
19
    private String columnNames;
 
20
 
 
21
    /**
 
22
     * Name of the view.
 
23
     */
 
24
    private final String name;
 
25
 
 
26
    /**
 
27
     * SQL query of the view.
 
28
     */
 
29
    private String query;
 
30
 
 
31
    /**
 
32
     * Creates a new PgView object.
 
33
     *
 
34
     * @param name {@link #name}
 
35
     */
 
36
    public PgView(final String name) {
 
37
        super();
 
38
        this.name = name;
 
39
    }
 
40
 
 
41
    /**
 
42
     * Setter for {@link #columnNames}.
 
43
     *
 
44
     * @param columnNames {@link #columnNames}
 
45
     */
 
46
    public void setColumnNames(final String columnNames) {
 
47
        this.columnNames = columnNames;
 
48
    }
 
49
 
 
50
    /**
 
51
     * Getter for {@link #columnNames}.
 
52
     *
 
53
     * @return {@link #columnNames}
 
54
     */
 
55
    public String getColumnNames() {
 
56
        return columnNames;
 
57
    }
 
58
 
 
59
    /**
 
60
     * Creates and returns SQL for creation of the view.
 
61
     *
 
62
     * @param quoteNames whether names should be quoted
 
63
     *
 
64
     * @return created SQL command
 
65
     */
 
66
    public String getCreationSQL(final boolean quoteNames) {
 
67
        final StringBuilder sbSQL = new StringBuilder();
 
68
        sbSQL.append("CREATE VIEW ");
 
69
        sbSQL.append(PgDiffUtils.getQuotedName(name, quoteNames));
 
70
 
 
71
        if ((columnNames != null) && (columnNames.length() > 0)) {
 
72
            sbSQL.append(" (");
 
73
            sbSQL.append(columnNames);
 
74
            sbSQL.append(')');
 
75
        }
 
76
 
 
77
        sbSQL.append(" AS\n\t");
 
78
        sbSQL.append(query);
 
79
        sbSQL.append(';');
 
80
 
 
81
        return sbSQL.toString();
 
82
    }
 
83
 
 
84
    /**
 
85
     * Creates and returns SQL command for dropping the view.
 
86
     *
 
87
     * @param quoteNames whether names should be quoted
 
88
     *
 
89
     * @return created SQL command
 
90
     */
 
91
    public String getDropSQL(final boolean quoteNames) {
 
92
        return "DROP VIEW " + PgDiffUtils.getQuotedName(getName(), quoteNames)
 
93
        + ";";
 
94
    }
 
95
 
 
96
    /**
 
97
     * Getter for {@link #name}.
 
98
     *
 
99
     * @return {@link #name}
 
100
     */
 
101
    public String getName() {
 
102
        return name;
 
103
    }
 
104
 
 
105
    /**
 
106
     * Setter for {@link #query}.
 
107
     *
 
108
     * @param query {@link #query}
 
109
     */
 
110
    public void setQuery(final String query) {
 
111
        this.query = query;
 
112
    }
 
113
 
 
114
    /**
 
115
     * Getter for {@link #query}.
 
116
     *
 
117
     * @return {@link #query}
 
118
     */
 
119
    public String getQuery() {
 
120
        return query;
 
121
    }
 
122
}