I'm experiencing a problem that I can not see a solution to.
I'll try to describe what I'm doing, there are many code files, so it's the following.
I am combining access policies. I have a certain policy that has some properties like (organization, person to whom it applies etc.) these policies can be Obligation, Permission or Prohibition, so far so good. I generate these policies randomly where in the end I have a set of 48 policies.
It turns out that I pass these policies through my processing (which is to compare each one two by two, so that it compares all) and in the end I see how many times the checks were performed.
Only once does a number come out, and again others come out, even though I just pressed the Java button. I do not know if it helps me by the code. I think it's a java configuration. Does anyone know what can it be?
The combination code is as follows:
public class CombinaPoliticas {
public static int count = 1;
public Set<Policie> combinaPoliticasForbidden(OWLOntology ontology) {
/* COMBINAÇÃO ORGANIZAÇÕES ENTIDADES */
Engine engine = new Engine(ontology);
Set<String> origins = null;
//List<Organizacao> organizacoes = engine.getOrganizationsObjects();
//List<Entidade> entidades = engine.getEntityObjects();
//entidades.add(new Entidade(null));
List<Organizacao> organizacoes = new ArrayList<Organizacao>();
List<Entidade> entidades = new ArrayList<Entidade>();
organizacoes.add(new Organizacao("Instituição"));
// organizacoes.add(new Organizacao("Unidade_Administrativa"));
entidades.add(new Entidade("null"));
entidades.add(new Entidade("PROTOCOLIZADOR"));
entidades.add(new Entidade("PROTOCOLIZADOR3"));
// entidades.add(new Entidade("MARIA"));
// entidades.add(new Entidade("JOSE"));
List<Org_Entidade> organizacoesEntidades = new ArrayList<Org_Entidade>();
Iterator iteratorOrg = organizacoes.iterator();
while(iteratorOrg.hasNext()) {
Organizacao org;
org = (Organizacao) iteratorOrg.next();
Iterator iteratorEnt = entidades.iterator();
while(iteratorEnt.hasNext()) {
Entidade ent;
ent = (Entidade) iteratorEnt.next();
organizacoesEntidades.add(new Org_Entidade(org, ent));
}
}
/* COMBINAÇÃO OBJETOS E AÇÕES */
// List<Objeto> objetos = engine.getObjects();
// List<Acao> acoes = engine.getActionObjects();
List<Objeto> objetos = new ArrayList<Objeto>();
List<Acao> acoes = new ArrayList<Acao>();
objetos.add(new Objeto("ProcNURCADesp"));
objetos.add(new Objeto("Processo"));
// acoes.add(new Acao("MovimentProcess"));
// acoes.add(new Acao("Abrir"));
// acoes.add(new Acao("Fechar"));
// acoes.add(new Acao("Anular"));
// acoes.add(new Acao("Criar"));
acoes.add(new Acao("Movimentar"));
acoes.add(new Acao("Acessar"));
acoes.add(new Acao("Gravar"));
// acoes.add(new Acao("Cancelar"));
acoes.add(new Acao("Gerar"));
// acoes.add(new Acao("Tramitar"));
List<Obj_Acao> objetosAcoes = new ArrayList<Obj_Acao>();
Iterator iteratorObj = objetos.iterator();
while(iteratorObj.hasNext()) {
Objeto obj;
obj = (Objeto) iteratorObj.next();
Iterator iteratorAcao = acoes.iterator();
while(iteratorAcao.hasNext()) {
Acao acao;
acao = (Acao) iteratorAcao.next();
objetosAcoes.add(new Obj_Acao(obj, acao));
}
}
/* CRIAÇÃO DAS POLÍTICAS */
Set<Policie> setOfPolicies = new LinkedHashSet<Policie>();
Iterator orgsEntidadesIterator = organizacoesEntidades.iterator();
while(orgsEntidadesIterator.hasNext()) {
Org_Entidade orgEntidade = (Org_Entidade) orgsEntidadesIterator.next();
Iterator objsAcoesIterator = objetosAcoes.iterator();
while(objsAcoesIterator.hasNext()) {
Obj_Acao objAcao = (Obj_Acao) objsAcoesIterator.next();
origins = new LinkedHashSet<String>();
setOfPolicies.add(new Policie("Policie"+count, "Forbidden", orgEntidade.getOrg().getOrganizacao(), orgEntidade.getEntidade().getEntidade(),
objAcao.getAcao().getAcao(), objAcao.getObjeto().getObjeto(), "2015-08-18T20:06:14^^DateTime", "2015-12-31T20:06:14^^DateTime", false, origins));
count++;
}
}
System.out.println("Total de Políticas geradas: "+setOfPolicies.size()+"\n");
for (Policie policie : setOfPolicies) {;
System.out.println(policie);
}
return setOfPolicies;
}
public Set<Policie> combinaPoliticasPermitted(OWLOntology ontology) {
/* COMBINAÇÃO ORGANIZAÇÕES ENTIDADES */
Engine engine = new Engine(ontology);
Set<String> origins = null;
//List<Organizacao> organizacoes = engine.getOrganizationsObjects();
//List<Entidade> entidades = engine.getEntityObjects();
//entidades.add(new Entidade(null));
List<Organizacao> organizacoes = new ArrayList<Organizacao>();
List<Entidade> entidades = new ArrayList<Entidade>();
// organizacoes.add(new Organizacao("Instituição"));
organizacoes.add(new Organizacao("Unidade_Administrativa"));
entidades.add(new Entidade("null"));
// entidades.add(new Entidade("PROTOCOLIZADOR"));
entidades.add(new Entidade("PROTOCOLIZADOR3"));
// entidades.add(new Entidade("PROTOCOLIZADOR2"));
// entidades.add(new Entidade("MARIA"));
// entidades.add(new Entidade("JOSE"));
// entidades.add(new Entidade("Unidade_Administrativa"));
List<Org_Entidade> organizacoesEntidades = new ArrayList<Org_Entidade>();
Iterator iteratorOrg = organizacoes.iterator();
while(iteratorOrg.hasNext()) {
Organizacao org;
org = (Organizacao) iteratorOrg.next();
Iterator iteratorEnt = entidades.iterator();
while(iteratorEnt.hasNext()) {
Entidade ent;
ent = (Entidade) iteratorEnt.next();
organizacoesEntidades.add(new Org_Entidade(org, ent));
}
}
/* COMBINAÇÃO OBJETOS E AÇÕES */
// List<Objeto> objetos = engine.getObjects();
// List<Acao> acoes = engine.getActionObjects();
List<Objeto> objetos = new ArrayList<Objeto>();
List<Acao> acoes = new ArrayList<Acao>();
objetos.add(new Objeto("ProcessDespacho"));
objetos.add(new Objeto("Processo"));
// acoes.add(new Acao("MovimentProcess"));
// acoes.add(new Acao("Abrir"));
acoes.add(new Acao("Fechar"));
// acoes.add(new Acao("Anular"));
acoes.add(new Acao("Criar"));
// acoes.add(new Acao("Movimentar"));
// acoes.add(new Acao("Acessar"));
acoes.add(new Acao("Gravar"));
// acoes.add(new Acao("Cancelar"));
// acoes.add(new Acao("Gerar"));
// acoes.add(new Acao("Tramitar"));
List<Obj_Acao> objetosAcoes = new ArrayList<Obj_Acao>();
Iterator iteratorObj = objetos.iterator();
while(iteratorObj.hasNext()) {
Objeto obj;
obj = (Objeto) iteratorObj.next();
Iterator iteratorAcao = acoes.iterator();
while(iteratorAcao.hasNext()) {
Acao acao;
acao = (Acao) iteratorAcao.next();
objetosAcoes.add(new Obj_Acao(obj, acao));
}
}
/* CRIAÇÃO DAS POLÍTICAS */
Set<Policie> setOfPolicies = new LinkedHashSet<Policie>();
Iterator orgsEntidadesIterator = organizacoesEntidades.iterator();
while(orgsEntidadesIterator.hasNext()) {
Org_Entidade orgEntidade = (Org_Entidade) orgsEntidadesIterator.next();
Iterator objsAcoesIterator = objetosAcoes.iterator();
while(objsAcoesIterator.hasNext()) {
Obj_Acao objAcao = (Obj_Acao) objsAcoesIterator.next();
origins = new LinkedHashSet<String>();
setOfPolicies.add(new Policie("Policie"+count, "Permitted", orgEntidade.getOrg().getOrganizacao(), orgEntidade.getEntidade().getEntidade(),
objAcao.getAcao().getAcao(), objAcao.getObjeto().getObjeto(), "2015-08-18T20:06:14^^DateTime", "2015-12-31T20:06:14^^DateTime", false, origins));
count++;
}
}
System.out.println("Total de Políticas geradas: "+setOfPolicies.size()+"\n");
for (Policie policie : setOfPolicies) {;
System.out.println(policie);
}
return setOfPolicies;
}
public Set<Policie> combinaPoliticasObliged(OWLOntology ontology) {
/* COMBINAÇÃO ORGANIZAÇÕES ENTIDADES */
Engine engine = new Engine(ontology);
Set<String> origins = null;
//List<Organizacao> organizacoes = engine.getOrganizationsObjects();
//List<Entidade> entidades = engine.getEntityObjects();
//entidades.add(new Entidade(null));
List<Organizacao> organizacoes = new ArrayList<Organizacao>();
List<Entidade> entidades = new ArrayList<Entidade>();
organizacoes.add(new Organizacao("Instituição"));
organizacoes.add(new Organizacao("Unidade_Administrativa"));
entidades.add(new Entidade("null"));
// entidades.add(new Entidade("PROTOCOLIZADOR"));
entidades.add(new Entidade("PROTOCOLIZADOR3"));
entidades.add(new Entidade("MARIA"));
// entidades.add(new Entidade("JOSE"));
// entidades.add(new Entidade("Unidade_Administrativa"));
List<Org_Entidade> organizacoesEntidades = new ArrayList<Org_Entidade>();
Iterator iteratorOrg = organizacoes.iterator();
while(iteratorOrg.hasNext()) {
Organizacao org;
org = (Organizacao) iteratorOrg.next();
Iterator iteratorEnt = entidades.iterator();
while(iteratorEnt.hasNext()) {
Entidade ent;
ent = (Entidade) iteratorEnt.next();
organizacoesEntidades.add(new Org_Entidade(org, ent));
}
}
/* COMBINAÇÃO OBJETOS E AÇÕES */
// List<Objeto> objetos = engine.getObjects();
// List<Acao> acoes = engine.getActionObjects();
List<Objeto> objetos = new ArrayList<Objeto>();
List<Acao> acoes = new ArrayList<Acao>();
// objetos.add(new Objeto("ProcNURCADesp"));
objetos.add(new Objeto("Processo"));
// acoes.add(new Acao("MovimentProcess"));
acoes.add(new Acao("Abrir"));
// acoes.add(new Acao("Fechar"));
// acoes.add(new Acao("Anular"));
// acoes.add(new Acao("Criar"));
// acoes.add(new Acao("Movimentar"));
acoes.add(new Acao("Acessar"));
// acoes.add(new Acao("Gravar"));
// acoes.add(new Acao("Cancelar"));
// acoes.add(new Acao("Gerar"));
// acoes.add(new Acao("Tramitar"));
List<Obj_Acao> objetosAcoes = new ArrayList<Obj_Acao>();
Iterator iteratorObj = objetos.iterator();
while(iteratorObj.hasNext()) {
Objeto obj;
obj = (Objeto) iteratorObj.next();
Iterator iteratorAcao = acoes.iterator();
while(iteratorAcao.hasNext()) {
Acao acao;
acao = (Acao) iteratorAcao.next();
objetosAcoes.add(new Obj_Acao(obj, acao));
}
}
/* CRIAÇÃO DAS POLÍTICAS */
Set<Policie> setOfPolicies = new LinkedHashSet<Policie>();
Iterator orgsEntidadesIterator = organizacoesEntidades.iterator();
while(orgsEntidadesIterator.hasNext()) {
Org_Entidade orgEntidade = (Org_Entidade) orgsEntidadesIterator.next();
Iterator objsAcoesIterator = objetosAcoes.iterator();
while(objsAcoesIterator.hasNext()) {
Obj_Acao objAcao = (Obj_Acao) objsAcoesIterator.next();
origins = new LinkedHashSet<String>();
setOfPolicies.add(new Policie("Policie"+count, "Obliged", orgEntidade.getOrg().getOrganizacao(), orgEntidade.getEntidade().getEntidade(),
objAcao.getAcao().getAcao(), objAcao.getObjeto().getObjeto(), "2015-08-18T20:06:14^^DateTime", "2015-12-31T20:06:14^^DateTime", false, origins));
count++;
//
}
}
System.out.println("Total de Políticas geradas: "+setOfPolicies.size()+"\n");
for (Policie policie : setOfPolicies) {;
System.out.println(policie);
}
return setOfPolicies;
}
}
I first combine all bans, then all permissions and then the obligations and together all this way:
Set<Policie> setOfPolicies = combina.combinaPoliticasForbidden(ontology);
setOfPolicies.addAll(combina.combinaPoliticasPermitted(ontology));
setOfPolicies.addAll(combina.combinaPoliticasObliged(ontology));
Does anyone know what it can be?