/** * @throws Exception * @see DescriptionTraverserAgent#apply(SimpleDescriptionObject, List) */ public AccessRestrictNotifierResult apply( SimpleDescriptionObject sdo, List<AccessRestrictNotifierResult> childResults) throws Exception { AccessRestrictNotifierResult result = new AccessRestrictNotifierResult(); if (childResults != null) { // Add the results from the children for (AccessRestrictNotifierResult childResult : childResults) { if (childResult.getDescriptionObjects().size() > 0) { result.addDescriptionObjects(childResult.getDescriptionObjects()); } } } if (sdo.getSubElementsCount() == 0 && (sdo.getLevel().equals(DescriptionLevel.FILE) || sdo.getLevel().equals(DescriptionLevel.ITEM))) { DescriptionObject descriptionObject = browserService.getDescriptionObject(sdo.getPid()); String accessrestrict = descriptionObject.getAccessrestrict(); if (!StringUtils.isBlank(accessrestrict)) { Date currentDate = new Date(); Date representationDate = DateParser.parse(descriptionObject.getDateFinal()); Calendar representationCalendar = Calendar.getInstance(); representationCalendar.setTime(representationDate); if (accessrestrict.toLowerCase().startsWith("segredo de estado")) { // segredo de estado => 25 years representationCalendar.add(Calendar.YEAR, 25); } else if (accessrestrict.equalsIgnoreCase("Dados pessoais")) { // Dados pessoais => 75 years representationCalendar.add(Calendar.YEAR, 75); } else if (accessrestrict.equalsIgnoreCase("Dados sensíveis de pessoas colectivas")) { // Dados sensíveis de pessoas colectivas => 50 years representationCalendar.add(Calendar.YEAR, 50); } else { logger.warn( "DO " + sdo.getPid() + " accessrestrict '" + accessrestrict + "' is not a recognized value."); representationCalendar = null; } if (representationCalendar != null && currentDate.compareTo(representationCalendar.getTime()) > 0) { result.addDescriptionObject(descriptionObject); } } else { // DO doesn't have accessrestrict value } } return result; }
/** @param args */ public static void main(String[] args) { try { RODAClient rodaClient = null; if (args.length == 3) { // http://localhost:8180/ String hostUrl = args[0]; String username = args[1]; String password = args[2]; rodaClient = new RODAClient(new URL(hostUrl), username, password); } else { System.err.println( BrowserSimpleROTest.class.getSimpleName() + " protocol://hostname:port/core-service [username password]"); System.exit(1); } Browser browserService = rodaClient.getBrowserService(); System.out.println("\n**************************************"); System.out.println("Number of Event Preservation Objects"); System.out.println("**************************************"); int count = browserService.getSimpleEventPreservationObjectCount(null); System.out.println(count + " event preservation objects in the repository"); System.out.println("\n**************************************"); System.out.println("Number of Event Preservation Objects (Inactive)"); System.out.println("**************************************"); Filter filterInactive = new Filter(); filterInactive.add(new SimpleFilterParameter("state", RODAObject.STATE_INACTIVE)); count = browserService.getSimpleEventPreservationObjectCount(filterInactive); System.out.println(count + " inactive event preservation objects in the repository"); SimpleEventPreservationObject[] simpleEPOs = browserService.getSimpleEventPreservationObjects(null); System.out.println("\n**************************************"); System.out.println("List of Event Preservation Objects"); System.out.println("**************************************"); for (int i = 0; simpleEPOs != null && i < simpleEPOs.length; i++) { System.out.println(simpleEPOs[i]); } if (simpleEPOs != null && simpleEPOs.length > 0) { System.out.println("\n*********************************************"); System.out.println( "Getting EventPreservationObject of the first representation (" + simpleEPOs[0].getPid() + ")"); System.out.println("*********************************************"); EventPreservationObject rObject = browserService.getEventPreservationObject(simpleEPOs[0].getPid()); System.out.println(rObject); } } catch (Throwable e) { e.printStackTrace(); if (e.getCause() != null) { System.err.println("Cause exception:"); e.getCause().printStackTrace(); } } }