pgadmin3/include/schema/pgDomain.h
2020-07-07 22:19:12 +05:00

226 lines
4.1 KiB
C++

//////////////////////////////////////////////////////////////////////////
//
// pgAdmin III - PostgreSQL Tools
//
// Copyright (C) 2002 - 2016, The pgAdmin Development Team
// This software is released under the PostgreSQL Licence
//
// pgDomain.h PostgreSQL Domain
//
//////////////////////////////////////////////////////////////////////////
#ifndef PGDOMAIN_H
#define PGDOMAIN_H
#include "pgSchema.h"
class pgCollection;
class pgDomainFactory : public pgSchemaObjFactory
{
public:
pgDomainFactory();
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 pgDomainFactory domainFactory;
class pgDomain : public pgSchemaObject
{
public:
pgDomain(pgSchema *newSchema, const wxString &newName = wxT(""));
~pgDomain();
wxString GetTranslatedMessage(int kindOfMessage) const;
void ShowTreeDetail(ctlTree *browser, frmMain *form = 0, ctlListView *properties = 0, ctlSQLBox *sqlPane = 0);
bool CanDropCascaded()
{
return GetSchema()->GetMetaType() != PGM_CATALOG;
}
wxString GetBasetype() const
{
return basetype;
}
void iSetBasetype(const wxString &s)
{
basetype = s;
}
wxString GetQuotedBasetype() const
{
return quotedBasetype;
}
void iSetQuotedBasetype(const wxString &s)
{
quotedBasetype = s;
}
wxString GetCollation() const
{
return collation;
}
void iSetCollation(const wxString &s)
{
collation = s;
}
wxString GetQuotedCollation() const
{
return quotedCollation;
}
void iSetQuotedCollation(const wxString &s)
{
quotedCollation = s;
}
void iSetIsDup(bool b)
{
isDup = b;
}
long GetLength() const
{
return length;
}
void iSetLength(long l)
{
length = l;
}
long GetPrecision() const
{
return precision;
}
void iSetPrecision(long l)
{
precision = l;
}
wxString GetCheck() const
{
return check;
}
void iSetCheck(const wxString &s)
{
check = s;
}
wxString GetDefault() const
{
return defaultVal;
}
void iSetDefault(const wxString &s)
{
defaultVal = s;
}
bool GetNotNull() const
{
return notNull;
}
void iSetNotNull(bool b)
{
notNull = b;
}
long GetDimensions() const
{
return dimensions;
}
void iSetDimensions(long l)
{
dimensions = l;
}
wxString GetDelimiter() const
{
return delimiter;
}
void iSetDelimiter(const wxString &s)
{
delimiter = s;
}
OID GetBasetypeOid() const
{
return basetypeOid;
}
void iSetBasetypeOid(OID d)
{
basetypeOid = d;
}
OID GetCollationOid() const
{
return collationOid;
}
void iSetCollationOid(OID d)
{
collationOid = d;
}
long GetTyplen() const
{
return typlen;
}
void iSetTyplen(const long l)
{
typlen = l;
}
long GetTypmod() const
{
return typmod;
}
void iSetTypmod(const long l)
{
typmod = l;
}
bool GetValid() const
{
return constraintvalid;
}
void iSetValid(const bool b)
{
constraintvalid = b;
}
wxString GetCheckConstraintName() const
{
return checkconstraintname;
}
void iSetCheckConstraintName(const wxString &s)
{
checkconstraintname = s;
}
bool DropObject(wxFrame *frame, ctlTree *browser, bool cascaded);
wxString GetSql(ctlTree *browser);
pgObject *Refresh(ctlTree *browser, const wxTreeItemId item);
wxMenu *GetNewMenu();
bool HasStats()
{
return false;
}
bool HasDepends()
{
return true;
}
bool HasReferences()
{
return true;
}
void Validate(frmMain *form);
private:
wxString basetype, quotedBasetype, defaultVal, delimiter, check, collation, quotedCollation, checkconstraintname;
long length, precision, dimensions;
long typlen, typmod;
bool notNull, isDup, constraintvalid;
OID basetypeOid, collationOid;
};
class pgDomainCollection : public pgSchemaObjCollection
{
public:
pgDomainCollection(pgaFactory *factory, pgSchema *sch);
wxString GetTranslatedMessage(int kindOfMessage) const;
};
class validateDomainCheckFactory : public contextActionFactory
{
public:
validateDomainCheckFactory(menuFactoryList *list, wxMenu *mnu, ctlMenuToolbar *toolbar);
wxWindow *StartDialog(frmMain *form, pgObject *obj);
bool CheckEnable(pgObject *obj);
};
#endif