@Around("@annotation(lifecycleTransition)") public Object checkTransition(ProceedingJoinPoint pjp, LifecycleTransition lifecycleTransition) throws Throwable{ // get the publication from the arguments for (Object obj : pjp.getArgs()) { if (obj instanceof Publication) { Publication publication = (Publication) obj; if (lifecycleTransition.fromStatus() != CvPublicationStatusType.PUB_STATUS) { if (!publication.getStatus().getIdentifier().equals(lifecycleTransition.fromStatus().identifier())) { throw new IllegalTransitionException("Transition '"+pjp.getSignature().getName()+"' cannot be applied to publication '"+ DebugUtil.annotatedObjectToString(publication, false)+ "' with state: '"+DebugUtil.cvObjectToSimpleString(publication.getStatus())+"'"); } } } } return pjp.proceed(); }
@Around("@annotation(lifecycleTransition)") public Object checkTransition(ProceedingJoinPoint pjp, LifecycleTransition lifecycleTransition) throws Throwable{ // get the publication from the arguments for (Object obj : pjp.getArgs()) { if (obj instanceof Publication) { Publication publication = (Publication) obj; if (lifecycleTransition.fromStatus() != CvPublicationStatusType.PUB_STATUS) { if (!publication.getStatus().getIdentifier().equals(lifecycleTransition.fromStatus().identifier())) { throw new IllegalTransitionException("Transition '"+pjp.getSignature().getName()+"' cannot be applied to publication '"+ DebugUtil.annotatedObjectToString(publication, false)+ "' with state: '"+DebugUtil.cvObjectToSimpleString(publication.getStatus())+"'"); } } } } return pjp.proceed(); }
/** * Checks if a lifecycle event "rejected" exists and the publication status is "curation in progress" * @param publication the publication to check * @return if the publication has been rejected * @since 2.5.0 */ public static boolean isRejected(Publication publication) { if (publication == null) { throw new NullPointerException("You must give a non null publication"); } LifecycleEvent lifecycleEvent = getLastEventOfType(publication, CvLifecycleEventType.REJECTED.identifier()); if (lifecycleEvent != null && CvPublicationStatusType.CURATION_IN_PROGRESS.identifier().equals(publication.getStatus().getIdentifier())) { return true; } return false; }
/** * Checks if a lifecycle event "rejected" exists and the publication status is "curation in progress" * @param publication the publication to check * @return if the publication has been rejected * @since 2.5.0 */ public static boolean isRejected(Publication publication) { if (publication == null) { throw new NullPointerException("You must give a non null publication"); } LifecycleEvent lifecycleEvent = getLastEventOfType(publication, CvLifecycleEventType.REJECTED.identifier()); if (lifecycleEvent != null && CvPublicationStatusType.CURATION_IN_PROGRESS.identifier().equals(publication.getStatus().getIdentifier())) { return true; } return false; }
public static boolean isAccepted(Publication publication) { if (publication == null) { throw new NullPointerException("You must give a non null publication"); } if (publication.getStatus() != null) { final String statusId = publication.getStatus().getIdentifier(); return CvPublicationStatusType.ACCEPTED.identifier().equals(statusId) || CvPublicationStatusType.ACCEPTED_ON_HOLD.identifier().equals(statusId) || CvPublicationStatusType.READY_FOR_RELEASE.identifier().equals(statusId) || CvPublicationStatusType.RELEASED.identifier().equals(statusId); } for (Annotation a : publication.getAnnotations()) { if (a.getCvTopic() != null && CvTopic.ACCEPTED.equals(a.getCvTopic().getShortLabel())) { return true; } } return ExperimentUtils.areAllAccepted(publication.getExperiments()); }
public static boolean isAccepted(Publication publication) { if (publication == null) { throw new NullPointerException("You must give a non null publication"); } if (publication.getStatus() != null) { final String statusId = publication.getStatus().getIdentifier(); return CvPublicationStatusType.ACCEPTED.identifier().equals(statusId) || CvPublicationStatusType.ACCEPTED_ON_HOLD.identifier().equals(statusId) || CvPublicationStatusType.READY_FOR_RELEASE.identifier().equals(statusId) || CvPublicationStatusType.RELEASED.identifier().equals(statusId); } for (Annotation a : publication.getAnnotations()) { if (a.getCvTopic() != null && CvTopic.ACCEPTED.equals(a.getCvTopic().getShortLabel())) { return true; } } return ExperimentUtils.areAllAccepted(publication.getExperiments()); }
/** * Create a publication object. * * @param publication the publication * @param mechanism mechanism of creation of the publication */ @LifecycleTransition(toStatus = CvPublicationStatusType.NEW) public void create(Publication publication, String mechanism) { if( publication.getStatus() != null ) { throw new IllegalTransitionException( "Cannot get publication in status NEW when it's status is already set ("+ publication.getStatus().getShortLabel() +"): " + DebugUtil.annotatedObjectToString(publication, false) ); } changeStatus(publication, CvPublicationStatusType.NEW, CvLifecycleEventType.CREATED, mechanism); // Notify listeners for ( LifecycleEventListener listener : getListeners() ) { listener.fireCreated( publication ); } } }
/** * Create a publication object. * * @param publication the publication * @param mechanism mechanism of creation of the publication */ @LifecycleTransition(toStatus = CvPublicationStatusType.NEW) public void create(Publication publication, String mechanism) { if( publication.getStatus() != null ) { throw new IllegalTransitionException( "Cannot get publication in status NEW when it's status is already set ("+ publication.getStatus().getShortLabel() +"): " + DebugUtil.annotatedObjectToString(publication, false) ); } changeStatus(publication, CvPublicationStatusType.NEW, CvLifecycleEventType.CREATED, mechanism); // Notify listeners for ( LifecycleEventListener listener : getListeners() ) { listener.fireCreated( publication ); } } }
private void synchronizePublication( Publication publication, boolean synchronizeAnnotatedAttributes ) { if (IntactCore.isInitializedAndDirty(publication.getExperiments())){ Collection<Experiment> experiments = synchronizeCollection(publication.getExperiments()); publication.getExperiments().clear(); publication.getExperiments().addAll(experiments); } publication.setStatus( synchronize( publication.getStatus() ) ); publication.setCurrentOwner( synchronizeUser(publication.getCurrentOwner()) ); publication.setCurrentReviewer( synchronizeUser(publication.getCurrentReviewer()) ); final List<LifecycleEvent> events = publication.getLifecycleEvents(); if (IntactCore.isInitializedAndDirty( events )){ Collection<LifecycleEvent> synchedEvents = new ArrayList<LifecycleEvent>( events.size() ); for ( LifecycleEvent event : events ) { synchedEvents.add( synchronizeEvent(event) ); } events.clear(); events.addAll( synchedEvents ); } if (synchronizeAnnotatedAttributes){ synchronizeAnnotatedObjectCommons( publication ); } }
private void synchronizePublication( Publication publication, boolean synchronizeAnnotatedAttributes ) { if (IntactCore.isInitializedAndDirty(publication.getExperiments())){ Collection<Experiment> experiments = synchronizeCollection(publication.getExperiments()); publication.getExperiments().clear(); publication.getExperiments().addAll(experiments); } publication.setStatus( synchronize( publication.getStatus() ) ); publication.setCurrentOwner( synchronizeUser(publication.getCurrentOwner()) ); publication.setCurrentReviewer( synchronizeUser(publication.getCurrentReviewer()) ); final List<LifecycleEvent> events = publication.getLifecycleEvents(); if (IntactCore.isInitializedAndDirty( events )){ Collection<LifecycleEvent> synchedEvents = new ArrayList<LifecycleEvent>( events.size() ); for ( LifecycleEvent event : events ) { synchedEvents.add( synchronizeEvent(event) ); } events.clear(); events.addAll( synchedEvents ); } if (synchronizeAnnotatedAttributes){ synchronizeAnnotatedObjectCommons( publication ); } }
public Publication clonePublication(Publication publication) throws IntactClonerException { if (publication == null) return null; Publication clone = new Publication(); clonerManager.addClone(publication, clone); if (isCollectionClonable(publication.getExperiments())) { Collection<Experiment> experiments = IntactCore.ensureInitializedExperiments(publication); for (Experiment e : experiments) { clone.addExperiment(clone(e)); } } if (isCollectionClonable(publication.getLifecycleEvents())) { Collection<LifecycleEvent> events = IntactCore.ensureInitializedLifecycleEvents(publication); for (LifecycleEvent event : events) { clone.addLifecycleEvent(clone(event)); } } clone.setStatus(clone(publication.getStatus())); clone.setCurrentOwner(clone(publication.getCurrentOwner())); clone.setCurrentReviewer(clone(publication.getCurrentReviewer())); return clone; }
public Publication clonePublication(Publication publication) throws IntactClonerException { if (publication == null) return null; Publication clone = new Publication(); clonerManager.addClone(publication, clone); if (isCollectionClonable(publication.getExperiments())) { Collection<Experiment> experiments = IntactCore.ensureInitializedExperiments(publication); for (Experiment e : experiments) { clone.addExperiment(clone(e)); } } if (isCollectionClonable(publication.getLifecycleEvents())) { Collection<LifecycleEvent> events = IntactCore.ensureInitializedLifecycleEvents(publication); for (LifecycleEvent event : events) { clone.addLifecycleEvent(clone(event)); } } clone.setStatus(clone(publication.getStatus())); clone.setCurrentOwner(clone(publication.getCurrentOwner())); clone.setCurrentReviewer(clone(publication.getCurrentReviewer())); return clone; }