1 /*
2 * Created on 05/01/2005 Esta interface normaliza os metodos de acesso aos
3 * objetos de uma estrutura. Os objetos de uma estrutura são estrutura_atributo
4 * e estrutura_funcao_acompanhamento. O objetivo é enxergar os dois tipos de
5 * objetos como um objetoEstrutura, para facilitar a construcao de listas,
6 * relatorios e o form de dados gerais do item
7 */
8 package ecar.pojo;
9
10 import java.util.Set;
11
12 import ecar.exception.ECARException;
13
14 /**
15 * @author garten
16 */
17 public interface ObjetoEstrutura {
18
19 /**
20 * Define um valor limite para a sequencia de um campo na tela de dados
21 * gerais. Quando o usuario esquece de informar a sequencia do campo no
22 * cadastro de estrutura_atributo, o campo toma este valor como default, ou
23 * seja, ficará por ultimo na tela.
24 */
25 public static final int MAX_SEQUENCIA_TELA_CAMPO = 1000;
26
27 /**
28 * Define um valor limite para a sequencia de colunas em listagens de itens.
29 * Quando o usuario esquece de informar a sequencia da coluna no cadastro de
30 * estrutura_atributo, a coluna toma este valor como default, ou seja, ficará
31 * por ultimo na lista.
32 */
33 public static final int MAX_SEQUENCIA_COLUNA_LISTAGEM = 1000;
34
35 /**
36 * Define a largura em porcentagem de uma coluna em telas de listagem. Quando
37 * usuario esquece de definir a largura de uma coluna em telas de listagem
38 * assume esse valor como default.
39 */
40 public static final int DEFAULT_LARGURA_TELA_CAMPO = 100;
41
42 /**
43 * Define o tamanho default de um campo input, quando o usuário não define o
44 * tamanho. Este tamanho também é levado em conta na hora do sistema exibir
45 * uma text ou textArea. Quando o usuário define um tamanho maior que 80, será
46 * exibido um textArea. Caso o valor seja menor que 80, será exibido um text.
47 */
48 public static final int DEFAULT_TAMANHO_CAMPO_TEXT = 80;
49
50 /**
51 * Devolve o nome do atributo da estrutura. Este é o nome que está mapeado
52 * como um campo na tabela TB_Item_Estrutura_Iett. O nome está na sintaxe de
53 * atributo de objeto, ex: nomeIett
54 * @return nome do campo na tabela ItemEstruturaIett
55 */
56 public String iGetNome();
57
58 /**
59 * Devolve o nome do codigo da fk descrito no atributo_atb. por exemplo codAre
60 * @return
61 */
62 public String iGetCodFk();
63
64 /**
65 * Devolve o nome do nome da fk descrito no atributo_atb. por exemplo nomeAre
66 * @return
67 */
68 public String iGetNomeFk();
69
70 /**
71 * Devolve o nome do atributo que será utilizado para ordenar uma lista de
72 * itemEstruturaIett. Será utilizado na clausula order by do HQL que lista os
73 * itens na relacao de acesso à estrutura. Precisa ser um campo que está
74 * mapeado na tabela ItemEstruturaIett. Se for um objeto complexo, resolve o
75 * campo desse objeto. ex: "codOrg.descricaoOrg" Ex. retorna
76 * "codOrg.descricaoOrg" ou "nomeIett", etc
77 * @return nome do campo que será utilizado para ordenar os itens.
78 */
79 public String iGetNomeOrdenarLista();
80
81 /**
82 * Devolve o label a ser utilizado em telas de cadastro e relatórios.
83 * Geralmente é o labelEstruturaEttat ou labelPadraoAtb ou labelTpfa
84 * @return nome do label que será mostrado ao usuário
85 */
86 public String iGetLabel();
87
88 /**
89 * Obtem o valor cadastrado na tabela de itemEstruturaIett de um determinado
90 * campo. Utiliza o item e o nome no atributo para determinar seu valor. Por
91 * exemplo, devolve o valor do campo nome_iett realizando um getNomeIett() ou
92 * getOrgaoOrg().getDescricaoOrg() conforme estiver cadastrado em
93 * tb_atributos_atb no campo nome_fk_atb
94 * @param item
95 * @return string contendo o valor do campo na tabela ItemEstruturaIett
96 * @throws ECARException
97 */
98 public String iGetValor(ItemEstruturaIett item) throws ECARException;
99
100 /**
101 * Obtem o valor do codigo de um campo caso ele seja uma FK dentro da tabela
102 * de ItemEstruturaIett. Por exemplo, para AreaAre, vai voltar o valor do
103 * codigo da Area (codAre). Para um objeto que não seja FK, não se aplica, vai
104 * retornar o mesmo valor que iGetValor
105 * @param item
106 * @return string contendo o codigo do campo na tabela ItemEstruturaIett
107 * @throws ECARException
108 */
109 public String iGetValorCodFk(ItemEstruturaIett item) throws ECARException;
110
111 /**
112 * Devolve a largura de uma coluna em porcentagem nas telas de listagens de
113 * item em colunas. Se nao estiver especificado um valor, deve retornar
114 * DEFAULT_LARGURA_TELA_CAMPO
115 * @return valor correspondendo a largura de uma coluna
116 */
117 public Integer iGetLargura();
118
119 /**
120 * Devolve o numero que corresponde à sequencia das colunas em telas de
121 * listagem.
122 * @return o numero de sequencia entre 0..1000
123 */
124 public Integer iGetSequenciaColunaEmListagem();
125
126 /**
127 * Devolve o numero que corresponde à sequencia dos campos em uma tela de
128 * cadastro.
129 * @return numero da sequencia entre 0..1000
130 */
131 public Integer iGetSequenciaCampoEmTela();
132
133 /**
134 * Retorna o tipo da classe que está encapsulada no ObjetoEstrutura.
135 * Geralmente deve retornar ecar.pojo.EstruturaAtributoEttAt ou
136 * ecar.pojo.EstrutTpFuncAcmpEtttfa
137 * @return o tipo da classe
138 */
139 public Class<?> iGetTipo();
140
141 /**
142 * Retorna verdadeiro ou falso dependendo da obrigatoriedade do objeto
143 * @return Boolean(true) ou Boolean(false)
144 */
145 public Boolean iGetObrigatorio();
146
147 /**
148 * Retorna verdadeiro ou falso dependendo da configuração do atributo poder
149 * ser alterado, mesmo o cadastro estando bloqueado.
150 * @return Boolean(true) ou Boolean(false)
151 */
152 public Boolean iGetBloqueado();
153
154 /**
155 * Obtem o valor cadastrado na tabela de itemEstruturaIett de um determinado
156 * campo. Utiliza o item e o nome no atributo para determinar seu valor. Por
157 * exemplo, devolve o valor do campo nome_iett realizando um getNomeIett() ou
158 * getOrgaoOrg().getDescricaoOrg() conforme estiver cadastrado em
159 * tb_atributos_atb no campo nome_fk_atb
160 * @param item
161 * @return string contendo o valor do campo na tabela ItemEstruturaIett
162 * @throws ECARException
163 */
164 public String iGetValor(ItemEstruturarevisaoIettrev itemRev) throws ECARException;
165
166 /**
167 * Obtem o valor do codigo de um campo caso ele seja uma FK dentro da tabela
168 * de ItemEstruturaIett. Por exemplo, para AreaAre, vai voltar o valor do
169 * codigo da Area (codAre). Para um objeto que não seja FK, não se aplica, vai
170 * retornar o mesmo valor que iGetValor
171 * @param item
172 * @return string contendo o codigo do campo na tabela ItemEstruturaIett
173 * @throws ECARException
174 */
175 public String iGetValorCodFk(ItemEstruturarevisaoIettrev itemRev) throws ECARException;
176
177 public Boolean iGetIndOpcional();
178
179 /**
180 * Devolve a dica do campo a ser utilizado em telas de cadastro e relatórios.
181 * É o campo dicaEttat.
182 * @return dica do campo que será mostrado ao usuário
183 */
184 public String iGetDica();
185
186 /**
187 * Devolve o grupo de atributos livres de um atributo
188 * @return SisGrupoAtributoSga
189 */
190 public SisGrupoAtributoSga iGetGrupoAtributosLivres();
191
192 /**
193 * Devolve o tamanho do conteúdo de um atributo.
194 * @return Integer
195 */
196 public Integer iGetTamanhoConteudoAtrib();
197
198 public Set<TipoFuncAcompTpfa> iGetLibTipoFuncAcompTpfas();
199 }