123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230 |
- package graph.extractor.graph.builder;
- import entity.DOProcess;
- import entity.Entity;
- import entity.Judge;
- import entity.Lawyer;
- import entity.ProcessTypes;
- import entity.TYPES;
- public class STJBuilder extends BuilderFactory{
- private Entity getEntity(String canditate)
- {
- Entity entity = new Entity();
- try{
- if(canditate.contains(":") && !canditate.contains("Distribuição automática"))
- {
- String type = canditate.split(":")[0].trim();
- entity.setType(type);
- if(type.equals("RELATORA") || type.equals("RELATOR"))
- {
- entity.setType(TYPES.JUDGE);
- }
- if(type.contains("ADVOGAD") )
- {
- entity.setType(TYPES.LAWYER);
- }
- entity.setName(canditate.split(":")[1].trim());
- }
- else
- {
- entity.setName(canditate);
- entity.setType(TYPES.OTHERINFO);
- }
- }catch(Exception e)
- {
- // System.out.println(canditate);
- }
- return entity;
- }
- @Override
- protected DOProcess extractProcess(String process) {
-
- DOProcess proc = new DOProcess();
-
- proc.setOrign("DJ_STJ");
-
- String vecProcesses[] = process.split("\n");
- int index = 0;
- String firstLine = vecProcesses[index];
- /**Extract information from the first line**/
- try{
- if(firstLine.equals(""))
- {
- index++;
- firstLine = vecProcesses[index];
- }
- if(!firstLine.contains("class='np'"))
- {
- index++;
- firstLine = firstLine +vecProcesses[index];
-
- }
-
- if(!firstLine.contains("class='np'"))
- {
- return null;
-
- }
-
-
- String processType = firstLine.toLowerCase().split("nº")[0].toLowerCase();
- firstLine = firstLine.substring(processType.length());
- ProcessTypes procType = new ProcessTypes(processType);
- proc.setProcessType(procType);
-
-
-
- String processIndex = firstLine.split("<NP1><B class='np'>")[0].trim();
- firstLine = firstLine.split("<NP1><B class='np'>")[1].trim();
- proc.setProcessIndex(processIndex);
- String state = firstLine.split("\\(")[0].trim();
- firstLine = firstLine.split("\\(")[1].trim();
- proc.setState(state);
- String processNumber = firstLine.split("\\)")[0].trim();
- firstLine = firstLine.split("\\)")[1].trim();
- proc.setProcessNumber(processNumber);
- if(!firstLine.trim().equals("</B></NP1>"))
- {
- firstLine = firstLine.split("</B></NP1>")[1].trim();
- Entity entity= this.getEntity(firstLine);
- switch (entity.getType()) {
- case TYPES.JUDGE:
- proc.addJudge(new Judge(entity.getName()));
- break;
- case TYPES.OTHERINFO:
- proc.addOtherInfo(entity.getName());
- break;
- case TYPES.LAWYER:
- proc.addLawyer(new Lawyer(entity.getName()));
- break;
- default:
- proc.addEntity(entity);
- break;
- }
- }
- }catch(Exception e)
- {
- System.out.println("Error on this process");
- System.out.println(vecProcesses[0]);
- System.out.println(proc);
- System.out.println();
- return null;
- }
-
- /***next lines*/
- try{
- index++;
-
- String line = vecProcesses[index];
- while( index < vecProcesses.length-1 && !this.isVerdict(line) )
- {
- Entity entity= this.getEntity(line);
- switch (entity.getType()) {
- case TYPES.JUDGE:
- proc.addJudge(new Judge(entity.getName()));
- break;
- case TYPES.OTHERINFO:
- proc.addOtherInfo(entity.getName());
- break;
- case TYPES.LAWYER:
- proc.addLawyer(new Lawyer(entity.getName()));
- break;
- default:
- proc.addEntity(entity);
- break;
- }
- index++;
- line = vecProcesses[index];
- }
- StringBuilder sb = new StringBuilder();
- for(int i=index; i< vecProcesses.length; i++ )
- {
- sb.append(vecProcesses[i] +"\n");
- }
- proc.setVerdict(sb.toString());
- }catch(Exception e)
- {
- e.printStackTrace();
- }
- return proc;
- }
- private boolean isVerdict(String line) {
- line = line.trim().toLowerCase();
- if(line.equals("despacho"))
- {
- return true;
- }
- if(line.equals("decisão"))
- {
- return true;
- }
-
- if(line.contains("A Turma, por unanimidade"))
- {
- return true;
- }
- return false;
- }
- }
|