Skip to content

Commit 95dfe11

Browse files
committed
fix: verrification des matches dans regex pour le status et de la date de soutenance
1 parent 07a70ef commit 95dfe11

1 file changed

Lines changed: 32 additions & 23 deletions

File tree

src/main/java/fr/abes/theses_batch_indexation/dto/these/TheseMappee.java

Lines changed: 32 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -230,27 +230,6 @@ public TheseMappee(Mets mets, List<Set> oaiSets) {
230230
log.error("impossible de récupérer le getIndicCines pour " + nnt + "(NullPointerException)");
231231
}
232232

233-
234-
// status
235-
try {
236-
log.info("traitement de status");
237-
238-
status = "enCours";
239-
240-
final String regex = ".*\\/([0-9,A-Z]*)";
241-
final String urlperene = mets.getDmdSec().stream().filter(d -> d.getMdWrap().getXmlData().getStarGestion() != null).findFirst().orElse(null)
242-
.getMdWrap().getXmlData().getStarGestion().getTraitements().getSorties().getDiffusion().getUrlPerenne();
243-
final Pattern pattern = Pattern.compile(regex, Pattern.MULTILINE);
244-
final Matcher matcher = pattern.matcher(urlperene);
245-
246-
if (isNnt(matcher.group(1))) {
247-
status = "soutenue";
248-
}
249-
} catch (NullPointerException e) {
250-
log.error("PB pour status de " + nnt + "," + e.getMessage());
251-
}
252-
253-
254233
// isSoutenue
255234
log.info("traitement de isSoutenue");
256235

@@ -265,6 +244,37 @@ public TheseMappee(Mets mets, List<Set> oaiSets) {
265244
log.error("PB pour isSoutenue de " + nnt + e.getMessage());
266245
}
267246

247+
// status
248+
try {
249+
log.info("traitement de status");
250+
251+
status = "soutenue";
252+
253+
Optional<DmdSec> starGestion = mets.getDmdSec().stream().filter(d -> d.getMdWrap().getXmlData().getStarGestion() != null).findFirst();
254+
Optional<DmdSec> stepGestion = mets.getDmdSec().stream().filter(d -> d.getMdWrap().getXmlData().getStepGestion() != null).findFirst();
255+
256+
if (starGestion.isPresent()) {
257+
final String regex = ".*\\/([0-9,A-Z]*)";
258+
final String urlperene = starGestion.get().getMdWrap().getXmlData().getStarGestion().getTraitements().getSorties().getDiffusion().getUrlPerenne();
259+
if (urlperene != null) {
260+
final Pattern pattern = Pattern.compile(regex, Pattern.MULTILINE);
261+
final Matcher matcher = pattern.matcher(urlperene);
262+
263+
if (matcher.matches() && isNnt(matcher.group(1))) {
264+
status = "soutenue";
265+
} else {
266+
status = "enCours";
267+
}
268+
}
269+
}
270+
if (stepGestion.isPresent()) {
271+
status = "enCours";
272+
}
273+
274+
} catch (NullPointerException e) {
275+
log.error("PB pour status de " + nnt + "," + e.getMessage());
276+
}
277+
268278
// date filtre
269279
log.info("traitement de datefiltre ");
270280

@@ -338,8 +348,7 @@ public TheseMappee(Mets mets, List<Set> oaiSets) {
338348
} else if (p.getType().equals("autreType")) {
339349
pdto.setType(p.getAutreType());
340350
}
341-
}
342-
catch (Exception eTypePartenaireRecherche) {
351+
} catch (Exception eTypePartenaireRecherche) {
343352
log.error("pb lors de la récupération du type du partenaire de recherche pour nnt = " + nnt);
344353
}
345354

0 commit comments

Comments
 (0)