Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Fetching contributors…

Cannot retrieve contributors at this time

98 lines (76 sloc) 3.257 kb
/*
# PostgreSQL Database Modeler (pgModeler)
# Sub-project: Core library (libpgmodeler)m
# Description: Definição da classe ElemClasseOperadores que é usada para
# armazenar e gerar os códigos SQL pertinentes aos atributos
# usados nas de classes de operadores.
# Creation date: 08/07/2008
#
# Copyright 2006-2012 - Raphael Araújo e Silva <rkhaotix@gmail.com>
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation version 3.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU General Public License for more details.
#
# The complete text of GPLv3 is at LICENSE file on source code root directory.
# Also, you can get the complete GNU General Public License at <http://www.gnu.org/licenses/>
*/
#ifndef ELEMCLASSEOPERADORES_H
#define ELEMCLASSEOPERADORES_H
#include "objetobase.h"
#include "operador.h"
#include "funcao.h"
class ElemClasseOperadores {
private:
unsigned tipo_elemento;
//Função usado no elemento (caso o tipo seja ELEM_FUNCAO)
Funcao *funcao;
//Operador usado no elemento (caso o tipo seja ELEM_OPERADOR)
Operador *operador;
/* Tipo de armazenamento do método de indexação (apenas
se o tipo do elemento for ELEM_ARMAZENAMENTO) */
TipoPgSQL tipo_armaz;
/* Indica que a rechecagem das linhas obtidas é obrigatória, caso
seja usada a indexação atribuída ao elemento atual.
A rechecagem só é usada quando o tipo de elemento é ELEM_OPERADOR*/
bool rechecar;
/* Número de estratégia para os métodos de indexação e
número de suporte para funções. O valor desse elemento
deve ser maior que 0 (para ELEM_OPERADOR e ELEM_FUNCAO) */
unsigned num_estrategia;
public:
/* Constantes usadas para referenciar o tipo de elemento de
classe de operadores */
static const unsigned ELEM_OPERADOR=0,
ELEM_FUNCAO=1,
ELEM_ARMAZENAMENTO=2;
ElemClasseOperadores(void);
//Define o elemento como sendo uma cláusula de função
void definirFuncao(Funcao *funcao, unsigned num_estrategia);
//Define o elemento como sendo uma cláusula de operador
void definirOperador(Operador *operador, unsigned num_estrategia, bool rechecar);
//Define o elemento como sendo uma cláusula de armazenamento
void definirArmazenamento(TipoPgSQL tipo_armaz);
//Obtém o tipo do elemento
unsigned obterTipoElemento(void);
//Obtém a função usada no elemento
Funcao *obterFuncao(void);
//Obtém o operador usado no elemento
Operador *obterOperador(void);
//Obtém o tipo de armazenamento
TipoPgSQL obterTipoArmazenamento(void);
//Retorna se o elemento necessita ser rechecado ou não
bool rechecarElemento(void);
//Obtém o número de estratégia/suporte do elemento
unsigned obterNumEstrategia(void);
//Obtém a definição sql do objeto
QString obterDefinicaoObjeto(unsigned tipo_def);
//Operador de comparação entre dois elementos
bool operator == (ElemClasseOperadores &elem);
};
#endif
Jump to Line
Something went wrong with that request. Please try again.