File: pgOperatorClass.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,871 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
//
// pgOperatorClass.h PostgreSQL OperatorClass
//
//////////////////////////////////////////////////////////////////////////

#ifndef PGOPERATORCLASS_H
#define PGOPERATORCLASS_H

#include "pgSchema.h"

class pgCollection;
class pgOperatorClassFactory : public pgSchemaObjFactory
{
public:
	pgOperatorClassFactory();
	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 pgOperatorClassFactory operatorClassFactory;


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

	wxString GetTranslatedMessage(int kindOfMessage) const;
	void ShowTreeDetail(ctlTree *browser, frmMain *form = 0, ctlListView *properties = 0, ctlSQLBox *sqlPane = 0);

	wxString GetFullName()
	{
		return GetName() + wxT("(") + GetAccessMethod() + wxT(")");
	}
	wxString GetAccessMethod() const
	{
		return accessMethod;
	}
	void iSetAccessMethod(const wxString &s)
	{
		accessMethod = s;
	}

	wxArrayString GetOperators()
	{
		return operators;
	}
	wxArrayString GetFunctions()
	{
		return functions;
	}
	wxArrayString GetQuotedFunctions()
	{
		return quotedFunctions;
	}
	wxString GetInType() const
	{
		return inType;
	}
	void iSetInType(const wxString &s)
	{
		inType = s;
	}
	wxString GetKeyType() const
	{
		return keyType;
	}
	void iSetKeyType(const wxString &s)
	{
		keyType = s;
	}
	wxString GetSql(ctlTree *browser);
	bool GetOpcDefault() const
	{
		return opcDefault;
	}
	void iSetOpcDefault(const bool b)
	{
		opcDefault = b;
	}
	wxString GetFamily() const
	{
		return opFamily;
	}
	void iSetFamily(const wxString &s)
	{
		opFamily = s;
	}

	bool CanCreate()
	{
		return false;
	}
	bool CanEdit()
	{
		return false;
	}
	bool DropObject(wxFrame *frame, ctlTree *browser, bool cascaded);
	wxString GetHelpPage(bool forCreate) const
	{
		return wxT("pg/sql-createopclass");
	}
	pgObject *Refresh(ctlTree *browser, const wxTreeItemId item);

	bool HasStats()
	{
		return false;
	}
	bool HasDepends()
	{
		return true;
	}
	bool HasReferences()
	{
		return true;
	}

private:
	wxString inType, keyType, accessMethod, opFamily ;
	wxArrayString operators;
	wxArrayString functions, quotedFunctions;
	wxArrayString functionOids;
	bool opcDefault;
};

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

#endif