public String getServiceFlag(String type) { MCRObjectService os = object.getService(); return (os.isFlagTypeSet(type) ? os.getFlags(type).get(0) : null); }
public void setServiceFlag(String type, String value) { MCRObjectService os = object.getService(); if (os.isFlagTypeSet(type)) { os.removeFlags(type); } if ((value != null) && !value.trim().isEmpty()) { os.addFlag(type, value.trim()); } }
private JsonObject getData(MCRObject obj) { JsonParser parser = new JsonParser(); JsonObject event = new JsonObject(); event.addProperty("id", obj.getId().toString()); event.addProperty("uri", uriResolver.apply(getPathURI("objects/" + obj.getId())).toString()); Optional.ofNullable(obj.getService().getState()) .ifPresent(s -> event.addProperty("state", s.getID())); copyFlagToProperty(obj, event, "createdby", "createdBy"); copyServiceDateToProperty(obj, event, "createdate", "created"); copyFlagToProperty(obj, event, "modifiedby", "modifiedBy"); copyServiceDateToProperty(obj, event, "modifydate", "modified"); JsonArray pi = new JsonArray(); obj.getService().getFlags("MyCoRe-PI").stream() .map(parser::parse) .forEach(pi::add); event.add("pi", pi); return event; }
public static void addDatesToEntry(Entry entry, MCRObject mcrObject) { MCRObjectService serviceElement = mcrObject.getService(); ArrayList<String> flags = serviceElement.getFlags(MCRObjectService.FLAG_TYPE_CREATEDBY); flags.addAll(serviceElement.getFlags(MCRObjectService.FLAG_TYPE_MODIFIEDBY)); Set<String> clearedFlags = new LinkedHashSet<>(flags); clearedFlags.forEach(entry::addAuthor); Date modifyDate = serviceElement.getDate(MCRObjectService.DATE_TYPE_MODIFYDATE); Date createDate = serviceElement.getDate(MCRObjectService.DATE_TYPE_CREATEDATE); entry.setEdited(modifyDate); entry.setPublished(createDate); }
public static final boolean displayPackerButton(String objectIDString, String packerId) { MCRObjectID objectID = MCRObjectID.getInstance(objectIDString); MCRObject mcrObject = MCRMetadataManager.retrieveMCRObject(objectID); Map<String, String> configuration = MCRPackerJobAction.getConfiguration(packerId); if (configuration.size() == 0) { return false; } try { checkACL(objectID, packerId); } catch (MCRAccessException e) { return false; } Date date = mcrObject.getService().getDate(configuration.get(FLAG_TYPE_CONFIGURATION_KEY)); if (date != null) { return false; } if (!detectPPN(mcrObject, configuration.get(DEFAULT_PPN_DB_CONFIGURATION_KEY)).isPresent()) { return false; } return true; }
mcrObject.getService().setDate(flagType, new Date()); try { MCRMetadataManager.update(mcrObject);
@Override protected void handleObjectRepaired(MCREvent evt, MCRObject obj) { /* Add PIs to DB if they are not there */ MCRPIManager.getInstance().getRegistered(obj) .forEach(pi -> MCRPIManager.getInstance().delete(pi.getMycoreID(), pi.getAdditional(), pi.getType(), pi.getService())); Gson gson = MCRPIService.getGson(); obj.getService().getFlags(MCRPIService.PI_FLAG).stream() .map(piFlag -> gson.fromJson(piFlag, MCRPI.class)) .filter(entry -> !MCRPIManager.getInstance().exist(entry)) .forEach(entry -> { //TODO: disabled for MCR-1393 // entry.setMcrRevision(MCRCoreVersion.getRevision()); entry.setMcrVersion(MCRCoreVersion.getVersion()); entry.setMycoreID(obj.getId().toString()); LOGGER.info("Add PI : {} with service {} to database!", entry.getIdentifier(), entry.getService()); MCRHIBConnection.instance().getSession().save(entry); }); handleObjectUpdated(evt, obj); }