File: pgAggregate.h

package info (click to toggle)
pgadmin3 1.20.0~beta2-1
  • links: PTS, VCS
  • area: main
  • in suites: jessie, jessie-kfreebsd
  • size: 73,704 kB
  • ctags: 18,591
  • sloc: cpp: 193,786; ansic: 18,736; sh: 5,154; pascal: 1,120; yacc: 927; makefile: 516; lex: 421; xml: 126; perl: 40
file content (140 lines) | stat: -rw-r--r-- 2,908 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
//////////////////////////////////////////////////////////////////////////
//
// pgAdmin III - PostgreSQL Tools
//
// Copyright (C) 2002 - 2014, The pgAdmin Development Team
// This software is released under the PostgreSQL Licence
//
// pgAggregate.h - Aggregate class
//
//////////////////////////////////////////////////////////////////////////

#ifndef PGAGGREGATE_H
#define PGAGGREGATE_H

#include "pgSchema.h"

class pgCollection;
class pgAggregateFactory : public pgSchemaObjFactory
{
public:
	pgAggregateFactory();
	virtual dlgProperty *CreateDialog(frmMain *frame, pgObject *node, pgObject *parent);
	virtual pgObject *CreateObjects(pgCollection *obj, ctlTree *browser, const wxString &restr = wxEmptyString);
	virtual pgCollection *CreateCollection(pgObject *obj);
};
extern pgAggregateFactory aggregateFactory;

class pgAggregate : public pgSchemaObject
{
public:
	pgAggregate(pgSchema *newSchema, const wxString &newName = wxT(""));

	wxString GetTranslatedMessage(int kindOfMessage) const;
	void ShowTreeDetail(ctlTree *browser, frmMain *form = 0, ctlListView *properties = 0, ctlSQLBox *sqlPane = 0);
	bool DropObject(wxFrame *frame, ctlTree *browser, bool cascaded);
	wxString GetSql(ctlTree *browser);
	pgObject *Refresh(ctlTree *browser, const wxTreeItemId item);

	wxString GetQuotedFullName();
	wxString GetFullName();

	bool CanDropCascaded()
	{
		return GetSchema()->GetMetaType() != PGM_CATALOG;
	}
	bool HasStats()
	{
		return false;
	}
	bool HasDepends()
	{
		return true;
	}
	bool HasReferences()
	{
		return true;
	}


	wxArrayString &GetInputTypesArray()
	{
		return inputTypes;
	}
	void iAddInputType(const wxString &s)
	{
		inputTypes.Add(s);
	}
	wxString GetInputTypesList();

	wxString GetStateType()
	{
		return stateType;
	}
	void iSetStateType(const wxString &s)
	{
		stateType = s;
	}
	wxString GetFinalType()
	{
		return finalType;
	}
	void iSetFinalType(const wxString &s)
	{
		finalType = s;
	}
	wxString GetStateFunction()
	{
		return stateFunction;
	}
	void iSetStateFunction(const wxString &s)
	{
		stateFunction = s;
	}
	wxString GetFinalFunction()
	{
		return finalFunction;
	}
	void iSetFinalFunction(const wxString &s)
	{
		finalFunction = s;
	}
	wxString GetInitialCondition()
	{
		return initialCondition;
	}
	void iSetInitialCondition(const wxString &s)
	{
		initialCondition = s;
	}
	wxString GetSortOp()
	{
		return sortOp;
	}
	void iSetSortOp(const wxString &s)
	{
		sortOp = s;
	}
	wxString GetQuotedSortOp()
	{
		return quotedSortOp;
	}
	void iSetQuotedSortOp(const wxString &s)
	{
		quotedSortOp = s;
	}

private:
	wxArrayString inputTypes;
	wxString stateType, finalType, sortOp, quotedSortOp,
	         stateFunction, finalFunction, initialCondition;
};

class pgAggregateCollection : public pgSchemaObjCollection
{
public:
	pgAggregateCollection(pgaFactory *factory, pgSchema *sch);
	wxString GetTranslatedMessage(int kindOfMessage) const;
};

#endif