mirror of
https://github.com/levinsv/pgadmin3.git
synced 2026-05-15 14:15:49 -06:00
347 lines
6.4 KiB
C++
347 lines
6.4 KiB
C++
//////////////////////////////////////////////////////////////////////////
|
|
//
|
|
// pgAdmin III - PostgreSQL Tools
|
|
//
|
|
// Copyright (C) 2002 - 2016, The pgAdmin Development Team
|
|
// This software is released under the PostgreSQL Licence
|
|
//
|
|
// pgType.h PostgreSQL Type
|
|
//
|
|
//////////////////////////////////////////////////////////////////////////
|
|
|
|
#ifndef PGTYPE_H
|
|
#define PGTYPE_H
|
|
|
|
#include "pgSchema.h"
|
|
|
|
// Note: This must match the radio buttons on dlgType
|
|
enum TYPE_CLASS
|
|
{
|
|
TYPE_COMPOSITE = 0,
|
|
TYPE_ENUM,
|
|
TYPE_EXTERNAL,
|
|
TYPE_RANGE
|
|
};
|
|
|
|
class pgTypeFactory : public pgSchemaObjFactory
|
|
{
|
|
public:
|
|
pgTypeFactory();
|
|
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 pgTypeFactory typeFactory;
|
|
|
|
class pgType : public pgSchemaObject
|
|
{
|
|
public:
|
|
pgType(pgSchema *newSchema, const wxString &newName = wxT(""));
|
|
~pgType();
|
|
|
|
wxString GetTranslatedMessage(int kindOfMessage) const;
|
|
void ShowTreeDetail(ctlTree *browser, frmMain *form = 0, ctlListView *properties = 0, ctlSQLBox *sqlPane = 0);
|
|
bool CanDropCascaded()
|
|
{
|
|
return !GetSystemObject() && pgSchemaObject::CanDrop();
|
|
}
|
|
|
|
wxString GetAlias() const
|
|
{
|
|
return alias;
|
|
}
|
|
void iSetAlias(const wxString &s)
|
|
{
|
|
alias = s;
|
|
}
|
|
wxString GetInputFunction() const
|
|
{
|
|
return inputFunction;
|
|
}
|
|
void iSetInputFunction(const wxString &s)
|
|
{
|
|
inputFunction = s;
|
|
}
|
|
wxString GetOutputFunction() const
|
|
{
|
|
return outputFunction;
|
|
}
|
|
void iSetOutputFunction(const wxString &s)
|
|
{
|
|
outputFunction = s;
|
|
}
|
|
wxString GetReceiveFunction() const
|
|
{
|
|
return receiveFunction;
|
|
}
|
|
void iSetReceiveFunction(const wxString &s)
|
|
{
|
|
receiveFunction = s;
|
|
}
|
|
wxString GetSendFunction() const
|
|
{
|
|
return sendFunction;
|
|
}
|
|
void iSetSendFunction(const wxString &s)
|
|
{
|
|
sendFunction = s;
|
|
}
|
|
wxString GetTypmodinFunction() const
|
|
{
|
|
return typmodinFunction;
|
|
}
|
|
void iSetTypmodinFunction(const wxString &s)
|
|
{
|
|
typmodinFunction = s;
|
|
}
|
|
wxString GetTypmodoutFunction() const
|
|
{
|
|
return typmodoutFunction;
|
|
}
|
|
void iSetTypmodoutFunction(const wxString &s)
|
|
{
|
|
typmodoutFunction = s;
|
|
}
|
|
wxString GetAnalyzeFunction() const
|
|
{
|
|
return analyzeFunction;
|
|
}
|
|
void iSetAnalyzeFunction(const wxString &s)
|
|
{
|
|
analyzeFunction = s;
|
|
}
|
|
wxString GetCategory() const
|
|
{
|
|
return category;
|
|
}
|
|
void iSetCategory(const wxString &s)
|
|
{
|
|
category = s;
|
|
}
|
|
bool GetPrefered() const
|
|
{
|
|
return prefered;
|
|
}
|
|
void iSetPrefered(const bool b)
|
|
{
|
|
prefered = b;
|
|
}
|
|
wxString GetDefault() const
|
|
{
|
|
return defaultVal;
|
|
}
|
|
void iSetDefault(const wxString &s)
|
|
{
|
|
defaultVal = s;
|
|
}
|
|
wxString GetElement()
|
|
{
|
|
return element;
|
|
}
|
|
void iSetElement(const wxString &s)
|
|
{
|
|
element = s;
|
|
}
|
|
wxString GetDelimiter() const
|
|
{
|
|
return delimiter;
|
|
}
|
|
void iSetDelimiter(const wxString &s)
|
|
{
|
|
delimiter = s;
|
|
}
|
|
wxString GetAlignment() const
|
|
{
|
|
return alignment;
|
|
}
|
|
void iSetAlignment(const wxString &s)
|
|
{
|
|
alignment = s;
|
|
}
|
|
wxString GetStorage() const
|
|
{
|
|
return storage;
|
|
}
|
|
void iSetStorage(const wxString &s)
|
|
{
|
|
storage = s;
|
|
}
|
|
long GetInternalLength() const
|
|
{
|
|
return internalLength;
|
|
}
|
|
void iSetInternalLength(const long l)
|
|
{
|
|
internalLength = l;
|
|
}
|
|
bool GetPassedByValue() const
|
|
{
|
|
return passedByValue;
|
|
}
|
|
void iSetPassedByValue(const bool b)
|
|
{
|
|
passedByValue = b;
|
|
}
|
|
int GetTypeClass() const
|
|
{
|
|
return typeClass;
|
|
}
|
|
void iSetTypeClass(const int c)
|
|
{
|
|
typeClass = c;
|
|
}
|
|
bool GetIsRecordType() const
|
|
{
|
|
return isRecordType;
|
|
}
|
|
void iSetIsRecordType(const bool b)
|
|
{
|
|
isRecordType = b;
|
|
}
|
|
bool GetCollatable() const
|
|
{
|
|
return collatable;
|
|
}
|
|
void iSetCollatable(const bool b)
|
|
{
|
|
collatable = b;
|
|
}
|
|
void iSetRelOid(const OID d)
|
|
{
|
|
relOid = d;
|
|
}
|
|
const wxArrayString &GetTypesArray()
|
|
{
|
|
return typesArray;
|
|
}
|
|
const wxArrayString &GetCollationsArray()
|
|
{
|
|
return collationsArray;
|
|
}
|
|
const wxArrayString &GetLabelArray()
|
|
{
|
|
return labelArray;
|
|
}
|
|
wxString GetTypesList() const
|
|
{
|
|
return typesList;
|
|
}
|
|
wxString GetQuotedTypesList() const
|
|
{
|
|
return quotedTypesList;
|
|
}
|
|
wxString GetLabelList() const
|
|
{
|
|
return labelList;
|
|
}
|
|
wxString GetQuotedLabelList() const
|
|
{
|
|
return quotedLabelList;
|
|
}
|
|
bool GetSystemObject() const
|
|
{
|
|
return pgSchemaObject::GetSystemObject() || isRecordType;
|
|
}
|
|
OID GetSubtypeFunction() const
|
|
{
|
|
return rngsubtype;
|
|
}
|
|
void iSetSubtypeFunction(const OID d)
|
|
{
|
|
rngsubtype = d;
|
|
}
|
|
wxString GetSubtypeFunctionStr() const
|
|
{
|
|
return rngsubtypestr;
|
|
}
|
|
void iSetSubtypeFunctionStr(const wxString s)
|
|
{
|
|
rngsubtypestr = s;
|
|
}
|
|
OID GetCollationFunction() const
|
|
{
|
|
return rngcollation;
|
|
}
|
|
void iSetCollationFunction(const OID d)
|
|
{
|
|
rngcollation = d;
|
|
}
|
|
wxString GetCollationFunctionStr() const
|
|
{
|
|
return rngcollationstr;
|
|
}
|
|
void iSetCollationFunctionStr(const wxString s)
|
|
{
|
|
rngcollationstr = s;
|
|
}
|
|
OID GetSubtypeOpClassFunction() const
|
|
{
|
|
return rngsubopc;
|
|
}
|
|
void iSetSubtypeOpClassFunction(const OID d)
|
|
{
|
|
rngsubopc = d;
|
|
}
|
|
wxString GetSubtypeOpClassFunctionStr() const
|
|
{
|
|
return rngsubopcstr;
|
|
}
|
|
void iSetSubtypeOpClassFunctionStr(const wxString s)
|
|
{
|
|
rngsubopcstr = s;
|
|
}
|
|
wxString GetCanonical() const
|
|
{
|
|
return rngcanonical;
|
|
}
|
|
void iSetCanonical(const wxString s)
|
|
{
|
|
rngcanonical = s;
|
|
}
|
|
wxString GetSubtypeDiff() const
|
|
{
|
|
return rngsubdiff;
|
|
}
|
|
void iSetSubtypeDiff(const wxString s)
|
|
{
|
|
rngsubdiff = s;
|
|
}
|
|
|
|
bool DropObject(wxFrame *frame, ctlTree *browser, bool cascaded);
|
|
wxString GetSql(ctlTree *browser);
|
|
pgObject *Refresh(ctlTree *browser, const wxTreeItemId item);
|
|
|
|
bool HasStats()
|
|
{
|
|
return false;
|
|
}
|
|
bool HasDepends()
|
|
{
|
|
return true;
|
|
}
|
|
bool HasReferences()
|
|
{
|
|
return true;
|
|
}
|
|
|
|
private:
|
|
wxString alias, inputFunction, outputFunction, defaultVal, element, delimiter, alignment, storage,
|
|
typesList, quotedTypesList, labelList, quotedLabelList, sendFunction, receiveFunction,
|
|
typmodinFunction, typmodoutFunction, analyzeFunction, category;
|
|
wxArrayString typesArray, labelArray, collationsArray;
|
|
long internalLength;
|
|
int typeClass;
|
|
bool passedByValue, isRecordType, collatable, prefered;
|
|
int rngsubtype, rngcollation, rngsubopc;
|
|
wxString rngsubtypestr, rngcollationstr, rngsubopcstr, rngcanonical, rngsubdiff;
|
|
OID relOid;
|
|
};
|
|
|
|
class pgTypeCollection : public pgSchemaObjCollection
|
|
{
|
|
public:
|
|
pgTypeCollection(pgaFactory *factory, pgSchema *sch);
|
|
wxString GetTranslatedMessage(int kindOfMessage) const;
|
|
};
|
|
|
|
#endif
|