From d071accd6f10011b025a2ce9636ba4c9bae9563b Mon Sep 17 00:00:00 2001 From: Guillaume Poirier-Morency Date: Mon, 5 Dec 2022 15:14:19 -0800 Subject: [PATCH 1/6] Update versions for hotfix --- gemma-cli/pom.xml | 2 +- gemma-core/pom.xml | 2 +- gemma-web/pom.xml | 2 +- pom.xml | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/gemma-cli/pom.xml b/gemma-cli/pom.xml index af24cd14dd..05e17d74ff 100644 --- a/gemma-cli/pom.xml +++ b/gemma-cli/pom.xml @@ -3,7 +3,7 @@ gemma gemma - 1.29.0 + 1.29.1 4.0.0 gemma-cli diff --git a/gemma-core/pom.xml b/gemma-core/pom.xml index 136d087830..8974134286 100644 --- a/gemma-core/pom.xml +++ b/gemma-core/pom.xml @@ -3,7 +3,7 @@ gemma gemma - 1.29.0 + 1.29.1 4.0.0 gemma-core diff --git a/gemma-web/pom.xml b/gemma-web/pom.xml index d7caf49901..73c92aa464 100644 --- a/gemma-web/pom.xml +++ b/gemma-web/pom.xml @@ -3,7 +3,7 @@ gemma gemma - 1.29.0 + 1.29.1 4.0.0 gemma-web diff --git a/pom.xml b/pom.xml index 919f1aaeec..5e8117e7f4 100644 --- a/pom.xml +++ b/pom.xml @@ -5,7 +5,7 @@ Gemma gemma gemma - 1.29.0 + 1.29.1 2005 The Gemma Project for meta-analysis of genomics data https://gemma.msl.ubc.ca From a7e86ff5b14b6db43dc3793110a42a74b718f374 Mon Sep 17 00:00:00 2001 From: Guillaume Poirier-Morency Date: Mon, 5 Dec 2022 10:25:49 -0800 Subject: [PATCH 2/6] Configure gitflow to bump minor versions --- pom.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/pom.xml b/pom.xml index 5e8117e7f4..84e46fee61 100644 --- a/pom.xml +++ b/pom.xml @@ -466,6 +466,7 @@ gitflow-maven-plugin true + 1 From a7f21839cc15fb6e069487609b72a278d7750316 Mon Sep 17 00:00:00 2001 From: Guillaume Poirier-Morency Date: Mon, 5 Dec 2022 10:32:30 -0800 Subject: [PATCH 3/6] Fix regression with the frontend using -1 for no taxon --- .../experiment/ExpressionExperimentController.java | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/gemma-web/src/main/java/ubic/gemma/web/controller/expression/experiment/ExpressionExperimentController.java b/gemma-web/src/main/java/ubic/gemma/web/controller/expression/experiment/ExpressionExperimentController.java index 3393c4f878..28e787bbbd 100644 --- a/gemma-web/src/main/java/ubic/gemma/web/controller/expression/experiment/ExpressionExperimentController.java +++ b/gemma-web/src/main/java/ubic/gemma/web/controller/expression/experiment/ExpressionExperimentController.java @@ -781,6 +781,11 @@ public Collection loadStatusSummaries( L throw new AccessDeniedException( "User does not have access to experiment management" ); } + // -1 is used in the frontend as a substitute for null + if ( taxonId == -1L ) { + taxonId = null; + } + if ( limit == null ) { limit = 50; } From 28e35b52751fa3e6c06fe5fd7138405e1dfcf30f Mon Sep 17 00:00:00 2001 From: Guillaume Poirier-Morency Date: Mon, 5 Dec 2022 12:05:23 -0800 Subject: [PATCH 4/6] Use AuditEventType class instead of creating an instance This is only affecting usage, not the underlying implementation. This partially addresses #488. Remove factories in AuditEventType subclasses. Redefine hash and equals of AuditEventType according to its class. This way, no distinction can be made between two event type of the same class. --- .../apps/ArrayDesignBioSequenceDetachCli.java | 4 +- .../gemma/core/apps/ArrayDesignBlatCli.java | 17 +++-- .../core/apps/ArrayDesignProbeMapperCli.java | 71 +++++++++---------- .../core/apps/ArrayDesignProbeRenamerCli.java | 3 +- .../core/apps/ArrayDesignRepeatScanCli.java | 3 +- .../ArrayDesignSequenceAssociationCli.java | 3 +- .../apps/ArrayDesignSubsumptionTesterCli.java | 3 +- .../core/apps/ExpressionDataCorrMatCli.java | 2 +- ...ressionExperimentDataFileGeneratorCli.java | 3 +- ...ExpressionExperimentPlatformSwitchCli.java | 7 +- .../apps/GenericGenelistDesignGenerator.java | 2 +- .../core/apps/MakeExperimentsPublicCli.java | 2 +- .../links/LinkAnalysisServiceImpl.java | 10 +-- ...erentialExpressionAnalyzerServiceImpl.java | 6 +- .../preprocess/PreprocessorServiceImpl.java | 12 ++-- ...sionDataVectorCreateHelperServiceImpl.java | 3 +- ...oChannelMissingValueHelperServiceImpl.java | 2 +- .../preprocess/VectorMergingServiceImpl.java | 3 +- .../BatchInfoPopulationServiceImpl.java | 21 +++--- .../preprocess/svd/SVDServiceHelperImpl.java | 4 +- ...ExpressionExperimentReportServiceImpl.java | 4 +- .../service/OutlierFlaggingServiceImpl.java | 4 +- .../core/loader/expression/DataUpdater.java | 19 +++-- ...rimentPlatformSwitchHelperServiceImpl.java | 3 +- .../common/auditAndSecurity/AuditEvent.java | 48 +++++-------- .../AlignmentBasedGeneMappingEvent.java | 17 ----- .../AnnotationBasedGeneMappingEvent.java | 17 ----- .../eventType/AnnotationEvent.java | 8 --- .../eventType/ArrayDesignAnalysisEvent.java | 8 --- .../ArrayDesignGeneMappingEvent.java | 17 ----- .../eventType/ArrayDesignMergeEvent.java | 17 ----- .../ArrayDesignProbeRenamingEvent.java | 17 ----- .../ArrayDesignRepeatAnalysisEvent.java | 17 ----- .../ArrayDesignSequenceAnalysisEvent.java | 17 ----- .../ArrayDesignSequenceRemoveEvent.java | 17 ----- .../ArrayDesignSequenceUpdateEvent.java | 17 ----- .../ArrayDesignSubsumeCheckEvent.java | 17 ----- .../eventType/AuditEventType.java | 35 ++++----- .../eventType/AutomatedAnnotationEvent.java | 18 ----- .../eventType/BatchCorrectionEvent.java | 16 ----- .../BatchInformationFetchingEvent.java | 17 ----- .../eventType/BatchProblemsUpdateEvent.java | 16 ----- .../eventType/BioMaterialMappingUpdate.java | 17 ----- .../eventType/CommentedEvent.java | 17 ----- .../eventType/CurationDetailsEvent.java | 23 ------ .../eventType/CurationNoteUpdateEvent.java | 15 ---- .../eventType/DataAddedEvent.java | 17 ----- .../eventType/DataReplacedEvent.java | 17 ----- .../DifferentialExpressionAnalysisEvent.java | 17 ----- .../eventType/DoesNotNeedAttentionEvent.java | 10 --- .../ExperimentalDesignUpdatedEvent.java | 17 ----- ...pressionExperimentPlatformSwitchEvent.java | 17 ----- .../ExpressionExperimentVectorMergeEvent.java | 17 ----- .../FailedBatchInformationFetchingEvent.java | 17 ----- .../FailedBatchInformationMissingEvent.java | 17 ----- .../eventType/FailedDataReplacedEvent.java | 14 ---- ...edDifferentialExpressionAnalysisEvent.java | 17 ----- .../eventType/FailedLinkAnalysisEvent.java | 17 ----- .../FailedMissingValueAnalysisEvent.java | 17 ----- .../eventType/FailedPCAAnalysisEvent.java | 17 ----- ...FailedProcessedVectorComputationEvent.java | 17 ----- .../auditAndSecurity/eventType/GeeqEvent.java | 15 ---- .../eventType/LinkAnalysisEvent.java | 9 --- .../eventType/MakePublicEvent.java | 12 ---- .../eventType/ManualAnnotationEvent.java | 17 ----- .../eventType/MissingValueAnalysisEvent.java | 17 ----- .../eventType/NeedsAttentionEvent.java | 9 --- .../eventType/NotTroubledStatusFlagEvent.java | 9 --- .../eventType/OutlierFoundAnalysisEvent.java | 17 ----- .../OutliersNotFoundAnalysisEvent.java | 17 ----- .../eventType/PCAAnalysisEvent.java | 17 ----- .../eventType/PermissionChangeEvent.java | 18 +---- .../ProcessedVectorComputationEvent.java | 17 ----- .../eventType/RankComputationEvent.java | 17 ----- ...orDifferentialExpressionAnalysisEvent.java | 16 ----- .../eventType/SampleRemovalEvent.java | 17 ----- .../SampleRemovalReversionEvent.java | 17 ----- .../SingleBatchDeterminationEvent.java | 16 ----- .../eventType/SingletonBatchInvalidEvent.java | 22 ++---- .../TooSmallDatasetLinkAnalysisEvent.java | 17 ----- .../eventType/TroubledStatusFlagEvent.java | 15 ---- ...formativeFASTQHeadersForBatchingEvent.java | 13 ---- ...orDifferentialExpressionAnalysisEvent.java | 25 ++----- .../eventType/VersionedEvent.java | 1 + .../auditAndSecurity/AuditTrailService.java | 29 +++++--- .../AuditTrailServiceImpl.java | 67 +++++++---------- ...cessedExpressionDataVectorServiceImpl.java | 6 +- .../ExpressionExperimentServiceImpl.java | 26 +++---- .../report/ArrayDesignReportServiceTest.java | 10 +-- .../AuditTrailServiceImplTest.java | 30 ++------ .../eventType/AuditEventTypeTest.java | 19 +++++ .../ExpressionExperimentController.java | 3 +- .../ExpressionExperimentFormController.java | 4 +- .../gemma/web/remote/AuditController.java | 12 ++-- .../expression/CuratableValueObjectTest.java | 4 +- .../gemma/web/remote/AuditControllerTest.java | 13 ++-- 96 files changed, 248 insertions(+), 1189 deletions(-) create mode 100644 gemma-core/src/test/java/ubic/gemma/model/common/auditAndSecurity/eventType/AuditEventTypeTest.java diff --git a/gemma-cli/src/main/java/ubic/gemma/core/apps/ArrayDesignBioSequenceDetachCli.java b/gemma-cli/src/main/java/ubic/gemma/core/apps/ArrayDesignBioSequenceDetachCli.java index c8efb5424a..d221f02728 100644 --- a/gemma-cli/src/main/java/ubic/gemma/core/apps/ArrayDesignBioSequenceDetachCli.java +++ b/gemma-cli/src/main/java/ubic/gemma/core/apps/ArrayDesignBioSequenceDetachCli.java @@ -103,7 +103,6 @@ protected void doWork() throws Exception { } - } @Override @@ -114,8 +113,7 @@ public String getShortDesc() { private void audit( ArrayDesign arrayDesign, String message ) { super.getArrayDesignReportService().generateArrayDesignReport( arrayDesign.getId() ); - AuditEventType eventType = ArrayDesignSequenceRemoveEvent.Factory.newInstance(); - auditTrailService.addUpdateEvent( arrayDesign, eventType, message ); + auditTrailService.addUpdateEvent( arrayDesign, ArrayDesignSequenceRemoveEvent.class, message ); } } diff --git a/gemma-cli/src/main/java/ubic/gemma/core/apps/ArrayDesignBlatCli.java b/gemma-cli/src/main/java/ubic/gemma/core/apps/ArrayDesignBlatCli.java index e252d2fecb..d0d05bfeea 100644 --- a/gemma-cli/src/main/java/ubic/gemma/core/apps/ArrayDesignBlatCli.java +++ b/gemma-cli/src/main/java/ubic/gemma/core/apps/ArrayDesignBlatCli.java @@ -66,8 +66,8 @@ protected void buildOptions( Options options ) { super.buildOptions( options ); Option blatResultOption = Option.builder( "b" ).hasArg().argName( "PSL file" ).desc( - "Blat result file in PSL format (if supplied, BLAT will not be run; will not work with settings that indicate " - + "multiple platforms to run); -t option overrides" ) + "Blat result file in PSL format (if supplied, BLAT will not be run; will not work with settings that indicate " + + "multiple platforms to run); -t option overrides" ) .longOpt( "blatfile" ) .build(); @@ -80,13 +80,13 @@ protected void buildOptions( Options options ) { options.addOption( Option.builder( "sensitive" ).desc( "Run on more sensitive server, if available" ).build() ); Option taxonOption = Option.builder( "t" ).hasArg().argName( "taxon" ).desc( - "Taxon common name (e.g., human); if platform name not given (analysis will be " - + "restricted to sequences on that platform for taxon given), blat " - + "will be run for all ArrayDesigns from that taxon (overrides -a and -b)" ) + "Taxon common name (e.g., human); if platform name not given (analysis will be " + + "restricted to sequences on that platform for taxon given), blat " + + "will be run for all ArrayDesigns from that taxon (overrides -a and -b)" ) .build(); options.addOption( taxonOption ); - // this.addThreadsOption( options ); + // this.addThreadsOption( options ); options.addOption( blatScoreThresholdOption ); options.addOption( blatResultOption ); } @@ -143,7 +143,7 @@ protected void doWork() throws Exception { for ( ArrayDesign arrayDesign : this.getArrayDesignsToProcess() ) { if ( !this.shouldRun( skipIfLastRunLaterThan, arrayDesign, ArrayDesignSequenceAnalysisEvent.class ) ) { - AbstractCLI.log.warn( arrayDesign + " does not meet criteria to be processed"); + AbstractCLI.log.warn( arrayDesign + " does not meet criteria to be processed" ); return; } @@ -204,8 +204,7 @@ public String getShortDesc() { private void audit( ArrayDesign arrayDesign, String note ) { getArrayDesignReportService().generateArrayDesignReport( arrayDesign.getId() ); - AuditEventType eventType = ArrayDesignSequenceAnalysisEvent.Factory.newInstance(); - auditTrailService.addUpdateEvent( arrayDesign, eventType, note ); + auditTrailService.addUpdateEvent( arrayDesign, ArrayDesignSequenceAnalysisEvent.class, note ); } /** diff --git a/gemma-cli/src/main/java/ubic/gemma/core/apps/ArrayDesignProbeMapperCli.java b/gemma-cli/src/main/java/ubic/gemma/core/apps/ArrayDesignProbeMapperCli.java index b44178088d..0cd7b41b05 100644 --- a/gemma-cli/src/main/java/ubic/gemma/core/apps/ArrayDesignProbeMapperCli.java +++ b/gemma-cli/src/main/java/ubic/gemma/core/apps/ArrayDesignProbeMapperCli.java @@ -83,7 +83,7 @@ protected void buildOptions( Options options ) { super.buildOptions( options ); options.addOption( Option.builder( "i" ).hasArg().argName( "value" ).desc( - "Sequence identity threshold, default = " + ProbeMapperConfig.DEFAULT_IDENTITY_THRESHOLD ) + "Sequence identity threshold, default = " + ProbeMapperConfig.DEFAULT_IDENTITY_THRESHOLD ) .longOpt( "identityThreshold" ).build() ); options.addOption( Option.builder( "s" ).hasArg().argName( "value" ) @@ -91,44 +91,44 @@ protected void buildOptions( Options options ) { .longOpt( "scoreThreshold" ).build() ); options.addOption( Option.builder( "o" ).hasArg().argName( "value" ).desc( - "Minimum fraction of probe overlap with exons, default = " - + ProbeMapperConfig.DEFAULT_MINIMUM_EXON_OVERLAP_FRACTION ) + "Minimum fraction of probe overlap with exons, default = " + + ProbeMapperConfig.DEFAULT_MINIMUM_EXON_OVERLAP_FRACTION ) .longOpt( "overlapThreshold" ) .build() ); options.addOption( Option.builder( "usePred" ).desc( - "Allow mapping to predicted genes (overrides Acembly, Ensembl and Nscan; default=" - + ProbeMapperConfig.DEFAULT_ALLOW_PREDICTED + ")" ) + "Allow mapping to predicted genes (overrides Acembly, Ensembl and Nscan; default=" + + ProbeMapperConfig.DEFAULT_ALLOW_PREDICTED + ")" ) .build() ); options.addOption( Option.builder( ArrayDesignProbeMapperCli.CONFIG_OPTION ).hasArg().argName( "configstring" ).desc( - "String describing which tracks to search, for example 'rkenmias' for all, 'rm' to limit search to Refseq with mRNA evidence. If this option is not set," - + " all will be used except as listed below and in combination with the 'usePred' option:\n " + "String describing which tracks to search, for example 'rkenmias' for all, 'rm' to limit search to Refseq with mRNA evidence. If this option is not set," + + " all will be used except as listed below and in combination with the 'usePred' option:\n " - + ArrayDesignProbeMapperCli.OPTION_REFSEQ - + " - search refseq track for genes (best to leave on)\n" + + ArrayDesignProbeMapperCli.OPTION_REFSEQ + + " - search refseq track for genes (best to leave on)\n" - + ArrayDesignProbeMapperCli.OPTION_KNOWNGENE - + " - search knownGene track for genes (best to leave on, but track may be missing for some organisms)\n" + + ArrayDesignProbeMapperCli.OPTION_KNOWNGENE + + " - search knownGene track for genes (best to leave on, but track may be missing for some organisms)\n" - + ArrayDesignProbeMapperCli.OPTION_MICRORNA + " - search miRNA track for genes (Default = false)\n" + + ArrayDesignProbeMapperCli.OPTION_MICRORNA + " - search miRNA track for genes (Default = false)\n" - + ArrayDesignProbeMapperCli.OPTION_EST + " - search EST track for transcripts (Default=false)\n" + + ArrayDesignProbeMapperCli.OPTION_EST + " - search EST track for transcripts (Default=false)\n" - + ArrayDesignProbeMapperCli.OPTION_MRNA - + " - search mRNA track for transcripts (Default=false)\n" + + ArrayDesignProbeMapperCli.OPTION_MRNA + + " - search mRNA track for transcripts (Default=false)\n" - + ArrayDesignProbeMapperCli.OPTION_ENSEMBL + " - search Ensembl track for predicted genes (Default=false) \n" ) + + ArrayDesignProbeMapperCli.OPTION_ENSEMBL + " - search Ensembl track for predicted genes (Default=false) \n" ) .build() ); options.addOption( Option.builder( ArrayDesignProbeMapperCli.MIRNA_ONLY_MODE_OPTION ).desc( - "Only seek miRNAs; this is the same as '-config " + ArrayDesignProbeMapperCli.OPTION_MICRORNA - + "; overrides -config." ) + "Only seek miRNAs; this is the same as '-config " + ArrayDesignProbeMapperCli.OPTION_MICRORNA + + "; overrides -config." ) .build() ); Option taxonOption = Option.builder( "t" ).hasArg().argName( "taxon" ).desc( - "Taxon common name (e.g., human); if using '-import', this taxon will be assumed; otherwise analysis will be run for all" - + " ArrayDesigns from that taxon (overrides -a)" ) + "Taxon common name (e.g., human); if using '-import', this taxon will be assumed; otherwise analysis will be run for all" + + " ArrayDesigns from that taxon (overrides -a)" ) .build(); options.addOption( taxonOption ); @@ -138,10 +138,10 @@ protected void buildOptions( Options options ) { options.addOption( force ); Option directAnnotation = Option.builder( "import" ).desc( - "Import annotations from a file rather than our own analysis. You must provide the taxon option. " - + "File format: 2 columns with column 1= probe name in Gemma, " - + "column 2=sequence name (not required, and not used for direct gene-based annotation)" - + " column 3 = gene symbol (will be matched to that in Gemma)" ) + "Import annotations from a file rather than our own analysis. You must provide the taxon option. " + + "File format: 2 columns with column 1= probe name in Gemma, " + + "column 2=sequence name (not required, and not used for direct gene-based annotation)" + + " column 3 = gene symbol (will be matched to that in Gemma)" ) .hasArg().argName( "file" ) .build(); @@ -356,7 +356,7 @@ boolean needToRun( Date skipIfLastRunLaterThan, ArrayDesign arrayDesign, // return false; AbstractCLI.log .warn( arrayDesign + ": Sequences were updated more recently than the last repeat masking but requirement temporarily waived" ); - // return false; + // return false; } if ( lastSequenceAnalysis != null && lastSequenceUpdate.getDate() @@ -381,8 +381,8 @@ boolean needToRun( Date skipIfLastRunLaterThan, ArrayDesign arrayDesign, if ( isNotMerged && lastRepeatMask == null ) { AbstractCLI.log .warn( arrayDesign + "Repeat masking missing but requirement temporarily waived" ); - // AbstractCLI.log.warn( arrayDesign + ": Must do repeat mask analysis before probe mapping" ); - // return false; + // AbstractCLI.log.warn( arrayDesign + ": Must do repeat mask analysis before probe mapping" ); + // return false; } if ( skipIfLastRunLaterThan != null && lastProbeMapping != null && lastProbeMapping.getDate() @@ -440,7 +440,7 @@ protected void doWork() throws Exception { } arrayDesignProbeMapperService .processArrayDesign( arrayDesign, taxon, f, this.sourceDatabase, this.ncbiIds ); - this.audit( arrayDesign, "Imported from " + f, new AnnotationBasedGeneMappingEvent() ); + this.audit( arrayDesign, "Imported from " + f, AnnotationBasedGeneMappingEvent.class ); } catch ( IOException e ) { addErrorObject( arrayDesign, e.getMessage(), e ); } @@ -460,13 +460,13 @@ protected void doWork() throws Exception { if ( useDB ) { if ( this.mirnaOnlyModeOption ) { - this.audit( arrayDesign, "Run in miRNA-only mode.", new AlignmentBasedGeneMappingEvent() ); + this.audit( arrayDesign, "Run in miRNA-only mode.", AlignmentBasedGeneMappingEvent.class ); } else if ( configOption != null ) { this.audit( arrayDesign, "Run with configuration=" + this.configOption, - new AlignmentBasedGeneMappingEvent() ); + AlignmentBasedGeneMappingEvent.class ); } else { this.audit( arrayDesign, "Run with default parameters", - new AlignmentBasedGeneMappingEvent() ); + AlignmentBasedGeneMappingEvent.class ); } updateMergedOrSubsumed( arrayDesign ); } @@ -497,7 +497,7 @@ public String getShortDesc() { return "Process the BLAT results for an array design to map them onto genes"; } - private void audit( ArrayDesign arrayDesign, String note, ArrayDesignGeneMappingEvent eventType ) { + private void audit( ArrayDesign arrayDesign, String note, Class eventType ) { getArrayDesignReportService().generateArrayDesignReport( arrayDesign.getId() ); auditTrailService.addUpdateEvent( arrayDesign, eventType, note ); } @@ -527,7 +527,7 @@ private void configure( ArrayDesign arrayDesign ) { * Hackery to work around rn6+ problems */ boolean isRat; - if ( this.taxon == null) { + if ( this.taxon == null ) { assert arrayDesign != null; Taxon t = getArrayDesignService().getTaxon( arrayDesign.getId() ); isRat = t.getCommonName().equals( "rat" ); @@ -614,8 +614,7 @@ private void processArrayDesign( Date skipIfLastRunLaterThan, ArrayDesign design } arrayDesignProbeMapperService.processArrayDesign( design, this.config, this.useDB ); addSuccessObject( design, "Successfully processed " + design ); - ArrayDesignGeneMappingEvent eventType = new AlignmentBasedGeneMappingEvent(); - this.audit( design, "Part of a batch job", eventType ); + this.audit( design, "Part of a batch job", AlignmentBasedGeneMappingEvent.class ); updateMergedOrSubsumed( design ); @@ -638,7 +637,7 @@ private void updateMergedOrSubsumed( ArrayDesign design ) { Collection toUpdate = getRelatedDesigns( design ); for ( ArrayDesign ad : toUpdate ) { log.info( "Marking subsumed or merged design as completed, updating report: " + ad ); - this.audit( ad, "Parent design was processed (merged or subsumed by this)", AlignmentBasedGeneMappingEvent.Factory.newInstance() ); + this.audit( ad, "Parent design was processed (merged or subsumed by this)", AlignmentBasedGeneMappingEvent.class ); arrayDesignProbeMapperService.deleteOldFiles( ad ); getArrayDesignReportService().generateArrayDesignReport( ad.getId() ); } diff --git a/gemma-cli/src/main/java/ubic/gemma/core/apps/ArrayDesignProbeRenamerCli.java b/gemma-cli/src/main/java/ubic/gemma/core/apps/ArrayDesignProbeRenamerCli.java index e72d412454..6710c2c532 100755 --- a/gemma-cli/src/main/java/ubic/gemma/core/apps/ArrayDesignProbeRenamerCli.java +++ b/gemma-cli/src/main/java/ubic/gemma/core/apps/ArrayDesignProbeRenamerCli.java @@ -139,8 +139,7 @@ private void rename( ArrayDesign arrayDesign, InputStream newIdFile ) { private void audit( ArrayDesign arrayDesign, String note ) { super.getArrayDesignReportService().generateArrayDesignReport( arrayDesign.getId() ); - AuditEventType eventType = ArrayDesignProbeRenamingEvent.Factory.newInstance(); - auditTrailService.addUpdateEvent( arrayDesign, eventType, note ); + auditTrailService.addUpdateEvent( arrayDesign, ArrayDesignProbeRenamingEvent.class, note ); } private Map parseIdFile( InputStream newIdFile ) throws IOException { diff --git a/gemma-cli/src/main/java/ubic/gemma/core/apps/ArrayDesignRepeatScanCli.java b/gemma-cli/src/main/java/ubic/gemma/core/apps/ArrayDesignRepeatScanCli.java index b552b63e6b..d146c3030a 100644 --- a/gemma-cli/src/main/java/ubic/gemma/core/apps/ArrayDesignRepeatScanCli.java +++ b/gemma-cli/src/main/java/ubic/gemma/core/apps/ArrayDesignRepeatScanCli.java @@ -130,8 +130,7 @@ public String getShortDesc() { } private void audit( ArrayDesign arrayDesign, String note ) { - AuditEventType eventType = ArrayDesignRepeatAnalysisEvent.Factory.newInstance(); - auditTrailService.addUpdateEvent( arrayDesign, eventType, note ); + auditTrailService.addUpdateEvent( arrayDesign, ArrayDesignRepeatAnalysisEvent.class, note ); } private void processArrayDesign( ArrayDesign design ) { diff --git a/gemma-cli/src/main/java/ubic/gemma/core/apps/ArrayDesignSequenceAssociationCli.java b/gemma-cli/src/main/java/ubic/gemma/core/apps/ArrayDesignSequenceAssociationCli.java index 297860eb67..684798f622 100644 --- a/gemma-cli/src/main/java/ubic/gemma/core/apps/ArrayDesignSequenceAssociationCli.java +++ b/gemma-cli/src/main/java/ubic/gemma/core/apps/ArrayDesignSequenceAssociationCli.java @@ -257,8 +257,7 @@ protected void processOptions( CommandLine commandLine ) { private void audit( ArrayDesign arrayDesign, String note ) { // minor : don't add audit event if no sequences were changed, or --force. this.getArrayDesignReportService().generateArrayDesignReport( arrayDesign.getId() ); - AuditEventType eventType = ArrayDesignSequenceUpdateEvent.Factory.newInstance(); - auditTrailService.addUpdateEvent( arrayDesign, eventType, note ); + auditTrailService.addUpdateEvent( arrayDesign, ArrayDesignSequenceUpdateEvent.class, note ); } } diff --git a/gemma-cli/src/main/java/ubic/gemma/core/apps/ArrayDesignSubsumptionTesterCli.java b/gemma-cli/src/main/java/ubic/gemma/core/apps/ArrayDesignSubsumptionTesterCli.java index 6b719503df..70d917acab 100644 --- a/gemma-cli/src/main/java/ubic/gemma/core/apps/ArrayDesignSubsumptionTesterCli.java +++ b/gemma-cli/src/main/java/ubic/gemma/core/apps/ArrayDesignSubsumptionTesterCli.java @@ -152,8 +152,7 @@ protected void processOptions( CommandLine commandLine ) { } private void audit( ArrayDesign arrayDesign, String note ) { - AuditEventType eventType = ArrayDesignSubsumeCheckEvent.Factory.newInstance(); - auditTrailService.addUpdateEvent( arrayDesign, eventType, note ); + auditTrailService.addUpdateEvent( arrayDesign, ArrayDesignSubsumeCheckEvent.class, note ); } } diff --git a/gemma-cli/src/main/java/ubic/gemma/core/apps/ExpressionDataCorrMatCli.java b/gemma-cli/src/main/java/ubic/gemma/core/apps/ExpressionDataCorrMatCli.java index 1c2ee43371..4d72a73659 100644 --- a/gemma-cli/src/main/java/ubic/gemma/core/apps/ExpressionDataCorrMatCli.java +++ b/gemma-cli/src/main/java/ubic/gemma/core/apps/ExpressionDataCorrMatCli.java @@ -67,7 +67,7 @@ protected void buildOptions( Options options ) { } private void audit( ExpressionExperiment ee ) { - auditTrailService.addUpdateEvent( ee, null, "Generated sample correlation matrix" ); + auditTrailService.addUpdateEvent( ee, "Generated sample correlation matrix" ); addSuccessObject( ee, "Successfully processed " + ee.getShortName() ); } diff --git a/gemma-cli/src/main/java/ubic/gemma/core/apps/ExpressionExperimentDataFileGeneratorCli.java b/gemma-cli/src/main/java/ubic/gemma/core/apps/ExpressionExperimentDataFileGeneratorCli.java index 2018191436..5ecc53f967 100644 --- a/gemma-cli/src/main/java/ubic/gemma/core/apps/ExpressionExperimentDataFileGeneratorCli.java +++ b/gemma-cli/src/main/java/ubic/gemma/core/apps/ExpressionExperimentDataFileGeneratorCli.java @@ -116,12 +116,11 @@ private void processExperiment( ExpressionExperiment ee ) { ee = this.eeService.thawLite( ee ); AuditTrailService ats = this.getBean( AuditTrailService.class ); - AuditEventType type = CommentedEvent.Factory.newInstance(); expressionDataFileService.writeOrLocateCoexpressionDataFile( ee, force_write ); expressionDataFileService.writeOrLocateDiffExpressionDataFiles( ee, force_write ); - ats.addUpdateEvent( ee, type, "Generated Flat data files for downloading" ); + ats.addUpdateEvent( ee, CommentedEvent.class, "Generated Flat data files for downloading" ); addSuccessObject( ee, "Success: generated data file for " + ee.getShortName() + " ID=" + ee.getId() ); } catch ( Exception e ) { diff --git a/gemma-cli/src/main/java/ubic/gemma/core/apps/ExpressionExperimentPlatformSwitchCli.java b/gemma-cli/src/main/java/ubic/gemma/core/apps/ExpressionExperimentPlatformSwitchCli.java index 8584601047..f0ac069dc4 100644 --- a/gemma-cli/src/main/java/ubic/gemma/core/apps/ExpressionExperimentPlatformSwitchCli.java +++ b/gemma-cli/src/main/java/ubic/gemma/core/apps/ExpressionExperimentPlatformSwitchCli.java @@ -70,7 +70,7 @@ public String getShortDesc() { protected void buildOptions( Options options ) { super.buildOptions( options ); Option arrayDesignOption = Option.builder( "a" ).hasArg().argName( "Array design" ).desc( - "Array design name (or short name) - no need to specifiy if the platforms used by the EE are merged" ) + "Array design name (or short name) - no need to specifiy if the platforms used by the EE are merged" ) .longOpt( "array" ).build(); options.addOption( arrayDesignOption ); @@ -92,7 +92,6 @@ private void processExperiment( ExpressionExperiment ee ) { ee = this.eeService.thawLite( ee ); AuditTrailService ats = this.getBean( AuditTrailService.class ); - AuditEventType type = ExpressionExperimentPlatformSwitchEvent.Factory.newInstance(); if ( this.arrayDesignName != null ) { ArrayDesign ad = this.locateArrayDesign( this.arrayDesignName, arrayDesignService ); if ( ad == null ) { @@ -101,12 +100,12 @@ private void processExperiment( ExpressionExperiment ee ) { ad = arrayDesignService.thaw( ad ); ee = serv.switchExperimentToArrayDesign( ee, ad ); - ats.addUpdateEvent( ee, type, "Switched to use " + ad ); + ats.addUpdateEvent( ee, ExpressionExperimentPlatformSwitchEvent.class, "Switched to use " + ad ); } else { // Identify merged platform automatically; not really recommended as it might not make the optimal choice. ee = serv.switchExperimentToMergedPlatform( ee ); - ats.addUpdateEvent( ee, type, "Switched to use merged array Design " ); + ats.addUpdateEvent( ee, ExpressionExperimentPlatformSwitchEvent.class, "Switched to use merged array Design " ); } addSuccessObject( ee, "Successfully processed " + ee.getShortName() ); diff --git a/gemma-cli/src/main/java/ubic/gemma/core/apps/GenericGenelistDesignGenerator.java b/gemma-cli/src/main/java/ubic/gemma/core/apps/GenericGenelistDesignGenerator.java index 340d79e72e..3b1f9b9176 100644 --- a/gemma-cli/src/main/java/ubic/gemma/core/apps/GenericGenelistDesignGenerator.java +++ b/gemma-cli/src/main/java/ubic/gemma/core/apps/GenericGenelistDesignGenerator.java @@ -352,7 +352,7 @@ protected void doWork() throws Exception { log.info( count + " genes processed; " + numNewElements + " new elements; " + numUpdatedElements + " updated elements; " + numWithNoTranscript + " genes had no transcript and were skipped." ); - auditTrailService.addUpdateEvent( arrayDesign, AnnotationBasedGeneMappingEvent.Factory.newInstance(), + auditTrailService.addUpdateEvent( arrayDesign, AnnotationBasedGeneMappingEvent.class, count + " genes processed; " + numNewElements + " new elements; " + numUpdatedElements + " updated elements; " + numWithNoTranscript + " genes had no transcript and were skipped." ); arrayDesignAnnotationService.deleteExistingFiles( arrayDesign ); diff --git a/gemma-cli/src/main/java/ubic/gemma/core/apps/MakeExperimentsPublicCli.java b/gemma-cli/src/main/java/ubic/gemma/core/apps/MakeExperimentsPublicCli.java index e8e79a0455..aa3b7c6ba5 100644 --- a/gemma-cli/src/main/java/ubic/gemma/core/apps/MakeExperimentsPublicCli.java +++ b/gemma-cli/src/main/java/ubic/gemma/core/apps/MakeExperimentsPublicCli.java @@ -36,7 +36,7 @@ protected void doWork() throws Exception { SecurityService securityService = this.getBean( SecurityService.class ); for ( BioAssaySet ee : this.expressionExperiments ) { securityService.makePublic( ee ); - this.auditTrailService.addUpdateEvent( ee, MakePublicEvent.class, "Made public from command line", null ); + this.auditTrailService.addUpdateEvent( ee, MakePublicEvent.class, "Made public from command line" ); } } diff --git a/gemma-core/src/main/java/ubic/gemma/core/analysis/expression/coexpression/links/LinkAnalysisServiceImpl.java b/gemma-core/src/main/java/ubic/gemma/core/analysis/expression/coexpression/links/LinkAnalysisServiceImpl.java index 0986d49da2..a598faa5af 100644 --- a/gemma-core/src/main/java/ubic/gemma/core/analysis/expression/coexpression/links/LinkAnalysisServiceImpl.java +++ b/gemma-core/src/main/java/ubic/gemma/core/analysis/expression/coexpression/links/LinkAnalysisServiceImpl.java @@ -223,7 +223,7 @@ private void analyze( ExpressionExperiment ee, FilterConfig filterConfig, LinkAn } } - private void audit( ExpressionExperiment ee, String note, AuditEventType eventType ) { + private void audit( ExpressionExperiment ee, String note, Class eventType ) { expressionExperimentReportService.generateSummary( ee.getId() ); ee = this.eeService.thawLite( ee ); auditTrailService.addUpdateEvent( ee, eventType, note ); @@ -384,13 +384,13 @@ private void getProbe2GeneMap( LinkAnalysis la, Collection runDifferentialExpressionAnaly .error( "Error during differential expression analysis: " + e.getMessage(), e ); try { auditTrailService.addUpdateEvent( expressionExperiment, - FailedDifferentialExpressionAnalysisEvent.Factory.newInstance(), + FailedDifferentialExpressionAnalysisEvent.class, ExceptionUtils.getStackTrace( e ) ); } catch ( Exception e2 ) { DifferentialExpressionAnalyzerServiceImpl.log.error( "Could not attach failure audit event" ); @@ -244,7 +244,7 @@ public DifferentialExpressionAnalysis persistAnalysis( ExpressionExperiment expr // get a clean copy of the analysis object from the DB. analysis = differentialExpressionAnalysisService.load( analysis.getId() ); // we do this here because now we have IDs for everything. - if (config.getMakeArchiveFile() ) { + if ( config.getMakeArchiveFile() ) { try { expressionDataFileService.writeDiffExArchiveFile( expressionExperiment, analysis, config ); } catch ( IOException e ) { @@ -256,7 +256,7 @@ public DifferentialExpressionAnalysis persistAnalysis( ExpressionExperiment expr // final transaction: audit. try { auditTrailService - .addUpdateEvent( expressionExperiment, DifferentialExpressionAnalysisEvent.Factory.newInstance(), + .addUpdateEvent( expressionExperiment, DifferentialExpressionAnalysisEvent.class, persistentAnalysis.getDescription() + "; analysis id=" + persistentAnalysis.getId() ); } catch ( Exception e ) { DifferentialExpressionAnalyzerServiceImpl.log diff --git a/gemma-core/src/main/java/ubic/gemma/core/analysis/preprocess/PreprocessorServiceImpl.java b/gemma-core/src/main/java/ubic/gemma/core/analysis/preprocess/PreprocessorServiceImpl.java index 38447c3f0c..847a5b07de 100644 --- a/gemma-core/src/main/java/ubic/gemma/core/analysis/preprocess/PreprocessorServiceImpl.java +++ b/gemma-core/src/main/java/ubic/gemma/core/analysis/preprocess/PreprocessorServiceImpl.java @@ -187,15 +187,13 @@ public void batchCorrect( ExpressionExperiment ee, boolean force ) throws Prepro processedExpressionDataVectorService .createProcessedDataVectors( ee, correctedData.toProcessedDataVectors() ); - AuditEventType eventType = BatchCorrectionEvent.Factory.newInstance(); - String bConf = expressionExperimentService.getBatchConfound( ee ); if ( bConf != null && force ) { String add = "Batch correction forced over a detected confound: " + bConf; //noinspection ConstantConditions // That is simply false. detail = ( detail == null ) ? add : detail + "\n" + add; } - auditTrailService.addUpdateEvent( ee, eventType, note, detail ); + auditTrailService.addUpdateEvent( ee, BatchCorrectionEvent.class, note, detail ); this.removeInvalidatedData( ee ); this.processExceptForVectorCreate( ee, false ); // don't batch correct again! @@ -210,7 +208,7 @@ public void batchCorrect( ExpressionExperiment ee, boolean force ) throws Prepro * Checks all the given expression experiments bio assays for outlier flags and returns them in a collection * * @param ee the expression experiment to be checked - * @return a collection of outlier details that contains all the outliers that the expression experiment is aware + * @return a collection of outlier details that contains all the outliers that the expression experiment is aware * of. */ private Collection getAlreadyKnownOutliers( ExpressionExperiment ee ) { @@ -229,10 +227,10 @@ private Collection getAlreadyKnownOutliers( ExpressionExperiment /** * Do all processing steps except making the vectors (so it uses the vectors that are there) including batch * correction, diagnostics, and refreshing of old analyses. - * + * * @param ee the experiment * @param batchCorrect if true, attempt to do batch correction (should always be true really) - * @return the experiment + * @return the experiment */ private ExpressionExperiment processExceptForVectorCreate( ExpressionExperiment ee, Boolean batchCorrect ) { // refresh into context. @@ -377,7 +375,7 @@ private ExpressionDataDoubleMatrix getCorrectedData( ExpressionExperiment ee, /** * - * @return processed data vectors; if they don't exist, create them. They will be thawed in either case. + * @return processed data vectors; if they don't exist, create them. They will be thawed in either case. */ private Collection getProcessedExpressionDataVectors( ExpressionExperiment ee ) { Collection vecs = processedExpressionDataVectorService diff --git a/gemma-core/src/main/java/ubic/gemma/core/analysis/preprocess/ProcessedExpressionDataVectorCreateHelperServiceImpl.java b/gemma-core/src/main/java/ubic/gemma/core/analysis/preprocess/ProcessedExpressionDataVectorCreateHelperServiceImpl.java index e974987974..777e29fecb 100644 --- a/gemma-core/src/main/java/ubic/gemma/core/analysis/preprocess/ProcessedExpressionDataVectorCreateHelperServiceImpl.java +++ b/gemma-core/src/main/java/ubic/gemma/core/analysis/preprocess/ProcessedExpressionDataVectorCreateHelperServiceImpl.java @@ -360,8 +360,7 @@ private ExpressionDataDoubleMatrix loadIntensities( ExpressionExperiment ee, } private void audit( ExpressionExperiment ee ) { - AuditEventType eventType = ProcessedVectorComputationEvent.Factory.newInstance(); - auditTrailService.addUpdateEvent( ee, eventType, "" ); + auditTrailService.addUpdateEvent( ee, ProcessedVectorComputationEvent.class, String.format( "Created processed expression data for %s.", ee ) ); } /** diff --git a/gemma-core/src/main/java/ubic/gemma/core/analysis/preprocess/TwoChannelMissingValueHelperServiceImpl.java b/gemma-core/src/main/java/ubic/gemma/core/analysis/preprocess/TwoChannelMissingValueHelperServiceImpl.java index 87ea0e8765..f8addce840 100644 --- a/gemma-core/src/main/java/ubic/gemma/core/analysis/preprocess/TwoChannelMissingValueHelperServiceImpl.java +++ b/gemma-core/src/main/java/ubic/gemma/core/analysis/preprocess/TwoChannelMissingValueHelperServiceImpl.java @@ -54,7 +54,7 @@ public Collection persist( ExpressionExperiment source, TwoChannelMissingValueHelperServiceImpl.log.info( "Persisting " + results.size() + " vectors ... " ); source.getRawExpressionDataVectors().addAll( results ); expressionExperimentService.update( source ); // this is needed to get the QT filled in properly. - auditTrailService.addUpdateEvent( source, MissingValueAnalysisEvent.Factory.newInstance(), + auditTrailService.addUpdateEvent( source, MissingValueAnalysisEvent.class, "Computed missing value data" ); return results; diff --git a/gemma-core/src/main/java/ubic/gemma/core/analysis/preprocess/VectorMergingServiceImpl.java b/gemma-core/src/main/java/ubic/gemma/core/analysis/preprocess/VectorMergingServiceImpl.java index 96cdd5537c..f82675131f 100644 --- a/gemma-core/src/main/java/ubic/gemma/core/analysis/preprocess/VectorMergingServiceImpl.java +++ b/gemma-core/src/main/java/ubic/gemma/core/analysis/preprocess/VectorMergingServiceImpl.java @@ -258,8 +258,7 @@ public ExpressionExperiment mergeVectors( ExpressionExperiment ee ) { } private void audit( ExpressionExperiment ee, String note ) { - AuditEventType eventType = ExpressionExperimentVectorMergeEvent.Factory.newInstance(); - auditTrailService.addUpdateEvent( ee, eventType, note ); + auditTrailService.addUpdateEvent( ee, ExpressionExperimentVectorMergeEvent.class, note ); } private void cleanUp( ExpressionExperiment expExp, Collection allOldBioAssayDims, diff --git a/gemma-core/src/main/java/ubic/gemma/core/analysis/preprocess/batcheffects/BatchInfoPopulationServiceImpl.java b/gemma-core/src/main/java/ubic/gemma/core/analysis/preprocess/batcheffects/BatchInfoPopulationServiceImpl.java index 41b4fcb086..a7e12cba31 100644 --- a/gemma-core/src/main/java/ubic/gemma/core/analysis/preprocess/batcheffects/BatchInfoPopulationServiceImpl.java +++ b/gemma-core/src/main/java/ubic/gemma/core/analysis/preprocess/batcheffects/BatchInfoPopulationServiceImpl.java @@ -87,7 +87,7 @@ public class BatchInfoPopulationServiceImpl implements BatchInfoPopulationServic /** * @param ef ef - * @return true if the factor seems to be a 'batch' factor. + * @return true if the factor seems to be a 'batch' factor. */ public static boolean isBatchFactor( ExperimentalFactor ef ) { Characteristic c = ef.getCategory(); @@ -146,15 +146,14 @@ public void fillBatchInformation( ExpressionExperiment ee, boolean force ) throw files = this.fetchRawDataFiles( ee ); if ( files == null || files.isEmpty() ) { this.auditTrailService - .addUpdateEvent( ee, FailedBatchInformationMissingEvent.class, "No files were found", "" ); + .addUpdateEvent( ee, FailedBatchInformationMissingEvent.class, "No files were found" ); throw new BatchInfoPopulationException( "No file were found." ); } this.getBatchDataFromRawFiles( ee, files ); } catch ( Exception e ) { BatchInfoPopulationServiceImpl.log.info( e, e ); - this.auditTrailService.addUpdateEvent( ee, FailedBatchInformationFetchingEvent.class, e.getMessage(), - ExceptionUtils.getStackTrace( e ) ); + this.auditTrailService.addUpdateEvent( ee, FailedBatchInformationFetchingEvent.class, e.getMessage(), e ); throw new BatchInfoPopulationException( "", e ); } finally { if ( BatchInfoPopulationServiceImpl.CLEAN_UP && files != null ) { @@ -169,13 +168,13 @@ public void fillBatchInformation( ExpressionExperiment ee, boolean force ) throw * Exposed for testing * * @param accession GEO accession - * @return map of GEO id to headers, including the platform ID + * @return map of GEO id to headers, including the platform ID */ Map readFastqHeaders( String accession ) throws IOException, FileNotFoundException { Map result = new HashMap<>(); File headerFile = new File( Settings.getString( GEMMA_FASTQ_HEADERS_DIR_CONFIG ) + File.separator + accession + FASTQHEADERSFILE_SUFFIX ); - try (BufferedReader br = new BufferedReader( new FileReader( headerFile ) )) { + try ( BufferedReader br = new BufferedReader( new FileReader( headerFile ) ) ) { String line = null; while ( ( line = br.readLine() ) != null ) { @@ -201,7 +200,7 @@ Map readFastqHeaders( String accession ) throws IOException, Fil * Currently only supports GEO * * @param ee ee - * @return local file + * @return local file */ private Collection fetchRawDataFiles( ExpressionExperiment ee ) { RawDataFetcher fetcher = new RawDataFetcher(); @@ -247,7 +246,7 @@ private void getBatchDataFromFASTQHeaders( ExpressionExperiment ee ) throws IOEx "RNA-seq experiment (most likely a single lane)" ); } else { this.auditTrailService.addUpdateEvent( ee, BatchInformationFetchingEvent.class, bf.getFactorValues().size() - + " batches.", "" ); + + " batches." ); } } @@ -305,7 +304,7 @@ private void getBatchDataFromRawFiles( ExpressionExperiment ee, Collection getFastqHeaders( ExpressionExperiment ee ) throws IOException { @@ -366,7 +365,7 @@ private final File locateFASTQheadersForBatchInfo( String accession ) { /** * @param ee ee * @param rnaSeq if the data set is RNAseq - * @return true if it needs processing and data is available + * @return true if it needs processing and data is available */ private boolean needToRun( ExpressionExperiment ee, boolean rnaSeq ) { @@ -426,7 +425,7 @@ private boolean needToRun( ExpressionExperiment ee, boolean rnaSeq ) { * * * @param ee experiment - * @return map of GEO id to headers, including the platform ID + * @return map of GEO id to headers, including the platform ID */ private Map readFastqHeaders( ExpressionExperiment ee ) throws IOException { String accession = ee.getAccession().getAccession(); diff --git a/gemma-core/src/main/java/ubic/gemma/core/analysis/preprocess/svd/SVDServiceHelperImpl.java b/gemma-core/src/main/java/ubic/gemma/core/analysis/preprocess/svd/SVDServiceHelperImpl.java index b827ae699a..191d195f1c 100644 --- a/gemma-core/src/main/java/ubic/gemma/core/analysis/preprocess/svd/SVDServiceHelperImpl.java +++ b/gemma-core/src/main/java/ubic/gemma/core/analysis/preprocess/svd/SVDServiceHelperImpl.java @@ -87,7 +87,7 @@ public class SVDServiceHelperImpl implements SVDServiceHelper { /** * Retrieve relationships between factors, biomaterials and factorvalues. - * + * * @param bioMaterialFactorMap to be populated, of experimental factor -> biomaterial ID -> ID of the factor value * (just an indicator) * @param bm to populate for @@ -589,7 +589,7 @@ private PrincipalComponentAnalysis updatePca( ExpressionExperiment ee, Expressio SVDServiceHelperImpl.MAX_LOADINGS_TO_PERSIST ); ee = expressionExperimentService.thawLite( ee ); // I wish this wasn't needed. - auditTrailService.addUpdateEvent( ee, PCAAnalysisEvent.class, "SVD computation", null ); + auditTrailService.addUpdateEvent( ee, PCAAnalysisEvent.class, "SVD computation" ); return pca; } diff --git a/gemma-core/src/main/java/ubic/gemma/core/analysis/report/ExpressionExperimentReportServiceImpl.java b/gemma-core/src/main/java/ubic/gemma/core/analysis/report/ExpressionExperimentReportServiceImpl.java index 419e40bf4a..c979d52c5e 100644 --- a/gemma-core/src/main/java/ubic/gemma/core/analysis/report/ExpressionExperimentReportServiceImpl.java +++ b/gemma-core/src/main/java/ubic/gemma/core/analysis/report/ExpressionExperimentReportServiceImpl.java @@ -378,13 +378,13 @@ public void recalculateExperimentBatchInfo( ExpressionExperiment ee ) { if ( !Objects.equals( confound, ee.getBatchConfound() ) ) { ee.setBatchConfound( confound ); - auditTrailService.addUpdateEvent( ee, BatchProblemsUpdateEvent.Factory.newInstance(), + auditTrailService.addUpdateEvent( ee, BatchProblemsUpdateEvent.class, ExpressionExperimentReportServiceImpl.NOTE_UPDATED_CONFOUND, confound ); update = true; } if ( !Objects.equals( effect, ee.getBatchEffect() ) ) { - auditTrailService.addUpdateEvent( ee, BatchProblemsUpdateEvent.Factory.newInstance(), + auditTrailService.addUpdateEvent( ee, BatchProblemsUpdateEvent.class, ExpressionExperimentReportServiceImpl.NOTE_UPDATED_EFFECT, effect ); ee.setBatchEffect( effect ); update = true; diff --git a/gemma-core/src/main/java/ubic/gemma/core/analysis/service/OutlierFlaggingServiceImpl.java b/gemma-core/src/main/java/ubic/gemma/core/analysis/service/OutlierFlaggingServiceImpl.java index 8349f5cb69..6c937bc434 100644 --- a/gemma-core/src/main/java/ubic/gemma/core/analysis/service/OutlierFlaggingServiceImpl.java +++ b/gemma-core/src/main/java/ubic/gemma/core/analysis/service/OutlierFlaggingServiceImpl.java @@ -87,7 +87,7 @@ public void markAsMissing( Collection bioAssays ) { return; } ExpressionExperiment expExp = expressionExperimentService.findByBioAssay( bioAssays.iterator().next() ); - auditTrailService.addUpdateEvent( expExp, SampleRemovalEvent.Factory.newInstance(), + auditTrailService.addUpdateEvent( expExp, SampleRemovalEvent.class, bioAssays.size() + " flagged as outliers", StringUtils.join( bioAssays, "," ) ); try { @@ -121,7 +121,7 @@ public void unmarkAsMissing( Collection bioAssays ) { } ExpressionExperiment expExp = expressionExperimentService.findByBioAssay( bioAssays.iterator().next() ); - auditTrailService.addUpdateEvent( expExp, SampleRemovalReversionEvent.Factory.newInstance(), + auditTrailService.addUpdateEvent( expExp, SampleRemovalReversionEvent.class, "Marked " + bioAssays.size() + " bioassays as non-missing", StringUtils.join( bioAssays, "" ) ); assert expExp != null; diff --git a/gemma-core/src/main/java/ubic/gemma/core/loader/expression/DataUpdater.java b/gemma-core/src/main/java/ubic/gemma/core/loader/expression/DataUpdater.java index cadde252e4..0b83947f89 100644 --- a/gemma-core/src/main/java/ubic/gemma/core/loader/expression/DataUpdater.java +++ b/gemma-core/src/main/java/ubic/gemma/core/loader/expression/DataUpdater.java @@ -160,8 +160,7 @@ public void addAffyDataFromAPTOutput( ExpressionExperiment ee, String pathToAptO // Switch ALL bioassays to the target platform. int numSwitched = this.switchBioAssaysToTargetPlatform( ee, targetPlatform, null ); - AuditEventType eventType = ExpressionExperimentPlatformSwitchEvent.Factory.newInstance(); - auditTrailService.addUpdateEvent( ee, eventType, + auditTrailService.addUpdateEvent( ee, ExpressionExperimentPlatformSwitchEvent.class, "Switched " + numSwitched + " bioassays in course of updating vectors using AffyPowerTools (from " + originalPlatform.getShortName() + " to " + targetPlatform.getShortName() + ")" ); } @@ -381,7 +380,7 @@ public void reprocessAffyDataFromCel( ExpressionExperiment ee ) { isOnMergedPlatform = merged.get( ad.getId() ); if ( isOnMergedPlatform && associatedPlats.size() > 1 ) { // should be rare; normally after merge we have just one platform - auditTrailService.addUpdateEvent( ee, FailedDataReplacedEvent.Factory.newInstance(), "Cannot reprocess datasets that include a " + auditTrailService.addUpdateEvent( ee, FailedDataReplacedEvent.class, "Cannot reprocess datasets that include a " + "merged platform and is still on multiple platforms" ); throw new IllegalArgumentException( "Cannot reprocess datasets that include a " @@ -396,7 +395,7 @@ public void reprocessAffyDataFromCel( ExpressionExperiment ee ) { Collection files = f.fetch( ee.getAccession().getAccession() ); if ( files == null || files.isEmpty() ) { - auditTrailService.addUpdateEvent( ee, FailedDataReplacedEvent.Factory.newInstance(), "Data was apparently not available" ); + auditTrailService.addUpdateEvent( ee, FailedDataReplacedEvent.class, "Data was apparently not available" ); throw new RuntimeException( "Data was apparently not available" ); } ee = experimentService.thawLite( ee ); @@ -468,8 +467,7 @@ public void reprocessAffyDataFromCel( ExpressionExperiment ee ) { .info( "Switched " + numSwitched + " bioassays from " + originalPlatform.getShortName() + " to " + targetPlatform.getShortName() ); - AuditEventType eventType = ExpressionExperimentPlatformSwitchEvent.Factory.newInstance(); - auditTrailService.addUpdateEvent( ee, eventType, "Switched " + numSwitched + auditTrailService.addUpdateEvent( ee, ExpressionExperimentPlatformSwitchEvent.class, "Switched " + numSwitched + " bioassays in course of updating vectors using AffyPowerTools (from " + originalPlatform .getShortName() + " to " + targetPlatform.getShortName() + ")" ); @@ -656,8 +654,7 @@ ExpressionExperiment replaceData( ExpressionExperiment ee, ArrayDesign targetPla this.switchBioAssaysToTargetPlatform( ee, targetPlatform, ee.getBioAssays() ); - AuditEventType eventType = ExpressionExperimentPlatformSwitchEvent.Factory.newInstance(); - auditTrailService.addUpdateEvent( ee, eventType, + auditTrailService.addUpdateEvent( ee, ExpressionExperimentPlatformSwitchEvent.class, "Switched in course of updating vectors using data input (from " + originalArrayDesign .getShortName() + " to " + targetPlatform.getShortName() + ")" ); } @@ -708,12 +705,12 @@ private void addTotalCountInformation( ExpressionExperiment ee, ExpressionDataDo * @param note note */ private void audit( ExpressionExperiment ee, String note, boolean replace ) { - AuditEventType eventType; + Class eventType; if ( replace ) { - eventType = DataReplacedEvent.Factory.newInstance(); + eventType = DataReplacedEvent.class; } else { - eventType = DataAddedEvent.Factory.newInstance(); + eventType = DataAddedEvent.class; } auditTrailService.addUpdateEvent( ee, eventType, note ); diff --git a/gemma-core/src/main/java/ubic/gemma/core/loader/expression/ExperimentPlatformSwitchHelperServiceImpl.java b/gemma-core/src/main/java/ubic/gemma/core/loader/expression/ExperimentPlatformSwitchHelperServiceImpl.java index 14e0f32868..413902a1ce 100644 --- a/gemma-core/src/main/java/ubic/gemma/core/loader/expression/ExperimentPlatformSwitchHelperServiceImpl.java +++ b/gemma-core/src/main/java/ubic/gemma/core/loader/expression/ExperimentPlatformSwitchHelperServiceImpl.java @@ -64,8 +64,7 @@ public void persist( ExpressionExperiment ee, ArrayDesign arrayDesign ) { } private void audit( ExpressionExperiment ee, String note ) { - AuditEventType eventType = ExpressionExperimentPlatformSwitchEvent.Factory.newInstance(); - auditTrailService.addUpdateEvent( ee, eventType, note ); + auditTrailService.addUpdateEvent( ee, ExpressionExperimentPlatformSwitchEvent.class, note ); } } diff --git a/gemma-core/src/main/java/ubic/gemma/model/common/auditAndSecurity/AuditEvent.java b/gemma-core/src/main/java/ubic/gemma/model/common/auditAndSecurity/AuditEvent.java index c4dc45387b..3ee299f784 100644 --- a/gemma-core/src/main/java/ubic/gemma/model/common/auditAndSecurity/AuditEvent.java +++ b/gemma-core/src/main/java/ubic/gemma/model/common/auditAndSecurity/AuditEvent.java @@ -19,6 +19,7 @@ package ubic.gemma.model.common.auditAndSecurity; +import lombok.ToString; import org.apache.commons.lang3.reflect.FieldUtils; import ubic.gemma.model.common.Identifiable; import ubic.gemma.model.common.auditAndSecurity.eventType.AuditEventType; @@ -29,16 +30,17 @@ /** * An event in the life of an object. */ +@ToString(of = { "id", "eventType", "action", "date", "performer" }) public class AuditEvent implements Identifiable, Serializable { private static final long serialVersionUID = -1212093157703833905L; - private final AuditAction action = null; - private final Date date = null; - private final String detail = null; - private final AuditEventType eventType = null; - private final Long id = null; - private final String note = null; - private final User performer = null; + private AuditAction action = null; + private Date date = null; + private String detail = null; + private AuditEventType eventType = null; + private Long id = null; + private String note = null; + private User performer = null; @Override public int hashCode() { @@ -93,30 +95,18 @@ public User getPerformer() { @SuppressWarnings({ "unused", "WeakerAccess" }) // Possible external use public static final class Factory { - - public static AuditEvent newInstance() { - return new AuditEvent(); - } - + /** + * Create a new, immutable audit event. + */ public static AuditEvent newInstance( Date date, AuditAction action, String note, String detail, User performer, AuditEventType eventType ) { - final AuditEvent entity = new AuditEvent(); - try { - if ( date != null ) - FieldUtils.writeField( entity, "date", date, true ); - if ( action != null ) - FieldUtils.writeField( entity, "action", action, true ); - if ( note != null ) - FieldUtils.writeField( entity, "note", note, true ); - if ( detail != null ) - FieldUtils.writeField( entity, "detail", detail, true ); - if ( performer != null ) - FieldUtils.writeField( entity, "performer", performer, true ); - if ( eventType != null ) - FieldUtils.writeField( entity, "eventType", eventType, true ); - } catch ( IllegalAccessException e ) { - e.printStackTrace(); - } + AuditEvent entity = new AuditEvent(); + entity.date = date; + entity.action = action; + entity.note = note; + entity.detail = detail; + entity.performer = performer; + entity.eventType = eventType; return entity; } } diff --git a/gemma-core/src/main/java/ubic/gemma/model/common/auditAndSecurity/eventType/AlignmentBasedGeneMappingEvent.java b/gemma-core/src/main/java/ubic/gemma/model/common/auditAndSecurity/eventType/AlignmentBasedGeneMappingEvent.java index a899264568..e21377d03e 100644 --- a/gemma-core/src/main/java/ubic/gemma/model/common/auditAndSecurity/eventType/AlignmentBasedGeneMappingEvent.java +++ b/gemma-core/src/main/java/ubic/gemma/model/common/auditAndSecurity/eventType/AlignmentBasedGeneMappingEvent.java @@ -29,21 +29,4 @@ public class AlignmentBasedGeneMappingEvent */ private static final long serialVersionUID = 7667960927701046528L; - /** - * No-arg constructor added to satisfy javabean contract - * - * @author Paul - */ - public AlignmentBasedGeneMappingEvent() { - } - - @SuppressWarnings({ "unused", "WeakerAccess" }) // Possible external use - public static final class Factory { - - public static ubic.gemma.model.common.auditAndSecurity.eventType.AlignmentBasedGeneMappingEvent newInstance() { - return new ubic.gemma.model.common.auditAndSecurity.eventType.AlignmentBasedGeneMappingEvent(); - } - - } - } \ No newline at end of file diff --git a/gemma-core/src/main/java/ubic/gemma/model/common/auditAndSecurity/eventType/AnnotationBasedGeneMappingEvent.java b/gemma-core/src/main/java/ubic/gemma/model/common/auditAndSecurity/eventType/AnnotationBasedGeneMappingEvent.java index 35d6beb8ea..1f5004aa40 100644 --- a/gemma-core/src/main/java/ubic/gemma/model/common/auditAndSecurity/eventType/AnnotationBasedGeneMappingEvent.java +++ b/gemma-core/src/main/java/ubic/gemma/model/common/auditAndSecurity/eventType/AnnotationBasedGeneMappingEvent.java @@ -29,21 +29,4 @@ public class AnnotationBasedGeneMappingEvent */ private static final long serialVersionUID = 6216699496744292404L; - /** - * No-arg constructor added to satisfy javabean contract - * - * @author Paul - */ - public AnnotationBasedGeneMappingEvent() { - } - - @SuppressWarnings({ "unused", "WeakerAccess" }) // Possible external use - public static final class Factory { - - public static ubic.gemma.model.common.auditAndSecurity.eventType.AnnotationBasedGeneMappingEvent newInstance() { - return new ubic.gemma.model.common.auditAndSecurity.eventType.AnnotationBasedGeneMappingEvent(); - } - - } - } \ No newline at end of file diff --git a/gemma-core/src/main/java/ubic/gemma/model/common/auditAndSecurity/eventType/AnnotationEvent.java b/gemma-core/src/main/java/ubic/gemma/model/common/auditAndSecurity/eventType/AnnotationEvent.java index 025255fa5a..ffaa7b9304 100644 --- a/gemma-core/src/main/java/ubic/gemma/model/common/auditAndSecurity/eventType/AnnotationEvent.java +++ b/gemma-core/src/main/java/ubic/gemma/model/common/auditAndSecurity/eventType/AnnotationEvent.java @@ -25,12 +25,4 @@ public abstract class AnnotationEvent extends ubic.gemma.model.common.auditAndSe */ private static final long serialVersionUID = -7488448191665314917L; - /** - * No-arg constructor added to satisfy javabean contract - * - * @author Paul - */ - public AnnotationEvent() { - } - } \ No newline at end of file diff --git a/gemma-core/src/main/java/ubic/gemma/model/common/auditAndSecurity/eventType/ArrayDesignAnalysisEvent.java b/gemma-core/src/main/java/ubic/gemma/model/common/auditAndSecurity/eventType/ArrayDesignAnalysisEvent.java index 726eb90221..229a376bdd 100644 --- a/gemma-core/src/main/java/ubic/gemma/model/common/auditAndSecurity/eventType/ArrayDesignAnalysisEvent.java +++ b/gemma-core/src/main/java/ubic/gemma/model/common/auditAndSecurity/eventType/ArrayDesignAnalysisEvent.java @@ -25,12 +25,4 @@ public abstract class ArrayDesignAnalysisEvent extends AuditEventType { private static final long serialVersionUID = -8391873112717801492L; - /** - * No-arg constructor added to satisfy javabean contract - * - * @author Paul - */ - public ArrayDesignAnalysisEvent() { - } - } \ No newline at end of file diff --git a/gemma-core/src/main/java/ubic/gemma/model/common/auditAndSecurity/eventType/ArrayDesignGeneMappingEvent.java b/gemma-core/src/main/java/ubic/gemma/model/common/auditAndSecurity/eventType/ArrayDesignGeneMappingEvent.java index f78363c0be..ed4dc29e11 100644 --- a/gemma-core/src/main/java/ubic/gemma/model/common/auditAndSecurity/eventType/ArrayDesignGeneMappingEvent.java +++ b/gemma-core/src/main/java/ubic/gemma/model/common/auditAndSecurity/eventType/ArrayDesignGeneMappingEvent.java @@ -29,21 +29,4 @@ public class ArrayDesignGeneMappingEvent */ private static final long serialVersionUID = -7566135203525054499L; - /** - * No-arg constructor added to satisfy javabean contract - * - * @author Paul - */ - public ArrayDesignGeneMappingEvent() { - } - - @SuppressWarnings({ "unused", "WeakerAccess" }) // Possible external use - public static final class Factory { - - public static ubic.gemma.model.common.auditAndSecurity.eventType.ArrayDesignGeneMappingEvent newInstance() { - return new ubic.gemma.model.common.auditAndSecurity.eventType.ArrayDesignGeneMappingEvent(); - } - - } - } \ No newline at end of file diff --git a/gemma-core/src/main/java/ubic/gemma/model/common/auditAndSecurity/eventType/ArrayDesignMergeEvent.java b/gemma-core/src/main/java/ubic/gemma/model/common/auditAndSecurity/eventType/ArrayDesignMergeEvent.java index 6153c075d7..59cd82c543 100644 --- a/gemma-core/src/main/java/ubic/gemma/model/common/auditAndSecurity/eventType/ArrayDesignMergeEvent.java +++ b/gemma-core/src/main/java/ubic/gemma/model/common/auditAndSecurity/eventType/ArrayDesignMergeEvent.java @@ -25,21 +25,4 @@ public class ArrayDesignMergeEvent extends ubic.gemma.model.common.auditAndSecur */ private static final long serialVersionUID = 8243373027784116451L; - /** - * No-arg constructor added to satisfy javabean contract - * - * @author Paul - */ - public ArrayDesignMergeEvent() { - } - - @SuppressWarnings({ "unused", "WeakerAccess" }) // Possible external use - public static final class Factory { - - public static ubic.gemma.model.common.auditAndSecurity.eventType.ArrayDesignMergeEvent newInstance() { - return new ubic.gemma.model.common.auditAndSecurity.eventType.ArrayDesignMergeEvent(); - } - - } - } \ No newline at end of file diff --git a/gemma-core/src/main/java/ubic/gemma/model/common/auditAndSecurity/eventType/ArrayDesignProbeRenamingEvent.java b/gemma-core/src/main/java/ubic/gemma/model/common/auditAndSecurity/eventType/ArrayDesignProbeRenamingEvent.java index 841e25ddab..ae90ff0fc8 100644 --- a/gemma-core/src/main/java/ubic/gemma/model/common/auditAndSecurity/eventType/ArrayDesignProbeRenamingEvent.java +++ b/gemma-core/src/main/java/ubic/gemma/model/common/auditAndSecurity/eventType/ArrayDesignProbeRenamingEvent.java @@ -32,21 +32,4 @@ public class ArrayDesignProbeRenamingEvent */ private static final long serialVersionUID = -5458770150436736181L; - /** - * No-arg constructor added to satisfy javabean contract - * - * @author Paul - */ - public ArrayDesignProbeRenamingEvent() { - } - - @SuppressWarnings({ "unused", "WeakerAccess" }) // Possible external use - public static final class Factory { - - public static ubic.gemma.model.common.auditAndSecurity.eventType.ArrayDesignProbeRenamingEvent newInstance() { - return new ubic.gemma.model.common.auditAndSecurity.eventType.ArrayDesignProbeRenamingEvent(); - } - - } - } \ No newline at end of file diff --git a/gemma-core/src/main/java/ubic/gemma/model/common/auditAndSecurity/eventType/ArrayDesignRepeatAnalysisEvent.java b/gemma-core/src/main/java/ubic/gemma/model/common/auditAndSecurity/eventType/ArrayDesignRepeatAnalysisEvent.java index 2cc761a351..3a917cb90a 100644 --- a/gemma-core/src/main/java/ubic/gemma/model/common/auditAndSecurity/eventType/ArrayDesignRepeatAnalysisEvent.java +++ b/gemma-core/src/main/java/ubic/gemma/model/common/auditAndSecurity/eventType/ArrayDesignRepeatAnalysisEvent.java @@ -26,21 +26,4 @@ public class ArrayDesignRepeatAnalysisEvent */ private static final long serialVersionUID = -1315594279851821201L; - /** - * No-arg constructor added to satisfy javabean contract - * - * @author Paul - */ - public ArrayDesignRepeatAnalysisEvent() { - } - - @SuppressWarnings({ "unused", "WeakerAccess" }) // Possible external use - public static final class Factory { - - public static ubic.gemma.model.common.auditAndSecurity.eventType.ArrayDesignRepeatAnalysisEvent newInstance() { - return new ubic.gemma.model.common.auditAndSecurity.eventType.ArrayDesignRepeatAnalysisEvent(); - } - - } - } \ No newline at end of file diff --git a/gemma-core/src/main/java/ubic/gemma/model/common/auditAndSecurity/eventType/ArrayDesignSequenceAnalysisEvent.java b/gemma-core/src/main/java/ubic/gemma/model/common/auditAndSecurity/eventType/ArrayDesignSequenceAnalysisEvent.java index 7d13b7a614..99bd04b2da 100644 --- a/gemma-core/src/main/java/ubic/gemma/model/common/auditAndSecurity/eventType/ArrayDesignSequenceAnalysisEvent.java +++ b/gemma-core/src/main/java/ubic/gemma/model/common/auditAndSecurity/eventType/ArrayDesignSequenceAnalysisEvent.java @@ -31,21 +31,4 @@ public class ArrayDesignSequenceAnalysisEvent */ private static final long serialVersionUID = 8487897002282121437L; - /** - * No-arg constructor added to satisfy javabean contract - * - * @author Paul - */ - public ArrayDesignSequenceAnalysisEvent() { - } - - @SuppressWarnings({ "unused", "WeakerAccess" }) // Possible external use - public static final class Factory { - - public static ubic.gemma.model.common.auditAndSecurity.eventType.ArrayDesignSequenceAnalysisEvent newInstance() { - return new ubic.gemma.model.common.auditAndSecurity.eventType.ArrayDesignSequenceAnalysisEvent(); - } - - } - } \ No newline at end of file diff --git a/gemma-core/src/main/java/ubic/gemma/model/common/auditAndSecurity/eventType/ArrayDesignSequenceRemoveEvent.java b/gemma-core/src/main/java/ubic/gemma/model/common/auditAndSecurity/eventType/ArrayDesignSequenceRemoveEvent.java index 202baec7ac..a803fc9094 100644 --- a/gemma-core/src/main/java/ubic/gemma/model/common/auditAndSecurity/eventType/ArrayDesignSequenceRemoveEvent.java +++ b/gemma-core/src/main/java/ubic/gemma/model/common/auditAndSecurity/eventType/ArrayDesignSequenceRemoveEvent.java @@ -34,21 +34,4 @@ public class ArrayDesignSequenceRemoveEvent */ private static final long serialVersionUID = -3044700012305059422L; - /** - * No-arg constructor added to satisfy javabean contract - * - * @author Paul - */ - public ArrayDesignSequenceRemoveEvent() { - } - - @SuppressWarnings({ "unused", "WeakerAccess" }) // Possible external use - public static final class Factory { - - public static ubic.gemma.model.common.auditAndSecurity.eventType.ArrayDesignSequenceRemoveEvent newInstance() { - return new ubic.gemma.model.common.auditAndSecurity.eventType.ArrayDesignSequenceRemoveEvent(); - } - - } - } \ No newline at end of file diff --git a/gemma-core/src/main/java/ubic/gemma/model/common/auditAndSecurity/eventType/ArrayDesignSequenceUpdateEvent.java b/gemma-core/src/main/java/ubic/gemma/model/common/auditAndSecurity/eventType/ArrayDesignSequenceUpdateEvent.java index 5bd62784a6..050de2d6fe 100644 --- a/gemma-core/src/main/java/ubic/gemma/model/common/auditAndSecurity/eventType/ArrayDesignSequenceUpdateEvent.java +++ b/gemma-core/src/main/java/ubic/gemma/model/common/auditAndSecurity/eventType/ArrayDesignSequenceUpdateEvent.java @@ -31,21 +31,4 @@ public class ArrayDesignSequenceUpdateEvent */ private static final long serialVersionUID = 2502989996801972836L; - /** - * No-arg constructor added to satisfy javabean contract - * - * @author Paul - */ - public ArrayDesignSequenceUpdateEvent() { - } - - @SuppressWarnings({ "unused", "WeakerAccess" }) // Possible external use - public static final class Factory { - - public static ubic.gemma.model.common.auditAndSecurity.eventType.ArrayDesignSequenceUpdateEvent newInstance() { - return new ubic.gemma.model.common.auditAndSecurity.eventType.ArrayDesignSequenceUpdateEvent(); - } - - } - } \ No newline at end of file diff --git a/gemma-core/src/main/java/ubic/gemma/model/common/auditAndSecurity/eventType/ArrayDesignSubsumeCheckEvent.java b/gemma-core/src/main/java/ubic/gemma/model/common/auditAndSecurity/eventType/ArrayDesignSubsumeCheckEvent.java index c694ddc527..214eb75301 100644 --- a/gemma-core/src/main/java/ubic/gemma/model/common/auditAndSecurity/eventType/ArrayDesignSubsumeCheckEvent.java +++ b/gemma-core/src/main/java/ubic/gemma/model/common/auditAndSecurity/eventType/ArrayDesignSubsumeCheckEvent.java @@ -26,21 +26,4 @@ public class ArrayDesignSubsumeCheckEvent */ private static final long serialVersionUID = -6105886398033742202L; - /** - * No-arg constructor added to satisfy javabean contract - * - * @author Paul - */ - public ArrayDesignSubsumeCheckEvent() { - } - - @SuppressWarnings({ "unused", "WeakerAccess" }) // Possible external use - public static final class Factory { - - public static ubic.gemma.model.common.auditAndSecurity.eventType.ArrayDesignSubsumeCheckEvent newInstance() { - return new ubic.gemma.model.common.auditAndSecurity.eventType.ArrayDesignSubsumeCheckEvent(); - } - - } - } \ No newline at end of file diff --git a/gemma-core/src/main/java/ubic/gemma/model/common/auditAndSecurity/eventType/AuditEventType.java b/gemma-core/src/main/java/ubic/gemma/model/common/auditAndSecurity/eventType/AuditEventType.java index b7cf09c8c2..9cbb2dfa19 100644 --- a/gemma-core/src/main/java/ubic/gemma/model/common/auditAndSecurity/eventType/AuditEventType.java +++ b/gemma-core/src/main/java/ubic/gemma/model/common/auditAndSecurity/eventType/AuditEventType.java @@ -18,26 +18,24 @@ */ package ubic.gemma.model.common.auditAndSecurity.eventType; +import lombok.EqualsAndHashCode; +import ubic.gemma.model.common.Auditable; import ubic.gemma.model.common.auditAndSecurity.curation.Curatable; import java.io.Serializable; import java.util.Date; +import java.util.Objects; public abstract class AuditEventType implements Serializable { private static final long serialVersionUID = -7397754091918396538L; - final private Long id = null; + + private Long id; /** - * No-arg constructor added to satisfy javabean contract - * - * @author Paul + * @deprecated you should never use this property, rely instead on the actual type via {@link #getClass()}. */ - @SuppressWarnings("WeakerAccess") // required by spring - public AuditEventType() { - } - - @SuppressWarnings({ "unused", "WeakerAccess" }) // Possible external use + @Deprecated public Long getId() { return this.id; } @@ -53,23 +51,16 @@ public void updateLastUpdated( Curatable curatable ) { @Override public int hashCode() { - int hashCode = 0; - //noinspection ConstantConditions // Hibernate populates id through reflection - hashCode = 29 * ( hashCode + ( id == null ? 0 : id.hashCode() ) ); - return hashCode; + return Objects.hashCode( getClass() ); } @Override public boolean equals( Object object ) { - if ( this == object ) { - return true; - } - if ( !( object instanceof AuditEventType ) ) { - return false; - } - final AuditEventType that = ( AuditEventType ) object; - //noinspection ConstantConditions // Hibernate populates id through reflection - return this.id != null && that.getId() != null && this.id.equals( that.getId() ); + return object != null && Objects.equals( getClass(), object.getClass() ); } + @Override + public String toString() { + return this.getClass().getName(); + } } \ No newline at end of file diff --git a/gemma-core/src/main/java/ubic/gemma/model/common/auditAndSecurity/eventType/AutomatedAnnotationEvent.java b/gemma-core/src/main/java/ubic/gemma/model/common/auditAndSecurity/eventType/AutomatedAnnotationEvent.java index 9d3cff5a77..12721e5819 100644 --- a/gemma-core/src/main/java/ubic/gemma/model/common/auditAndSecurity/eventType/AutomatedAnnotationEvent.java +++ b/gemma-core/src/main/java/ubic/gemma/model/common/auditAndSecurity/eventType/AutomatedAnnotationEvent.java @@ -32,22 +32,4 @@ public class AutomatedAnnotationEvent extends ubic.gemma.model.common.auditAndSe */ private static final long serialVersionUID = 8510568858539453569L; - /** - * No-arg constructor added to satisfy javabean contract - * - * @author Paul - */ - public AutomatedAnnotationEvent() { - } - - @SuppressWarnings({ "unused", "WeakerAccess" }) // Still present in database - @Deprecated - public static final class Factory { - - public static ubic.gemma.model.common.auditAndSecurity.eventType.AutomatedAnnotationEvent newInstance() { - return new ubic.gemma.model.common.auditAndSecurity.eventType.AutomatedAnnotationEvent(); - } - - } - } \ No newline at end of file diff --git a/gemma-core/src/main/java/ubic/gemma/model/common/auditAndSecurity/eventType/BatchCorrectionEvent.java b/gemma-core/src/main/java/ubic/gemma/model/common/auditAndSecurity/eventType/BatchCorrectionEvent.java index 151f4ec259..865bd08f73 100644 --- a/gemma-core/src/main/java/ubic/gemma/model/common/auditAndSecurity/eventType/BatchCorrectionEvent.java +++ b/gemma-core/src/main/java/ubic/gemma/model/common/auditAndSecurity/eventType/BatchCorrectionEvent.java @@ -26,20 +26,4 @@ public class BatchCorrectionEvent extends ExpressionExperimentAnalysisEvent { private static final long serialVersionUID = -3061045506228031201L; - /** - * No-arg constructor added to satisfy javabean contract - * - * @author Paul - */ - public BatchCorrectionEvent() { - } - - @SuppressWarnings({ "unused", "WeakerAccess" }) // Possible external use - public static final class Factory { - - public static ubic.gemma.model.common.auditAndSecurity.eventType.BatchCorrectionEvent newInstance() { - return new ubic.gemma.model.common.auditAndSecurity.eventType.BatchCorrectionEvent(); - } - - } } diff --git a/gemma-core/src/main/java/ubic/gemma/model/common/auditAndSecurity/eventType/BatchInformationFetchingEvent.java b/gemma-core/src/main/java/ubic/gemma/model/common/auditAndSecurity/eventType/BatchInformationFetchingEvent.java index a5af6bf771..34a853086c 100644 --- a/gemma-core/src/main/java/ubic/gemma/model/common/auditAndSecurity/eventType/BatchInformationFetchingEvent.java +++ b/gemma-core/src/main/java/ubic/gemma/model/common/auditAndSecurity/eventType/BatchInformationFetchingEvent.java @@ -31,21 +31,4 @@ public class BatchInformationFetchingEvent */ private static final long serialVersionUID = 4635587632131568136L; - /** - * No-arg constructor added to satisfy javabean contract - * - * @author Paul - */ - public BatchInformationFetchingEvent() { - } - - @SuppressWarnings({ "unused", "WeakerAccess" }) // Possible external use - public static final class Factory { - - public static ubic.gemma.model.common.auditAndSecurity.eventType.BatchInformationFetchingEvent newInstance() { - return new ubic.gemma.model.common.auditAndSecurity.eventType.BatchInformationFetchingEvent(); - } - - } - } \ No newline at end of file diff --git a/gemma-core/src/main/java/ubic/gemma/model/common/auditAndSecurity/eventType/BatchProblemsUpdateEvent.java b/gemma-core/src/main/java/ubic/gemma/model/common/auditAndSecurity/eventType/BatchProblemsUpdateEvent.java index ddd440dc5c..5e2b193229 100644 --- a/gemma-core/src/main/java/ubic/gemma/model/common/auditAndSecurity/eventType/BatchProblemsUpdateEvent.java +++ b/gemma-core/src/main/java/ubic/gemma/model/common/auditAndSecurity/eventType/BatchProblemsUpdateEvent.java @@ -26,20 +26,4 @@ public class BatchProblemsUpdateEvent extends ExpressionExperimentAnalysisEvent private static final long serialVersionUID = -3061045506228031201L; - /** - * No-arg constructor added to satisfy javabean contract - * - * @author Paul - */ - public BatchProblemsUpdateEvent() { - } - - @SuppressWarnings({ "unused", "WeakerAccess" }) // Possible external use - public static final class Factory { - - public static BatchProblemsUpdateEvent newInstance() { - return new BatchProblemsUpdateEvent(); - } - - } } diff --git a/gemma-core/src/main/java/ubic/gemma/model/common/auditAndSecurity/eventType/BioMaterialMappingUpdate.java b/gemma-core/src/main/java/ubic/gemma/model/common/auditAndSecurity/eventType/BioMaterialMappingUpdate.java index d0f7465a0e..7b6e944acc 100644 --- a/gemma-core/src/main/java/ubic/gemma/model/common/auditAndSecurity/eventType/BioMaterialMappingUpdate.java +++ b/gemma-core/src/main/java/ubic/gemma/model/common/auditAndSecurity/eventType/BioMaterialMappingUpdate.java @@ -31,21 +31,4 @@ public class BioMaterialMappingUpdate */ private static final long serialVersionUID = -4390321148453980797L; - /** - * No-arg constructor added to satisfy javabean contract - * - * @author Paul - */ - public BioMaterialMappingUpdate() { - } - - @SuppressWarnings({ "unused", "WeakerAccess" }) // Possible external use - public static final class Factory { - - public static ubic.gemma.model.common.auditAndSecurity.eventType.BioMaterialMappingUpdate newInstance() { - return new ubic.gemma.model.common.auditAndSecurity.eventType.BioMaterialMappingUpdate(); - } - - } - } \ No newline at end of file diff --git a/gemma-core/src/main/java/ubic/gemma/model/common/auditAndSecurity/eventType/CommentedEvent.java b/gemma-core/src/main/java/ubic/gemma/model/common/auditAndSecurity/eventType/CommentedEvent.java index f8afd6c361..cf30023e46 100644 --- a/gemma-core/src/main/java/ubic/gemma/model/common/auditAndSecurity/eventType/CommentedEvent.java +++ b/gemma-core/src/main/java/ubic/gemma/model/common/auditAndSecurity/eventType/CommentedEvent.java @@ -31,21 +31,4 @@ public class CommentedEvent extends ubic.gemma.model.common.auditAndSecurity.eve */ private static final long serialVersionUID = -9053488530090657730L; - /** - * No-arg constructor added to satisfy javabean contract - * - * @author Paul - */ - public CommentedEvent() { - } - - @SuppressWarnings({ "unused", "WeakerAccess" }) // Possible external use - public static final class Factory { - - public static ubic.gemma.model.common.auditAndSecurity.eventType.CommentedEvent newInstance() { - return new ubic.gemma.model.common.auditAndSecurity.eventType.CommentedEvent(); - } - - } - } \ No newline at end of file diff --git a/gemma-core/src/main/java/ubic/gemma/model/common/auditAndSecurity/eventType/CurationDetailsEvent.java b/gemma-core/src/main/java/ubic/gemma/model/common/auditAndSecurity/eventType/CurationDetailsEvent.java index 4bfc5af535..578b031802 100644 --- a/gemma-core/src/main/java/ubic/gemma/model/common/auditAndSecurity/eventType/CurationDetailsEvent.java +++ b/gemma-core/src/main/java/ubic/gemma/model/common/auditAndSecurity/eventType/CurationDetailsEvent.java @@ -37,12 +37,6 @@ public abstract class CurationDetailsEvent extends AuditEventType { */ private static final long serialVersionUID = 6621758826080039878L; - /** - * No-arg constructor added to satisfy javabean contract - */ - public CurationDetailsEvent() { - } - /** * This method should be overloaded in all of the extensions of this class to do the specific actions they wre designed for. * @@ -50,21 +44,4 @@ public CurationDetailsEvent() { * @param auditEvent the audit event containing information about the action that should be made. */ public abstract void setCurationDetails( Curatable curatable, AuditEvent auditEvent ); - - /** - * Throws an exception, as CurationDetailsEvent can not be instantiated. - */ - @SuppressWarnings({ "unused", "WeakerAccess" }) // Possible external use - public static final class Factory { - /** - * @return Throws an UnsupportedOperationException - * {@link CurationDetailsEvent}. - */ - public static CurationDetailsEvent newInstance() { - throw new UnsupportedOperationException( - "CurationDetailsEvent can not be instantiated. It only serves as a wrapper class for its descendants. Use a more specific event type." ); - } - - } - } \ No newline at end of file diff --git a/gemma-core/src/main/java/ubic/gemma/model/common/auditAndSecurity/eventType/CurationNoteUpdateEvent.java b/gemma-core/src/main/java/ubic/gemma/model/common/auditAndSecurity/eventType/CurationNoteUpdateEvent.java index c979a7cf2e..8539869615 100644 --- a/gemma-core/src/main/java/ubic/gemma/model/common/auditAndSecurity/eventType/CurationNoteUpdateEvent.java +++ b/gemma-core/src/main/java/ubic/gemma/model/common/auditAndSecurity/eventType/CurationNoteUpdateEvent.java @@ -35,12 +35,6 @@ public class CurationNoteUpdateEvent extends CurationDetailsEvent { */ private static final long serialVersionUID = -1180281595664872508L; - /** - * No-arg constructor added to satisfy javabean contract - */ - public CurationNoteUpdateEvent() { - } - /** * @param curatable the curatable object to do the curation action on. * @param auditEvent the audit event containing information about the action that should be made. @@ -53,13 +47,4 @@ public void setCurationDetails( Curatable curatable, AuditEvent auditEvent ) { curatable.getCurationDetails().setLastNoteUpdateEvent( auditEvent ); } - @SuppressWarnings({ "unused", "WeakerAccess" }) // Possible external use - public static final class Factory { - - public static CurationNoteUpdateEvent newInstance() { - return new CurationNoteUpdateEvent(); - } - - } - } \ No newline at end of file diff --git a/gemma-core/src/main/java/ubic/gemma/model/common/auditAndSecurity/eventType/DataAddedEvent.java b/gemma-core/src/main/java/ubic/gemma/model/common/auditAndSecurity/eventType/DataAddedEvent.java index 767fe2ea26..492c0bba8c 100644 --- a/gemma-core/src/main/java/ubic/gemma/model/common/auditAndSecurity/eventType/DataAddedEvent.java +++ b/gemma-core/src/main/java/ubic/gemma/model/common/auditAndSecurity/eventType/DataAddedEvent.java @@ -31,21 +31,4 @@ public class DataAddedEvent */ private static final long serialVersionUID = -492849538043540166L; - /** - * No-arg constructor added to satisfy javabean contract - * - * @author Paul - */ - public DataAddedEvent() { - } - - @SuppressWarnings({ "unused", "WeakerAccess" }) // Possible external use - public static final class Factory { - - public static ubic.gemma.model.common.auditAndSecurity.eventType.DataAddedEvent newInstance() { - return new ubic.gemma.model.common.auditAndSecurity.eventType.DataAddedEvent(); - } - - } - } \ No newline at end of file diff --git a/gemma-core/src/main/java/ubic/gemma/model/common/auditAndSecurity/eventType/DataReplacedEvent.java b/gemma-core/src/main/java/ubic/gemma/model/common/auditAndSecurity/eventType/DataReplacedEvent.java index 7df10455fe..3acb153e1a 100644 --- a/gemma-core/src/main/java/ubic/gemma/model/common/auditAndSecurity/eventType/DataReplacedEvent.java +++ b/gemma-core/src/main/java/ubic/gemma/model/common/auditAndSecurity/eventType/DataReplacedEvent.java @@ -32,21 +32,4 @@ public class DataReplacedEvent */ private static final long serialVersionUID = -3239733956797015820L; - /** - * No-arg constructor added to satisfy javabean contract - * - * @author Paul - */ - public DataReplacedEvent() { - } - - @SuppressWarnings({ "unused", "WeakerAccess" }) // Possible external use - public static final class Factory { - - public static ubic.gemma.model.common.auditAndSecurity.eventType.DataReplacedEvent newInstance() { - return new ubic.gemma.model.common.auditAndSecurity.eventType.DataReplacedEvent(); - } - - } - } \ No newline at end of file diff --git a/gemma-core/src/main/java/ubic/gemma/model/common/auditAndSecurity/eventType/DifferentialExpressionAnalysisEvent.java b/gemma-core/src/main/java/ubic/gemma/model/common/auditAndSecurity/eventType/DifferentialExpressionAnalysisEvent.java index 48f463120e..a74900758d 100644 --- a/gemma-core/src/main/java/ubic/gemma/model/common/auditAndSecurity/eventType/DifferentialExpressionAnalysisEvent.java +++ b/gemma-core/src/main/java/ubic/gemma/model/common/auditAndSecurity/eventType/DifferentialExpressionAnalysisEvent.java @@ -31,21 +31,4 @@ public class DifferentialExpressionAnalysisEvent */ private static final long serialVersionUID = -2254124666542924604L; - /** - * No-arg constructor added to satisfy javabean contract - * - * @author Paul - */ - public DifferentialExpressionAnalysisEvent() { - } - - @SuppressWarnings({ "unused", "WeakerAccess" }) // Possible external use - public static final class Factory { - - public static ubic.gemma.model.common.auditAndSecurity.eventType.DifferentialExpressionAnalysisEvent newInstance() { - return new ubic.gemma.model.common.auditAndSecurity.eventType.DifferentialExpressionAnalysisEvent(); - } - - } - } \ No newline at end of file diff --git a/gemma-core/src/main/java/ubic/gemma/model/common/auditAndSecurity/eventType/DoesNotNeedAttentionEvent.java b/gemma-core/src/main/java/ubic/gemma/model/common/auditAndSecurity/eventType/DoesNotNeedAttentionEvent.java index bfa2bbf2b5..ec475f419b 100644 --- a/gemma-core/src/main/java/ubic/gemma/model/common/auditAndSecurity/eventType/DoesNotNeedAttentionEvent.java +++ b/gemma-core/src/main/java/ubic/gemma/model/common/auditAndSecurity/eventType/DoesNotNeedAttentionEvent.java @@ -45,14 +45,4 @@ public void setCurationDetails( Curatable curatable, AuditEvent auditEvent ) { curatable.getCurationDetails().setNeedsAttention( false ); curatable.getCurationDetails().setLastNeedsAttentionEvent( auditEvent ); } - - @SuppressWarnings({ "unused", "WeakerAccess" }) // Possible external use - public static final class Factory { - - public static DoesNotNeedAttentionEvent newInstance() { - return new DoesNotNeedAttentionEvent(); - } - - } - } \ No newline at end of file diff --git a/gemma-core/src/main/java/ubic/gemma/model/common/auditAndSecurity/eventType/ExperimentalDesignUpdatedEvent.java b/gemma-core/src/main/java/ubic/gemma/model/common/auditAndSecurity/eventType/ExperimentalDesignUpdatedEvent.java index b0c269eed1..6b73afd23f 100644 --- a/gemma-core/src/main/java/ubic/gemma/model/common/auditAndSecurity/eventType/ExperimentalDesignUpdatedEvent.java +++ b/gemma-core/src/main/java/ubic/gemma/model/common/auditAndSecurity/eventType/ExperimentalDesignUpdatedEvent.java @@ -29,21 +29,4 @@ public class ExperimentalDesignUpdatedEvent extends AuditEventType { */ private static final long serialVersionUID = 6359338763821876809L; - /** - * No-arg constructor added to satisfy javabean contract - * - * @author Paul - */ - public ExperimentalDesignUpdatedEvent() { - } - - @SuppressWarnings({ "unused", "WeakerAccess" }) // Used in frontend - public static final class Factory { - - public static ExperimentalDesignUpdatedEvent newInstance() { - return new ExperimentalDesignUpdatedEvent(); - } - - } - } \ No newline at end of file diff --git a/gemma-core/src/main/java/ubic/gemma/model/common/auditAndSecurity/eventType/ExpressionExperimentPlatformSwitchEvent.java b/gemma-core/src/main/java/ubic/gemma/model/common/auditAndSecurity/eventType/ExpressionExperimentPlatformSwitchEvent.java index 0af40453b9..94ccb9a678 100644 --- a/gemma-core/src/main/java/ubic/gemma/model/common/auditAndSecurity/eventType/ExpressionExperimentPlatformSwitchEvent.java +++ b/gemma-core/src/main/java/ubic/gemma/model/common/auditAndSecurity/eventType/ExpressionExperimentPlatformSwitchEvent.java @@ -31,21 +31,4 @@ public class ExpressionExperimentPlatformSwitchEvent */ private static final long serialVersionUID = 2918272498309052073L; - /** - * No-arg constructor added to satisfy javabean contract - * - * @author Paul - */ - public ExpressionExperimentPlatformSwitchEvent() { - } - - @SuppressWarnings({ "unused", "WeakerAccess" }) // Possible external use - public static final class Factory { - - public static ubic.gemma.model.common.auditAndSecurity.eventType.ExpressionExperimentPlatformSwitchEvent newInstance() { - return new ubic.gemma.model.common.auditAndSecurity.eventType.ExpressionExperimentPlatformSwitchEvent(); - } - - } - } \ No newline at end of file diff --git a/gemma-core/src/main/java/ubic/gemma/model/common/auditAndSecurity/eventType/ExpressionExperimentVectorMergeEvent.java b/gemma-core/src/main/java/ubic/gemma/model/common/auditAndSecurity/eventType/ExpressionExperimentVectorMergeEvent.java index b15b251dfb..525bb15281 100644 --- a/gemma-core/src/main/java/ubic/gemma/model/common/auditAndSecurity/eventType/ExpressionExperimentVectorMergeEvent.java +++ b/gemma-core/src/main/java/ubic/gemma/model/common/auditAndSecurity/eventType/ExpressionExperimentVectorMergeEvent.java @@ -31,21 +31,4 @@ public class ExpressionExperimentVectorMergeEvent */ private static final long serialVersionUID = 3635469819668645913L; - /** - * No-arg constructor added to satisfy javabean contract - * - * @author Paul - */ - public ExpressionExperimentVectorMergeEvent() { - } - - @SuppressWarnings({ "unused", "WeakerAccess" }) // Possible external use - public static final class Factory { - - public static ubic.gemma.model.common.auditAndSecurity.eventType.ExpressionExperimentVectorMergeEvent newInstance() { - return new ubic.gemma.model.common.auditAndSecurity.eventType.ExpressionExperimentVectorMergeEvent(); - } - - } - } \ No newline at end of file diff --git a/gemma-core/src/main/java/ubic/gemma/model/common/auditAndSecurity/eventType/FailedBatchInformationFetchingEvent.java b/gemma-core/src/main/java/ubic/gemma/model/common/auditAndSecurity/eventType/FailedBatchInformationFetchingEvent.java index 3420e24ae7..5a9dd5ec66 100644 --- a/gemma-core/src/main/java/ubic/gemma/model/common/auditAndSecurity/eventType/FailedBatchInformationFetchingEvent.java +++ b/gemma-core/src/main/java/ubic/gemma/model/common/auditAndSecurity/eventType/FailedBatchInformationFetchingEvent.java @@ -32,21 +32,4 @@ public class FailedBatchInformationFetchingEvent */ private static final long serialVersionUID = -3776787605548724345L; - /** - * No-arg constructor added to satisfy javabean contract - * - * @author Paul - */ - public FailedBatchInformationFetchingEvent() { - } - - @SuppressWarnings({ "unused", "WeakerAccess" }) // Possible external use - public static final class Factory { - - public static ubic.gemma.model.common.auditAndSecurity.eventType.FailedBatchInformationFetchingEvent newInstance() { - return new ubic.gemma.model.common.auditAndSecurity.eventType.FailedBatchInformationFetchingEvent(); - } - - } - } \ No newline at end of file diff --git a/gemma-core/src/main/java/ubic/gemma/model/common/auditAndSecurity/eventType/FailedBatchInformationMissingEvent.java b/gemma-core/src/main/java/ubic/gemma/model/common/auditAndSecurity/eventType/FailedBatchInformationMissingEvent.java index 94a157ef06..5f238d12e8 100644 --- a/gemma-core/src/main/java/ubic/gemma/model/common/auditAndSecurity/eventType/FailedBatchInformationMissingEvent.java +++ b/gemma-core/src/main/java/ubic/gemma/model/common/auditAndSecurity/eventType/FailedBatchInformationMissingEvent.java @@ -32,21 +32,4 @@ public class FailedBatchInformationMissingEvent */ private static final long serialVersionUID = -3235885345623521195L; - /** - * No-arg constructor added to satisfy javabean contract - * - * @author Paul - */ - public FailedBatchInformationMissingEvent() { - } - - @SuppressWarnings({ "unused", "WeakerAccess" }) // Possible external use - public static final class Factory { - - public static ubic.gemma.model.common.auditAndSecurity.eventType.FailedBatchInformationMissingEvent newInstance() { - return new ubic.gemma.model.common.auditAndSecurity.eventType.FailedBatchInformationMissingEvent(); - } - - } - } \ No newline at end of file diff --git a/gemma-core/src/main/java/ubic/gemma/model/common/auditAndSecurity/eventType/FailedDataReplacedEvent.java b/gemma-core/src/main/java/ubic/gemma/model/common/auditAndSecurity/eventType/FailedDataReplacedEvent.java index b9b508696d..bf24fcb8aa 100644 --- a/gemma-core/src/main/java/ubic/gemma/model/common/auditAndSecurity/eventType/FailedDataReplacedEvent.java +++ b/gemma-core/src/main/java/ubic/gemma/model/common/auditAndSecurity/eventType/FailedDataReplacedEvent.java @@ -28,18 +28,4 @@ public class FailedDataReplacedEvent extends DataReplacedEvent { private static final long serialVersionUID = 304758117763492676L; - /** - * No-arg constructor added to satisfy javabean contract - */ - public FailedDataReplacedEvent() { - } - - @SuppressWarnings({ "unused", "WeakerAccess" }) // Possible external use - public static final class Factory { - - public static ubic.gemma.model.common.auditAndSecurity.eventType.FailedDataReplacedEvent newInstance() { - return new ubic.gemma.model.common.auditAndSecurity.eventType.FailedDataReplacedEvent(); - } - - } } diff --git a/gemma-core/src/main/java/ubic/gemma/model/common/auditAndSecurity/eventType/FailedDifferentialExpressionAnalysisEvent.java b/gemma-core/src/main/java/ubic/gemma/model/common/auditAndSecurity/eventType/FailedDifferentialExpressionAnalysisEvent.java index ef85bc196b..ef093ef519 100644 --- a/gemma-core/src/main/java/ubic/gemma/model/common/auditAndSecurity/eventType/FailedDifferentialExpressionAnalysisEvent.java +++ b/gemma-core/src/main/java/ubic/gemma/model/common/auditAndSecurity/eventType/FailedDifferentialExpressionAnalysisEvent.java @@ -25,21 +25,4 @@ public class FailedDifferentialExpressionAnalysisEvent extends NeedsAttentionEve */ private static final long serialVersionUID = 6904992064998125083L; - /** - * No-arg constructor added to satisfy javabean contract - * - * @author Paul - */ - public FailedDifferentialExpressionAnalysisEvent() { - } - - @SuppressWarnings({ "unused", "WeakerAccess" }) // Possible external use - public static final class Factory { - - public static ubic.gemma.model.common.auditAndSecurity.eventType.FailedDifferentialExpressionAnalysisEvent newInstance() { - return new ubic.gemma.model.common.auditAndSecurity.eventType.FailedDifferentialExpressionAnalysisEvent(); - } - - } - } \ No newline at end of file diff --git a/gemma-core/src/main/java/ubic/gemma/model/common/auditAndSecurity/eventType/FailedLinkAnalysisEvent.java b/gemma-core/src/main/java/ubic/gemma/model/common/auditAndSecurity/eventType/FailedLinkAnalysisEvent.java index 5c65eacc24..7c40b3f24a 100644 --- a/gemma-core/src/main/java/ubic/gemma/model/common/auditAndSecurity/eventType/FailedLinkAnalysisEvent.java +++ b/gemma-core/src/main/java/ubic/gemma/model/common/auditAndSecurity/eventType/FailedLinkAnalysisEvent.java @@ -25,21 +25,4 @@ public class FailedLinkAnalysisEvent extends NeedsAttentionEvent { */ private static final long serialVersionUID = 1234186759038122633L; - /** - * No-arg constructor added to satisfy javabean contract - * - * @author Paul - */ - public FailedLinkAnalysisEvent() { - } - - @SuppressWarnings({ "unused", "WeakerAccess" }) // Possible external use - public static final class Factory { - - public static ubic.gemma.model.common.auditAndSecurity.eventType.FailedLinkAnalysisEvent newInstance() { - return new ubic.gemma.model.common.auditAndSecurity.eventType.FailedLinkAnalysisEvent(); - } - - } - } \ No newline at end of file diff --git a/gemma-core/src/main/java/ubic/gemma/model/common/auditAndSecurity/eventType/FailedMissingValueAnalysisEvent.java b/gemma-core/src/main/java/ubic/gemma/model/common/auditAndSecurity/eventType/FailedMissingValueAnalysisEvent.java index d050f129b5..64014b1bdc 100644 --- a/gemma-core/src/main/java/ubic/gemma/model/common/auditAndSecurity/eventType/FailedMissingValueAnalysisEvent.java +++ b/gemma-core/src/main/java/ubic/gemma/model/common/auditAndSecurity/eventType/FailedMissingValueAnalysisEvent.java @@ -25,21 +25,4 @@ public class FailedMissingValueAnalysisEvent extends NeedsAttentionEvent { */ private static final long serialVersionUID = -8827983770602337826L; - /** - * No-arg constructor added to satisfy javabean contract - * - * @author Paul - */ - public FailedMissingValueAnalysisEvent() { - } - - @SuppressWarnings({ "unused", "WeakerAccess" }) // Possible external use - public static final class Factory { - - public static ubic.gemma.model.common.auditAndSecurity.eventType.FailedMissingValueAnalysisEvent newInstance() { - return new ubic.gemma.model.common.auditAndSecurity.eventType.FailedMissingValueAnalysisEvent(); - } - - } - } \ No newline at end of file diff --git a/gemma-core/src/main/java/ubic/gemma/model/common/auditAndSecurity/eventType/FailedPCAAnalysisEvent.java b/gemma-core/src/main/java/ubic/gemma/model/common/auditAndSecurity/eventType/FailedPCAAnalysisEvent.java index cbccae3bf1..364e61503c 100644 --- a/gemma-core/src/main/java/ubic/gemma/model/common/auditAndSecurity/eventType/FailedPCAAnalysisEvent.java +++ b/gemma-core/src/main/java/ubic/gemma/model/common/auditAndSecurity/eventType/FailedPCAAnalysisEvent.java @@ -25,21 +25,4 @@ public class FailedPCAAnalysisEvent extends NeedsAttentionEvent { */ private static final long serialVersionUID = -7055117029646665872L; - /** - * No-arg constructor added to satisfy javabean contract - * - * @author Paul - */ - public FailedPCAAnalysisEvent() { - } - - @SuppressWarnings({ "unused", "WeakerAccess" }) // Possible external use - public static final class Factory { - - public static ubic.gemma.model.common.auditAndSecurity.eventType.FailedPCAAnalysisEvent newInstance() { - return new ubic.gemma.model.common.auditAndSecurity.eventType.FailedPCAAnalysisEvent(); - } - - } - } \ No newline at end of file diff --git a/gemma-core/src/main/java/ubic/gemma/model/common/auditAndSecurity/eventType/FailedProcessedVectorComputationEvent.java b/gemma-core/src/main/java/ubic/gemma/model/common/auditAndSecurity/eventType/FailedProcessedVectorComputationEvent.java index f4c4ca8f57..a894d64bd9 100644 --- a/gemma-core/src/main/java/ubic/gemma/model/common/auditAndSecurity/eventType/FailedProcessedVectorComputationEvent.java +++ b/gemma-core/src/main/java/ubic/gemma/model/common/auditAndSecurity/eventType/FailedProcessedVectorComputationEvent.java @@ -25,21 +25,4 @@ public class FailedProcessedVectorComputationEvent extends NeedsAttentionEvent { */ private static final long serialVersionUID = -3296770035025801791L; - /** - * No-arg constructor added to satisfy javabean contract - * - * @author Paul - */ - public FailedProcessedVectorComputationEvent() { - } - - @SuppressWarnings({ "unused", "WeakerAccess" }) // Possible external use - public static final class Factory { - - public static ubic.gemma.model.common.auditAndSecurity.eventType.FailedProcessedVectorComputationEvent newInstance() { - return new ubic.gemma.model.common.auditAndSecurity.eventType.FailedProcessedVectorComputationEvent(); - } - - } - } \ No newline at end of file diff --git a/gemma-core/src/main/java/ubic/gemma/model/common/auditAndSecurity/eventType/GeeqEvent.java b/gemma-core/src/main/java/ubic/gemma/model/common/auditAndSecurity/eventType/GeeqEvent.java index e9c71a716b..9295976ad0 100644 --- a/gemma-core/src/main/java/ubic/gemma/model/common/auditAndSecurity/eventType/GeeqEvent.java +++ b/gemma-core/src/main/java/ubic/gemma/model/common/auditAndSecurity/eventType/GeeqEvent.java @@ -7,19 +7,4 @@ public class GeeqEvent extends AuditEventType { */ private static final long serialVersionUID = 6621758826080039878L; - /** - * No-arg constructor added to satisfy javabean contract - */ - public GeeqEvent() { - } - - @SuppressWarnings({ "unused", "WeakerAccess" }) // Possible external use - public static final class Factory { - - public static GeeqEvent newInstance() { - return new GeeqEvent(); - } - - } - } diff --git a/gemma-core/src/main/java/ubic/gemma/model/common/auditAndSecurity/eventType/LinkAnalysisEvent.java b/gemma-core/src/main/java/ubic/gemma/model/common/auditAndSecurity/eventType/LinkAnalysisEvent.java index 0a929cbc13..b92601df18 100644 --- a/gemma-core/src/main/java/ubic/gemma/model/common/auditAndSecurity/eventType/LinkAnalysisEvent.java +++ b/gemma-core/src/main/java/ubic/gemma/model/common/auditAndSecurity/eventType/LinkAnalysisEvent.java @@ -39,13 +39,4 @@ public class LinkAnalysisEvent public LinkAnalysisEvent() { } - @SuppressWarnings({ "unused", "WeakerAccess" }) // Possible external use - public static final class Factory { - - public static ubic.gemma.model.common.auditAndSecurity.eventType.LinkAnalysisEvent newInstance() { - return new ubic.gemma.model.common.auditAndSecurity.eventType.LinkAnalysisEvent(); - } - - } - } \ No newline at end of file diff --git a/gemma-core/src/main/java/ubic/gemma/model/common/auditAndSecurity/eventType/MakePublicEvent.java b/gemma-core/src/main/java/ubic/gemma/model/common/auditAndSecurity/eventType/MakePublicEvent.java index 85ac498ac5..7b8e45ba3f 100644 --- a/gemma-core/src/main/java/ubic/gemma/model/common/auditAndSecurity/eventType/MakePublicEvent.java +++ b/gemma-core/src/main/java/ubic/gemma/model/common/auditAndSecurity/eventType/MakePublicEvent.java @@ -25,17 +25,5 @@ public class MakePublicEvent extends PermissionChangeEvent { private static final long serialVersionUID = -2250506177437626685L; - - public MakePublicEvent() { - } - - @SuppressWarnings({ "unused", "WeakerAccess" }) // Possible external use - public static final class Factory { - public static ubic.gemma.model.common.auditAndSecurity.eventType.MakePublicEvent newInstance() { - return new ubic.gemma.model.common.auditAndSecurity.eventType.MakePublicEvent(); - } - - } - } diff --git a/gemma-core/src/main/java/ubic/gemma/model/common/auditAndSecurity/eventType/ManualAnnotationEvent.java b/gemma-core/src/main/java/ubic/gemma/model/common/auditAndSecurity/eventType/ManualAnnotationEvent.java index 0a560981ec..5425a78c67 100644 --- a/gemma-core/src/main/java/ubic/gemma/model/common/auditAndSecurity/eventType/ManualAnnotationEvent.java +++ b/gemma-core/src/main/java/ubic/gemma/model/common/auditAndSecurity/eventType/ManualAnnotationEvent.java @@ -25,21 +25,4 @@ public class ManualAnnotationEvent extends ubic.gemma.model.common.auditAndSecur */ private static final long serialVersionUID = -4919680073334263746L; - /** - * No-arg constructor added to satisfy javabean contract - * - * @author Paul - */ - public ManualAnnotationEvent() { - } - - @SuppressWarnings({ "unused", "WeakerAccess" }) // Possible external use - public static final class Factory { - - public static ubic.gemma.model.common.auditAndSecurity.eventType.ManualAnnotationEvent newInstance() { - return new ubic.gemma.model.common.auditAndSecurity.eventType.ManualAnnotationEvent(); - } - - } - } \ No newline at end of file diff --git a/gemma-core/src/main/java/ubic/gemma/model/common/auditAndSecurity/eventType/MissingValueAnalysisEvent.java b/gemma-core/src/main/java/ubic/gemma/model/common/auditAndSecurity/eventType/MissingValueAnalysisEvent.java index 34fbb1185c..cd3ce93bce 100644 --- a/gemma-core/src/main/java/ubic/gemma/model/common/auditAndSecurity/eventType/MissingValueAnalysisEvent.java +++ b/gemma-core/src/main/java/ubic/gemma/model/common/auditAndSecurity/eventType/MissingValueAnalysisEvent.java @@ -31,21 +31,4 @@ public class MissingValueAnalysisEvent */ private static final long serialVersionUID = -4000136638329943603L; - /** - * No-arg constructor added to satisfy javabean contract - * - * @author Paul - */ - public MissingValueAnalysisEvent() { - } - - @SuppressWarnings({ "unused", "WeakerAccess" }) // Possible external use - public static final class Factory { - - public static ubic.gemma.model.common.auditAndSecurity.eventType.MissingValueAnalysisEvent newInstance() { - return new ubic.gemma.model.common.auditAndSecurity.eventType.MissingValueAnalysisEvent(); - } - - } - } \ No newline at end of file diff --git a/gemma-core/src/main/java/ubic/gemma/model/common/auditAndSecurity/eventType/NeedsAttentionEvent.java b/gemma-core/src/main/java/ubic/gemma/model/common/auditAndSecurity/eventType/NeedsAttentionEvent.java index ab39875693..bf02cb6858 100644 --- a/gemma-core/src/main/java/ubic/gemma/model/common/auditAndSecurity/eventType/NeedsAttentionEvent.java +++ b/gemma-core/src/main/java/ubic/gemma/model/common/auditAndSecurity/eventType/NeedsAttentionEvent.java @@ -47,13 +47,4 @@ public void setCurationDetails( Curatable curatable, AuditEvent auditEvent ) { curatable.getCurationDetails().setLastNeedsAttentionEvent( auditEvent ); } - @SuppressWarnings({ "unused", "WeakerAccess" }) // Possible external use - public static final class Factory { - - public static NeedsAttentionEvent newInstance() { - return new NeedsAttentionEvent(); - } - - } - } \ No newline at end of file diff --git a/gemma-core/src/main/java/ubic/gemma/model/common/auditAndSecurity/eventType/NotTroubledStatusFlagEvent.java b/gemma-core/src/main/java/ubic/gemma/model/common/auditAndSecurity/eventType/NotTroubledStatusFlagEvent.java index ed02c36830..af73202d31 100644 --- a/gemma-core/src/main/java/ubic/gemma/model/common/auditAndSecurity/eventType/NotTroubledStatusFlagEvent.java +++ b/gemma-core/src/main/java/ubic/gemma/model/common/auditAndSecurity/eventType/NotTroubledStatusFlagEvent.java @@ -45,13 +45,4 @@ public void setCurationDetails( Curatable curatable, AuditEvent auditEvent ) { curatable.getCurationDetails().setLastTroubledEvent( auditEvent ); } - @SuppressWarnings({ "unused", "WeakerAccess" }) // Possible external use - public static final class Factory { - - public static NotTroubledStatusFlagEvent newInstance() { - return new NotTroubledStatusFlagEvent(); - } - - } - } \ No newline at end of file diff --git a/gemma-core/src/main/java/ubic/gemma/model/common/auditAndSecurity/eventType/OutlierFoundAnalysisEvent.java b/gemma-core/src/main/java/ubic/gemma/model/common/auditAndSecurity/eventType/OutlierFoundAnalysisEvent.java index 614efd0ab0..40d41a15a7 100644 --- a/gemma-core/src/main/java/ubic/gemma/model/common/auditAndSecurity/eventType/OutlierFoundAnalysisEvent.java +++ b/gemma-core/src/main/java/ubic/gemma/model/common/auditAndSecurity/eventType/OutlierFoundAnalysisEvent.java @@ -25,21 +25,4 @@ public class OutlierFoundAnalysisEvent extends ubic.gemma.model.common.auditAndS */ private static final long serialVersionUID = -3797610069227351691L; - /** - * No-arg constructor added to satisfy javabean contract - * - * @author Paul - */ - public OutlierFoundAnalysisEvent() { - } - - @SuppressWarnings({ "unused", "WeakerAccess" }) // Possible external use - public static final class Factory { - - public static ubic.gemma.model.common.auditAndSecurity.eventType.OutlierFoundAnalysisEvent newInstance() { - return new ubic.gemma.model.common.auditAndSecurity.eventType.OutlierFoundAnalysisEvent(); - } - - } - } \ No newline at end of file diff --git a/gemma-core/src/main/java/ubic/gemma/model/common/auditAndSecurity/eventType/OutliersNotFoundAnalysisEvent.java b/gemma-core/src/main/java/ubic/gemma/model/common/auditAndSecurity/eventType/OutliersNotFoundAnalysisEvent.java index b2c6b288b5..e15ccff5fb 100644 --- a/gemma-core/src/main/java/ubic/gemma/model/common/auditAndSecurity/eventType/OutliersNotFoundAnalysisEvent.java +++ b/gemma-core/src/main/java/ubic/gemma/model/common/auditAndSecurity/eventType/OutliersNotFoundAnalysisEvent.java @@ -26,21 +26,4 @@ public class OutliersNotFoundAnalysisEvent */ private static final long serialVersionUID = -1857664606860041995L; - /** - * No-arg constructor added to satisfy javabean contract - * - * @author Paul - */ - public OutliersNotFoundAnalysisEvent() { - } - - @SuppressWarnings({ "unused", "WeakerAccess" }) // Possible external use - public static final class Factory { - - public static ubic.gemma.model.common.auditAndSecurity.eventType.OutliersNotFoundAnalysisEvent newInstance() { - return new ubic.gemma.model.common.auditAndSecurity.eventType.OutliersNotFoundAnalysisEvent(); - } - - } - } \ No newline at end of file diff --git a/gemma-core/src/main/java/ubic/gemma/model/common/auditAndSecurity/eventType/PCAAnalysisEvent.java b/gemma-core/src/main/java/ubic/gemma/model/common/auditAndSecurity/eventType/PCAAnalysisEvent.java index b817a63c14..7243ebf9ee 100644 --- a/gemma-core/src/main/java/ubic/gemma/model/common/auditAndSecurity/eventType/PCAAnalysisEvent.java +++ b/gemma-core/src/main/java/ubic/gemma/model/common/auditAndSecurity/eventType/PCAAnalysisEvent.java @@ -26,21 +26,4 @@ public class PCAAnalysisEvent */ private static final long serialVersionUID = -7387174169412782003L; - /** - * No-arg constructor added to satisfy javabean contract - * - * @author Paul - */ - public PCAAnalysisEvent() { - } - - @SuppressWarnings({ "unused", "WeakerAccess" }) // Used in frontend - public static final class Factory { - - public static ubic.gemma.model.common.auditAndSecurity.eventType.PCAAnalysisEvent newInstance() { - return new ubic.gemma.model.common.auditAndSecurity.eventType.PCAAnalysisEvent(); - } - - } - } \ No newline at end of file diff --git a/gemma-core/src/main/java/ubic/gemma/model/common/auditAndSecurity/eventType/PermissionChangeEvent.java b/gemma-core/src/main/java/ubic/gemma/model/common/auditAndSecurity/eventType/PermissionChangeEvent.java index 55c6b51828..5a10f22e22 100644 --- a/gemma-core/src/main/java/ubic/gemma/model/common/auditAndSecurity/eventType/PermissionChangeEvent.java +++ b/gemma-core/src/main/java/ubic/gemma/model/common/auditAndSecurity/eventType/PermissionChangeEvent.java @@ -1,8 +1,8 @@ /* * The gemma project - * + * * Copyright (c) 2014 University of British Columbia - * + * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at @@ -27,19 +27,5 @@ public class PermissionChangeEvent extends AuditEventType { private static final long serialVersionUID = -7205154783209555418L; - - public PermissionChangeEvent() { - - } - - @SuppressWarnings({ "unused", "WeakerAccess" }) // Possible external use - public static final class Factory { - - public static ubic.gemma.model.common.auditAndSecurity.eventType.PermissionChangeEvent newInstance() { - return new ubic.gemma.model.common.auditAndSecurity.eventType.PermissionChangeEvent(); - } - - } - } diff --git a/gemma-core/src/main/java/ubic/gemma/model/common/auditAndSecurity/eventType/ProcessedVectorComputationEvent.java b/gemma-core/src/main/java/ubic/gemma/model/common/auditAndSecurity/eventType/ProcessedVectorComputationEvent.java index 13a5f247b5..14875b3fb4 100644 --- a/gemma-core/src/main/java/ubic/gemma/model/common/auditAndSecurity/eventType/ProcessedVectorComputationEvent.java +++ b/gemma-core/src/main/java/ubic/gemma/model/common/auditAndSecurity/eventType/ProcessedVectorComputationEvent.java @@ -32,21 +32,4 @@ public class ProcessedVectorComputationEvent */ private static final long serialVersionUID = 3380481220417398475L; - /** - * No-arg constructor added to satisfy javabean contract - * - * @author Paul - */ - public ProcessedVectorComputationEvent() { - } - - @SuppressWarnings({ "unused", "WeakerAccess" }) // Possible external use - public static final class Factory { - - public static ubic.gemma.model.common.auditAndSecurity.eventType.ProcessedVectorComputationEvent newInstance() { - return new ubic.gemma.model.common.auditAndSecurity.eventType.ProcessedVectorComputationEvent(); - } - - } - } \ No newline at end of file diff --git a/gemma-core/src/main/java/ubic/gemma/model/common/auditAndSecurity/eventType/RankComputationEvent.java b/gemma-core/src/main/java/ubic/gemma/model/common/auditAndSecurity/eventType/RankComputationEvent.java index 1e666b1a5e..5adefe8eff 100644 --- a/gemma-core/src/main/java/ubic/gemma/model/common/auditAndSecurity/eventType/RankComputationEvent.java +++ b/gemma-core/src/main/java/ubic/gemma/model/common/auditAndSecurity/eventType/RankComputationEvent.java @@ -31,21 +31,4 @@ public class RankComputationEvent */ private static final long serialVersionUID = 7396366160834308993L; - /** - * No-arg constructor added to satisfy javabean contract - * - * @author Paul - */ - public RankComputationEvent() { - } - - @SuppressWarnings({ "unused", "WeakerAccess" }) // Possible external use - public static final class Factory { - - public static ubic.gemma.model.common.auditAndSecurity.eventType.RankComputationEvent newInstance() { - return new ubic.gemma.model.common.auditAndSecurity.eventType.RankComputationEvent(); - } - - } - } \ No newline at end of file diff --git a/gemma-core/src/main/java/ubic/gemma/model/common/auditAndSecurity/eventType/ResetSuitabilityForDifferentialExpressionAnalysisEvent.java b/gemma-core/src/main/java/ubic/gemma/model/common/auditAndSecurity/eventType/ResetSuitabilityForDifferentialExpressionAnalysisEvent.java index a8199d167c..a1894d7ed2 100644 --- a/gemma-core/src/main/java/ubic/gemma/model/common/auditAndSecurity/eventType/ResetSuitabilityForDifferentialExpressionAnalysisEvent.java +++ b/gemma-core/src/main/java/ubic/gemma/model/common/auditAndSecurity/eventType/ResetSuitabilityForDifferentialExpressionAnalysisEvent.java @@ -33,20 +33,4 @@ public class ResetSuitabilityForDifferentialExpressionAnalysisEvent extends Diff */ private static final long serialVersionUID = 5909581992797452478L; - /** - * No-arg constructor added to satisfy javabean contract - * - */ - public ResetSuitabilityForDifferentialExpressionAnalysisEvent() { - } - - @SuppressWarnings({ "unused", "WeakerAccess" }) // Used in frontend - public static final class Factory { - - public static ubic.gemma.model.common.auditAndSecurity.eventType.ResetSuitabilityForDifferentialExpressionAnalysisEvent newInstance() { - return new ubic.gemma.model.common.auditAndSecurity.eventType.ResetSuitabilityForDifferentialExpressionAnalysisEvent(); - } - - } - } diff --git a/gemma-core/src/main/java/ubic/gemma/model/common/auditAndSecurity/eventType/SampleRemovalEvent.java b/gemma-core/src/main/java/ubic/gemma/model/common/auditAndSecurity/eventType/SampleRemovalEvent.java index 7b97294127..594f963b17 100644 --- a/gemma-core/src/main/java/ubic/gemma/model/common/auditAndSecurity/eventType/SampleRemovalEvent.java +++ b/gemma-core/src/main/java/ubic/gemma/model/common/auditAndSecurity/eventType/SampleRemovalEvent.java @@ -31,21 +31,4 @@ public class SampleRemovalEvent */ private static final long serialVersionUID = 6508357999103110838L; - /** - * No-arg constructor added to satisfy javabean contract - * - * @author Paul - */ - public SampleRemovalEvent() { - } - - @SuppressWarnings({ "unused", "WeakerAccess" }) // Possible external use - public static final class Factory { - - public static ubic.gemma.model.common.auditAndSecurity.eventType.SampleRemovalEvent newInstance() { - return new ubic.gemma.model.common.auditAndSecurity.eventType.SampleRemovalEvent(); - } - - } - } \ No newline at end of file diff --git a/gemma-core/src/main/java/ubic/gemma/model/common/auditAndSecurity/eventType/SampleRemovalReversionEvent.java b/gemma-core/src/main/java/ubic/gemma/model/common/auditAndSecurity/eventType/SampleRemovalReversionEvent.java index 7cd728e7ab..731186b0fa 100644 --- a/gemma-core/src/main/java/ubic/gemma/model/common/auditAndSecurity/eventType/SampleRemovalReversionEvent.java +++ b/gemma-core/src/main/java/ubic/gemma/model/common/auditAndSecurity/eventType/SampleRemovalReversionEvent.java @@ -31,21 +31,4 @@ public class SampleRemovalReversionEvent */ private static final long serialVersionUID = -2893496636576496129L; - /** - * No-arg constructor added to satisfy javabean contract - * - * @author Paul - */ - public SampleRemovalReversionEvent() { - } - - @SuppressWarnings({ "unused", "WeakerAccess" }) // Possible external use - public static final class Factory { - - public static ubic.gemma.model.common.auditAndSecurity.eventType.SampleRemovalReversionEvent newInstance() { - return new ubic.gemma.model.common.auditAndSecurity.eventType.SampleRemovalReversionEvent(); - } - - } - } \ No newline at end of file diff --git a/gemma-core/src/main/java/ubic/gemma/model/common/auditAndSecurity/eventType/SingleBatchDeterminationEvent.java b/gemma-core/src/main/java/ubic/gemma/model/common/auditAndSecurity/eventType/SingleBatchDeterminationEvent.java index ebb9e4ab1f..2a0b1bcc7e 100644 --- a/gemma-core/src/main/java/ubic/gemma/model/common/auditAndSecurity/eventType/SingleBatchDeterminationEvent.java +++ b/gemma-core/src/main/java/ubic/gemma/model/common/auditAndSecurity/eventType/SingleBatchDeterminationEvent.java @@ -32,20 +32,4 @@ public class SingleBatchDeterminationEvent extends BatchInformationFetchingEvent */ private static final long serialVersionUID = -6544162258733474787L; - /** - * No-arg constructor added to satisfy javabean contract - * - * @author Paul - */ - public SingleBatchDeterminationEvent() { - } - - @SuppressWarnings({ "unused", "WeakerAccess" }) // Possible external use - public static final class Factory { - public static SingleBatchDeterminationEvent newInstance() { - return new SingleBatchDeterminationEvent(); - } - - } - } diff --git a/gemma-core/src/main/java/ubic/gemma/model/common/auditAndSecurity/eventType/SingletonBatchInvalidEvent.java b/gemma-core/src/main/java/ubic/gemma/model/common/auditAndSecurity/eventType/SingletonBatchInvalidEvent.java index 0713a93a42..e94e4efeea 100644 --- a/gemma-core/src/main/java/ubic/gemma/model/common/auditAndSecurity/eventType/SingletonBatchInvalidEvent.java +++ b/gemma-core/src/main/java/ubic/gemma/model/common/auditAndSecurity/eventType/SingletonBatchInvalidEvent.java @@ -1,8 +1,8 @@ /* * The gemma-core project - * + * * Copyright (c) 2021 University of British Columbia - * + * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at @@ -22,28 +22,14 @@ /** * Indiates that there was at least one batch with only one sample. This normally is only relevant to RNA-seq as for * microarrays we group samples by nearest date. FASTQ headers don't provide for that heuristic. - * + * * @author paul */ public class SingletonBatchInvalidEvent extends FailedBatchInformationFetchingEvent { /** - * + * */ private static final long serialVersionUID = 7917557159624872204L; - - public SingletonBatchInvalidEvent() { - - } - - @SuppressWarnings({ "unused", "WeakerAccess" }) // Possible external use - public static final class Factory { - - public static ubic.gemma.model.common.auditAndSecurity.eventType.SingletonBatchInvalidEvent newInstance() { - return new ubic.gemma.model.common.auditAndSecurity.eventType.SingletonBatchInvalidEvent(); - } - - } - } diff --git a/gemma-core/src/main/java/ubic/gemma/model/common/auditAndSecurity/eventType/TooSmallDatasetLinkAnalysisEvent.java b/gemma-core/src/main/java/ubic/gemma/model/common/auditAndSecurity/eventType/TooSmallDatasetLinkAnalysisEvent.java index 2e7f2bbd2f..6464e9dd4d 100644 --- a/gemma-core/src/main/java/ubic/gemma/model/common/auditAndSecurity/eventType/TooSmallDatasetLinkAnalysisEvent.java +++ b/gemma-core/src/main/java/ubic/gemma/model/common/auditAndSecurity/eventType/TooSmallDatasetLinkAnalysisEvent.java @@ -29,21 +29,4 @@ public class TooSmallDatasetLinkAnalysisEvent */ private static final long serialVersionUID = 3051344049635374788L; - /** - * No-arg constructor added to satisfy javabean contract - * - * @author Paul - */ - public TooSmallDatasetLinkAnalysisEvent() { - } - - @SuppressWarnings({ "unused", "WeakerAccess" }) // Possible external use - public static final class Factory { - - public static ubic.gemma.model.common.auditAndSecurity.eventType.TooSmallDatasetLinkAnalysisEvent newInstance() { - return new ubic.gemma.model.common.auditAndSecurity.eventType.TooSmallDatasetLinkAnalysisEvent(); - } - - } - } \ No newline at end of file diff --git a/gemma-core/src/main/java/ubic/gemma/model/common/auditAndSecurity/eventType/TroubledStatusFlagEvent.java b/gemma-core/src/main/java/ubic/gemma/model/common/auditAndSecurity/eventType/TroubledStatusFlagEvent.java index c52a37426b..ca627e76e3 100644 --- a/gemma-core/src/main/java/ubic/gemma/model/common/auditAndSecurity/eventType/TroubledStatusFlagEvent.java +++ b/gemma-core/src/main/java/ubic/gemma/model/common/auditAndSecurity/eventType/TroubledStatusFlagEvent.java @@ -33,25 +33,10 @@ public class TroubledStatusFlagEvent extends CurationDetailsEvent { */ private static final long serialVersionUID = 7335601529423635731L; - /** - * No-arg constructor added to satisfy javabean contract - */ - public TroubledStatusFlagEvent() { - } - @Override public final void setCurationDetails( Curatable curatable, AuditEvent auditEvent ) { curatable.getCurationDetails().setTroubled( true ); curatable.getCurationDetails().setLastTroubledEvent( auditEvent ); } - @SuppressWarnings({ "unused", "WeakerAccess" }) // Possible external use - public static final class Factory { - - public static TroubledStatusFlagEvent newInstance() { - return new TroubledStatusFlagEvent(); - } - - } - } \ No newline at end of file diff --git a/gemma-core/src/main/java/ubic/gemma/model/common/auditAndSecurity/eventType/UninformativeFASTQHeadersForBatchingEvent.java b/gemma-core/src/main/java/ubic/gemma/model/common/auditAndSecurity/eventType/UninformativeFASTQHeadersForBatchingEvent.java index 4cdb9a385d..0931b5eb91 100644 --- a/gemma-core/src/main/java/ubic/gemma/model/common/auditAndSecurity/eventType/UninformativeFASTQHeadersForBatchingEvent.java +++ b/gemma-core/src/main/java/ubic/gemma/model/common/auditAndSecurity/eventType/UninformativeFASTQHeadersForBatchingEvent.java @@ -33,17 +33,4 @@ public class UninformativeFASTQHeadersForBatchingEvent extends FailedBatchInform */ private static final long serialVersionUID = 8836148437542742955L; - public UninformativeFASTQHeadersForBatchingEvent() { - - } - - @SuppressWarnings({ "unused", "WeakerAccess" }) // Possible external use - public static final class Factory { - - public static ubic.gemma.model.common.auditAndSecurity.eventType.UninformativeFASTQHeadersForBatchingEvent newInstance() { - return new ubic.gemma.model.common.auditAndSecurity.eventType.UninformativeFASTQHeadersForBatchingEvent(); - } - - } - } diff --git a/gemma-core/src/main/java/ubic/gemma/model/common/auditAndSecurity/eventType/UnsuitableForDifferentialExpressionAnalysisEvent.java b/gemma-core/src/main/java/ubic/gemma/model/common/auditAndSecurity/eventType/UnsuitableForDifferentialExpressionAnalysisEvent.java index ae1aaaf2b9..554658316f 100644 --- a/gemma-core/src/main/java/ubic/gemma/model/common/auditAndSecurity/eventType/UnsuitableForDifferentialExpressionAnalysisEvent.java +++ b/gemma-core/src/main/java/ubic/gemma/model/common/auditAndSecurity/eventType/UnsuitableForDifferentialExpressionAnalysisEvent.java @@ -1,8 +1,8 @@ /* * The gemma-core project - * + * * Copyright (c) 2021 University of British Columbia - * + * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at @@ -24,30 +24,13 @@ * event to document this determination, to avoid unnecessary repeat visits for curation and re-determination. This * event can * be effectively reverted by adding a {@link ResetSuitabilityForDifferentialExpressionAnalysisEvent}. - * + * * @author paul */ public class UnsuitableForDifferentialExpressionAnalysisEvent extends DifferentialExpressionSuitabilityEvent { /** - * - */ - private static final long serialVersionUID = 4296161562091100967L; - - /** - * No-arg constructor added to satisfy javabean contract * */ - public UnsuitableForDifferentialExpressionAnalysisEvent() { - } - - @SuppressWarnings({ "unused", "WeakerAccess" }) // Used in frontend - public static final class Factory { - - public static ubic.gemma.model.common.auditAndSecurity.eventType.UnsuitableForDifferentialExpressionAnalysisEvent newInstance() { - return new ubic.gemma.model.common.auditAndSecurity.eventType.UnsuitableForDifferentialExpressionAnalysisEvent(); - } - - } - + private static final long serialVersionUID = 4296161562091100967L; } diff --git a/gemma-core/src/main/java/ubic/gemma/model/common/auditAndSecurity/eventType/VersionedEvent.java b/gemma-core/src/main/java/ubic/gemma/model/common/auditAndSecurity/eventType/VersionedEvent.java index 1edbc77600..1182ba016b 100644 --- a/gemma-core/src/main/java/ubic/gemma/model/common/auditAndSecurity/eventType/VersionedEvent.java +++ b/gemma-core/src/main/java/ubic/gemma/model/common/auditAndSecurity/eventType/VersionedEvent.java @@ -5,4 +5,5 @@ * @author poirigui */ public abstract class VersionedEvent extends AuditEventType { + } diff --git a/gemma-core/src/main/java/ubic/gemma/persistence/service/common/auditAndSecurity/AuditTrailService.java b/gemma-core/src/main/java/ubic/gemma/persistence/service/common/auditAndSecurity/AuditTrailService.java index 8b491795d1..3d8ec7fbea 100644 --- a/gemma-core/src/main/java/ubic/gemma/persistence/service/common/auditAndSecurity/AuditTrailService.java +++ b/gemma-core/src/main/java/ubic/gemma/persistence/service/common/auditAndSecurity/AuditTrailService.java @@ -23,6 +23,8 @@ import ubic.gemma.model.common.auditAndSecurity.AuditEvent; import ubic.gemma.model.common.auditAndSecurity.AuditTrail; import ubic.gemma.model.common.auditAndSecurity.eventType.AuditEventType; +import ubic.gemma.model.common.auditAndSecurity.eventType.FailedBatchInformationFetchingEvent; +import ubic.gemma.model.expression.experiment.ExpressionExperiment; import ubic.gemma.persistence.service.BaseService; import javax.annotation.Nullable; @@ -33,23 +35,35 @@ */ public interface AuditTrailService extends BaseService { + /** + * Add an update audit event of a specific type to the passed auditable entity. + * + * @param auditable the entity + * @param type the audit event type + * @param note a short note (optional) + * @param detail full details for that event (optional) + * @return the newly created event, which will be somewhere in the auditable's {@link AuditTrail#getEvents()} + * collection. + */ @Secured({ "GROUP_USER", "ACL_SECURABLE_EDIT" }) - void addUpdateEvent( Auditable auditable, AuditEventType auditEventType, @Nullable String note ); + AuditEvent addUpdateEvent( Auditable auditable, Class type, String note, String detail ); - @Secured({ "GROUP_AGENT", "ACL_SECURABLE_EDIT" }) - void addUpdateEvent( Auditable auditable, AuditEventType auditEventType, @Nullable String note, @Nullable String detail ); + @Secured({ "GROUP_USER", "ACL_SECURABLE_EDIT" }) + AuditEvent addUpdateEvent( Auditable auditable, Class type, String note ); @Secured({ "GROUP_USER", "ACL_SECURABLE_EDIT" }) - void addUpdateEvent( Auditable auditable, Class type, @Nullable String note, @Nullable String detail ); + AuditEvent addUpdateEvent( Auditable auditable, Class type, String message, Throwable throwable ); /** * Add an update event defined by the given parameters, to the given auditable. Returns the generated event. * - * @param auditable auditable - * @param note note + * @param auditable the entity + * @param note a short note (optional) + * @return the newly created event, which will be somewhere in the auditable's {@link AuditTrail#getEvents()} + * collection. */ @Secured({ "GROUP_USER", "ACL_SECURABLE_EDIT" }) - void addUpdateEvent( Auditable auditable, @Nullable String note ); + AuditEvent addUpdateEvent( Auditable auditable, String note ); @Override @Secured({ "GROUP_USER" }) @@ -57,5 +71,4 @@ public interface AuditTrailService extends BaseService { @Secured({ "IS_AUTHENTICATED_ANONYMOUSLY" }) List getEvents( Auditable auditable ); - } diff --git a/gemma-core/src/main/java/ubic/gemma/persistence/service/common/auditAndSecurity/AuditTrailServiceImpl.java b/gemma-core/src/main/java/ubic/gemma/persistence/service/common/auditAndSecurity/AuditTrailServiceImpl.java index 28428be17f..2cb88ec2cc 100644 --- a/gemma-core/src/main/java/ubic/gemma/persistence/service/common/auditAndSecurity/AuditTrailServiceImpl.java +++ b/gemma-core/src/main/java/ubic/gemma/persistence/service/common/auditAndSecurity/AuditTrailServiceImpl.java @@ -18,13 +18,11 @@ */ package ubic.gemma.persistence.service.common.auditAndSecurity; -import org.apache.commons.lang3.reflect.FieldUtils; +import org.apache.commons.lang3.exception.ExceptionUtils; import org.hibernate.SessionFactory; import org.hibernate.engine.spi.SessionImplementor; import org.hibernate.metadata.ClassMetadata; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.security.core.context.SecurityContextHolder; -import org.springframework.security.core.userdetails.UserDetails; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import ubic.gemma.core.security.authentication.UserManager; @@ -32,12 +30,9 @@ import ubic.gemma.model.common.auditAndSecurity.*; import ubic.gemma.model.common.auditAndSecurity.curation.Curatable; import ubic.gemma.model.common.auditAndSecurity.eventType.AuditEventType; -import ubic.gemma.model.common.auditAndSecurity.eventType.CurationDetailsEvent; import ubic.gemma.persistence.service.AbstractService; import javax.annotation.Nullable; -import java.lang.reflect.Field; -import java.lang.reflect.Method; import java.util.Date; import java.util.List; @@ -56,60 +51,41 @@ public class AuditTrailServiceImpl extends AbstractService implement private final UserManager userManager; + private final SessionFactory sessionFactory; + @Autowired public AuditTrailServiceImpl( AuditTrailDao auditTrailDao, AuditEventDao auditEventDao, - CurationDetailsService curationDetailsService, UserManager userManager ) { + CurationDetailsService curationDetailsService, UserManager userManager, SessionFactory sessionFactory ) { super( auditTrailDao ); this.auditTrailDao = auditTrailDao; this.auditEventDao = auditEventDao; this.curationDetailsService = curationDetailsService; this.userManager = userManager; + this.sessionFactory = sessionFactory; } @Override @Transactional - public void addUpdateEvent( final Auditable auditable, final AuditEventType auditEventType, @Nullable final String note ) { - doAddUpdateEvent( auditable, auditEventType, note, null ); + public AuditEvent addUpdateEvent( Auditable auditable, Class type, String note, String detail ) { + return doAddUpdateEvent( auditable, getAuditEventType( type ), note, detail ); } - /** - * This method creates a new event in the audit trail of the passed Auditable object. If this object also implements - * the {@link Curatable} interface, and the passed auditEventType is one of the extensions of - * {@link CurationDetailsEvent} AuditEventType, this method will pass its result to - * {@link CurationDetailsService#update(Curatable, AuditEvent)}, to update the curatable objects curation details, - * before returning it. - * - * @param auditable the auditable object to whose audit trail should a new event be added. - * @param auditEventType the type of the event that should be created. - * @param note string displayed as a note for the event - * @param detail detailed description of the event. - * @see AuditTrailService#addUpdateEvent(Auditable, AuditEventType, String, String) - */ @Override @Transactional - public void addUpdateEvent( final Auditable auditable, final AuditEventType auditEventType, @Nullable final String note, - @Nullable final String detail ) { - doAddUpdateEvent( auditable, auditEventType, note, detail ); + public AuditEvent addUpdateEvent( Auditable auditable, Class type, String note ) { + return doAddUpdateEvent( auditable, getAuditEventType( type ), note, null ); } - @Autowired - private SessionFactory sessionFactory; - @Override @Transactional - public void addUpdateEvent( Auditable auditable, Class type, @Nullable String note, @Nullable String detail ) { - ClassMetadata classMetadata = sessionFactory.getClassMetadata( type ); - if ( classMetadata == null ) { - throw new IllegalArgumentException( String.format( "%s is not mapped by Hibernate.", type.getName() ) ); - } - AuditEventType auditEventType = ( AuditEventType ) classMetadata.instantiate( null, ( SessionImplementor ) sessionFactory.getCurrentSession() ); - doAddUpdateEvent( auditable, auditEventType, note, detail ); + public AuditEvent addUpdateEvent( Auditable auditable, Class type, String note, Throwable throwable ) { + return doAddUpdateEvent( auditable, getAuditEventType( type ), note, ExceptionUtils.getStackTrace( throwable ) ); } @Override @Transactional - public void addUpdateEvent( final Auditable auditable, @Nullable final String note ) { - doAddUpdateEvent( auditable, null, note, null ); + public AuditEvent addUpdateEvent( final Auditable auditable, final String note ) { + return doAddUpdateEvent( auditable, null, note, null ); } @Override @@ -118,17 +94,17 @@ public List getEvents( Auditable ad ) { return this.auditEventDao.getEvents( ad ); } - private void doAddUpdateEvent( Auditable auditable, @Nullable AuditEventType auditEventType, @Nullable String note, @Nullable String detail ) { + private AuditEvent doAddUpdateEvent( Auditable auditable, @Nullable AuditEventType auditEventType, @Nullable String note, @Nullable String detail ) { //Create new audit event AuditEvent auditEvent = AuditEvent.Factory.newInstance( new Date(), AuditAction.UPDATE, note, detail, userManager.getCurrentUser(), auditEventType ); //If object is curatable, update curation details if ( auditable instanceof Curatable && auditEvent.getEventType() != null ) { curationDetailsService.update( ( Curatable ) auditable, auditEvent ); } - this.addEvent( auditable, auditEvent ); + return this.addEvent( auditable, auditEvent ); } - private void addEvent( final Auditable auditable, final AuditEvent auditEvent ) { + private AuditEvent addEvent( final Auditable auditable, final AuditEvent auditEvent ) { AuditTrail trail = auditable.getAuditTrail(); if ( trail == null ) { /* @@ -139,7 +115,18 @@ private void addEvent( final Auditable auditable, final AuditEvent auditEvent ) auditable ) ); trail = AuditTrail.Factory.newInstance(); } + // this is necessary otherwise we would have to guess the event from the audit trail + AuditEvent persistedAuditEvent = auditEventDao.save( auditEvent ); trail.addEvent( auditEvent ); auditable.setAuditTrail( auditTrailDao.save( trail ) ); + return persistedAuditEvent; + } + + private AuditEventType getAuditEventType( Class type ) { + ClassMetadata classMetadata = sessionFactory.getClassMetadata( type ); + if ( classMetadata == null ) { + throw new IllegalArgumentException( String.format( "%s is not mapped by Hibernate.", type.getName() ) ); + } + return ( AuditEventType ) classMetadata.instantiate( null, ( SessionImplementor ) sessionFactory.getCurrentSession() ); } } diff --git a/gemma-core/src/main/java/ubic/gemma/persistence/service/expression/bioAssayData/ProcessedExpressionDataVectorServiceImpl.java b/gemma-core/src/main/java/ubic/gemma/persistence/service/expression/bioAssayData/ProcessedExpressionDataVectorServiceImpl.java index b1143a35b5..eb734cc701 100644 --- a/gemma-core/src/main/java/ubic/gemma/persistence/service/expression/bioAssayData/ProcessedExpressionDataVectorServiceImpl.java +++ b/gemma-core/src/main/java/ubic/gemma/persistence/service/expression/bioAssayData/ProcessedExpressionDataVectorServiceImpl.java @@ -75,8 +75,7 @@ public ExpressionExperiment createProcessedDataVectors( ExpressionExperiment ee, assert ee.getNumberOfDataVectors() != null; return ee; } catch ( Exception e ) { - auditTrailService.addUpdateEvent( ee, FailedProcessedVectorComputationEvent.Factory.newInstance(), - ExceptionUtils.getStackTrace( e ) ); + auditTrailService.addUpdateEvent( ee, FailedProcessedVectorComputationEvent.class, "Failed to create processed expression data vectors.", e ); throw new RuntimeException( e ); } @@ -306,8 +305,7 @@ public Collection computeProcessedExpressionData( assert ee.getNumberOfDataVectors() != null; return ee.getProcessedExpressionDataVectors(); } catch ( Exception e ) { - auditTrailService.addUpdateEvent( ee, FailedProcessedVectorComputationEvent.Factory.newInstance(), - ExceptionUtils.getStackTrace( e ) ); + auditTrailService.addUpdateEvent( ee, FailedProcessedVectorComputationEvent.class, "Failed to create processed expression data vectors.", e ); throw new RuntimeException( e ); } diff --git a/gemma-core/src/main/java/ubic/gemma/persistence/service/expression/experiment/ExpressionExperimentServiceImpl.java b/gemma-core/src/main/java/ubic/gemma/persistence/service/expression/experiment/ExpressionExperimentServiceImpl.java index d58df14611..6d43127bdc 100755 --- a/gemma-core/src/main/java/ubic/gemma/persistence/service/expression/experiment/ExpressionExperimentServiceImpl.java +++ b/gemma-core/src/main/java/ubic/gemma/persistence/service/expression/experiment/ExpressionExperimentServiceImpl.java @@ -80,7 +80,7 @@ /** * @author pavlidis * @author keshav - * @see ExpressionExperimentService + * @see ExpressionExperimentService */ @Service @Transactional @@ -691,19 +691,19 @@ public Date getLastArrayDesignUpdate( final ExpressionExperiment ee ) { @Override @Transactional(readOnly = true) public Map getLastLinkAnalysis( final Collection ids ) { - return this.getLastEvent( this.load( ids ), LinkAnalysisEvent.Factory.newInstance() ); + return this.getLastEvent( this.load( ids ), new LinkAnalysisEvent() ); } @Override @Transactional(readOnly = true) public Map getLastMissingValueAnalysis( final Collection ids ) { - return this.getLastEvent( this.load( ids ), MissingValueAnalysisEvent.Factory.newInstance() ); + return this.getLastEvent( this.load( ids ), new MissingValueAnalysisEvent() ); } @Override @Transactional(readOnly = true) public Map getLastProcessedDataUpdate( final Collection ids ) { - return this.getLastEvent( this.load( ids ), ProcessedVectorComputationEvent.Factory.newInstance() ); + return this.getLastEvent( this.load( ids ), new ProcessedVectorComputationEvent() ); } @Override @@ -817,11 +817,11 @@ public boolean isRNASeq( ExpressionExperiment expressionExperiment ) { } /** - * @param ee the expression experiment to be checked for trouble. This method will usually be preferred over - * checking - * the curation details of the object directly, as this method also checks all the array designs the - * given - * experiment belongs to. + * @param ee the expression experiment to be checked for trouble. This method will usually be preferred over + * checking + * the curation details of the object directly, as this method also checks all the array designs the + * given + * experiment belongs to. * @return true, if the given experiment, or any of its parenting array designs is troubled. False otherwise */ @Override @@ -1081,11 +1081,11 @@ private boolean getHasBeenBatchCorrected( ExpressionExperiment ee ) { } /** - * @param ees experiments - * @param type event type + * @param ees experiments + * @param type event type * @return a map of the expression experiment ids to the last audit event for the given audit event type the - * map - * can contain nulls if the specified auditEventType isn't found for a given expression experiment id + * map + * can contain nulls if the specified auditEventType isn't found for a given expression experiment id */ private Map getLastEvent( Collection ees, AuditEventType type ) { diff --git a/gemma-core/src/test/java/ubic/gemma/core/analysis/report/ArrayDesignReportServiceTest.java b/gemma-core/src/test/java/ubic/gemma/core/analysis/report/ArrayDesignReportServiceTest.java index 3aee9fef50..16ab2af6c9 100755 --- a/gemma-core/src/test/java/ubic/gemma/core/analysis/report/ArrayDesignReportServiceTest.java +++ b/gemma-core/src/test/java/ubic/gemma/core/analysis/report/ArrayDesignReportServiceTest.java @@ -51,18 +51,18 @@ public void setUp() throws Exception { ArrayDesignReportServiceTest.ad = this .getTestPersistentArrayDesign( 5, true, false, false ); // not read only. - ads.addUpdateEvent( ArrayDesignReportServiceTest.ad, new ArrayDesignSequenceUpdateEvent(), "sequences" ); + ads.addUpdateEvent( ArrayDesignReportServiceTest.ad, ArrayDesignSequenceUpdateEvent.class, "sequences"); - ads.addUpdateEvent( ArrayDesignReportServiceTest.ad, new ArrayDesignSequenceAnalysisEvent(), "alignment" ); + ads.addUpdateEvent( ArrayDesignReportServiceTest.ad, ArrayDesignSequenceAnalysisEvent.class, "alignment" ); - ads.addUpdateEvent( ArrayDesignReportServiceTest.ad, new AlignmentBasedGeneMappingEvent(), "mapping" ); + ads.addUpdateEvent( ArrayDesignReportServiceTest.ad, AlignmentBasedGeneMappingEvent.class, "mapping" ); Thread.sleep( 100 ); - ads.addUpdateEvent( ArrayDesignReportServiceTest.ad, new ArrayDesignSequenceAnalysisEvent(), + ads.addUpdateEvent( ArrayDesignReportServiceTest.ad, ArrayDesignSequenceAnalysisEvent.class, "alignment 2" ); - ads.addUpdateEvent( ArrayDesignReportServiceTest.ad, new AlignmentBasedGeneMappingEvent(), "mapping 2" ); + ads.addUpdateEvent( ArrayDesignReportServiceTest.ad, AlignmentBasedGeneMappingEvent.class, "mapping 2" ); Thread.sleep( 100 ); ArrayDesignReportServiceTest.persisted = true; } diff --git a/gemma-core/src/test/java/ubic/gemma/model/common/auditAndSecurity/AuditTrailServiceImplTest.java b/gemma-core/src/test/java/ubic/gemma/model/common/auditAndSecurity/AuditTrailServiceImplTest.java index 4b594993ed..1324181753 100644 --- a/gemma-core/src/test/java/ubic/gemma/model/common/auditAndSecurity/AuditTrailServiceImplTest.java +++ b/gemma-core/src/test/java/ubic/gemma/model/common/auditAndSecurity/AuditTrailServiceImplTest.java @@ -66,8 +66,7 @@ public void setUp() throws Exception { @Test public final void testAddOKEvent() { - AuditEventType eventType = NotTroubledStatusFlagEvent.Factory.newInstance(); - auditTrailService.addUpdateEvent( auditable, eventType, "nothing special, just testing" ); + auditTrailService.addUpdateEvent( auditable, NotTroubledStatusFlagEvent.class, "nothing special, just testing" ); AuditEvent ev = auditable.getAuditTrail().getLast(); assertNotNull( ev ); assertNotNull( ev.getId() ); @@ -84,8 +83,7 @@ public final void testAddOKEvent() { @Test public final void testAddTroubleEvent() { - AuditEventType eventType = TroubledStatusFlagEvent.Factory.newInstance(); - auditTrailService.addUpdateEvent( auditable, eventType, "nothing special, just testing" ); + auditTrailService.addUpdateEvent( auditable, TroubledStatusFlagEvent.class, "nothing special, just testing" ); AuditEvent ev = auditable.getAuditTrail().getLast(); assertNotNull( ev ); assertNotNull( ev.getId() ); @@ -104,8 +102,7 @@ public final void testAddTroubleEvent() { @Test public final void testAddUpdateEventAuditableAuditEventTypeString() { - AuditEventType f = AlignmentBasedGeneMappingEvent.Factory.newInstance(); - auditTrailService.addUpdateEvent( auditable, f, "nothing special, just testing" ); + auditTrailService.addUpdateEvent( auditable, AlignmentBasedGeneMappingEvent.class, "nothing special, just testing" ); AuditTrail auditTrail = auditable.getAuditTrail(); assertNotNull( auditTrail ); AuditEvent ev = auditable.getAuditTrail().getLast(); @@ -128,8 +125,7 @@ public final void testAddUpdateEventAuditableString() { @Test public final void testAddNeedsAttentionEvent() { - AuditEventType eventType = NeedsAttentionEvent.Factory.newInstance(); - auditTrailService.addUpdateEvent( auditable, eventType, "nothing special, just testing" ); + auditTrailService.addUpdateEvent( auditable, NeedsAttentionEvent.class, "nothing special, just testing" ); AuditEvent ev = auditable.getAuditTrail().getLast(); assertNotNull( ev ); assertNotNull( ev.getId() ); @@ -152,8 +148,7 @@ public final void testAddNeedsAttentionEvent() { @Test public final void testAddDoesNotNeedsAttentionEvent() { - AuditEventType eventType = DoesNotNeedAttentionEvent.Factory.newInstance(); - auditTrailService.addUpdateEvent( auditable, eventType, "nothing special, just testing" ); + auditTrailService.addUpdateEvent( auditable, DoesNotNeedAttentionEvent.class, "nothing special, just testing" ); AuditEvent ev = auditable.getAuditTrail().getLast(); assertNotNull( ev ); assertNotNull( ev.getId() ); @@ -176,8 +171,7 @@ public final void testAddDoesNotNeedsAttentionEvent() { @Test public final void testGetEntitiesWithEvent() { - AuditEventType eventType = SampleRemovalEvent.Factory.newInstance(); - auditTrailService.addUpdateEvent( auditable, eventType, "nothing special, just testing" ); + auditTrailService.addUpdateEvent( auditable, SampleRemovalEvent.class, "nothing special, just testing" ); AuditEvent ev = auditable.getAuditTrail().getLast(); assertNotNull( ev ); assertNotNull( ev.getId() ); @@ -190,16 +184,4 @@ public final void testGetEntitiesWithEvent() { events = auditTrailService.getEvents( auditable ); assertTrue( events.contains( ev ) ); } - - @Test - public final void testReflectionOnFactory() throws Exception { - Class type = DoesNotNeedAttentionEvent.class; - AuditEventType auditEventType; - - Class factory = Class.forName( type.getName() + "$Factory" ); - Method method = factory.getMethod( "newInstance" ); - auditEventType = ( AuditEventType ) method.invoke( type ); - assertNotNull( auditEventType ); - assertTrue( auditEventType instanceof DoesNotNeedAttentionEvent ); - } } diff --git a/gemma-core/src/test/java/ubic/gemma/model/common/auditAndSecurity/eventType/AuditEventTypeTest.java b/gemma-core/src/test/java/ubic/gemma/model/common/auditAndSecurity/eventType/AuditEventTypeTest.java new file mode 100644 index 0000000000..1ae042933f --- /dev/null +++ b/gemma-core/src/test/java/ubic/gemma/model/common/auditAndSecurity/eventType/AuditEventTypeTest.java @@ -0,0 +1,19 @@ +package ubic.gemma.model.common.auditAndSecurity.eventType; + +import org.junit.Test; + +import static org.assertj.core.api.Assertions.assertThat; + +public class AuditEventTypeTest { + + @Test + public void test() { + BatchProblemsUpdateEvent event1 = new BatchProblemsUpdateEvent(); + BatchProblemsUpdateEvent event2 = new BatchProblemsUpdateEvent(); + assertThat( event1 ).isEqualTo( event2 ); + assertThat( event1 ).hasSameHashCodeAs( BatchProblemsUpdateEvent.class ); + assertThat( event1 ).hasSameHashCodeAs( event2 ); + assertThat( event1 ).hasToString( BatchProblemsUpdateEvent.class.getName() ); + } + +} \ No newline at end of file diff --git a/gemma-web/src/main/java/ubic/gemma/web/controller/expression/experiment/ExpressionExperimentController.java b/gemma-web/src/main/java/ubic/gemma/web/controller/expression/experiment/ExpressionExperimentController.java index 28e787bbbd..7e7a7c6b5c 100644 --- a/gemma-web/src/main/java/ubic/gemma/web/controller/expression/experiment/ExpressionExperimentController.java +++ b/gemma-web/src/main/java/ubic/gemma/web/controller/expression/experiment/ExpressionExperimentController.java @@ -1118,8 +1118,7 @@ public ExpressionExperimentDetailsValueObject updateBasics( UpdateEEDetailsComma if ( changed ) { ExpressionExperimentController.log.info( "Updating " + ee ); - auditTrailService - .addUpdateEvent( ee, CommentedEvent.Factory.newInstance(), "Updated experiment details", details ); + auditTrailService.addUpdateEvent( ee, CommentedEvent.class, "Updated experiment details", details ); expressionExperimentService.update( ee ); } diff --git a/gemma-web/src/main/java/ubic/gemma/web/controller/expression/experiment/ExpressionExperimentFormController.java b/gemma-web/src/main/java/ubic/gemma/web/controller/expression/experiment/ExpressionExperimentFormController.java index b4812a0106..0034983485 100644 --- a/gemma-web/src/main/java/ubic/gemma/web/controller/expression/experiment/ExpressionExperimentFormController.java +++ b/gemma-web/src/main/java/ubic/gemma/web/controller/expression/experiment/ExpressionExperimentFormController.java @@ -247,7 +247,7 @@ public ModelAndView onSubmit( HttpServletRequest request, HttpServletResponse re + "/expressionExperiment/showExpressionExperiment.html?id=" + eeCommand.getId() ) ); } - private void audit( ExpressionExperiment ee, AuditEventType eventType, String note ) { + private void audit( ExpressionExperiment ee, Class eventType, String note ) { auditTrailService.addUpdateEvent( ee, eventType, note ); } @@ -331,7 +331,7 @@ private boolean updateBioMaterialMap( HttpServletRequest request, ExpressionExpe * fouled up. */ BaseFormController.log.info( "There were changes to the BioMaterial -> BioAssay map" ); - this.audit( expressionExperiment, BioMaterialMappingUpdate.Factory.newInstance(), + this.audit( expressionExperiment, BioMaterialMappingUpdate.class, newBioMaterialCount + " biomaterials" ); // remove unnecessary biomaterial associations Collection deleteKeys = deleteAssociations.keySet(); for ( BioAssay assay : deleteKeys ) { diff --git a/gemma-web/src/main/java/ubic/gemma/web/remote/AuditController.java b/gemma-web/src/main/java/ubic/gemma/web/remote/AuditController.java index 194f2d9812..e97173187a 100644 --- a/gemma-web/src/main/java/ubic/gemma/web/remote/AuditController.java +++ b/gemma-web/src/main/java/ubic/gemma/web/remote/AuditController.java @@ -22,7 +22,6 @@ import org.apache.commons.logging.LogFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; -import ubic.gemma.model.common.AbstractAuditable; import ubic.gemma.model.common.Auditable; import ubic.gemma.model.common.auditAndSecurity.AuditAction; import ubic.gemma.model.common.auditAndSecurity.AuditEvent; @@ -63,7 +62,7 @@ public class AuditController { @SuppressWarnings("unchecked") public void addAuditEvent( EntityDelegator e, String auditEventType, String comment, String detail ) { - AbstractAuditable entity = this.getAuditable( e ); + Auditable entity = this.getAuditable( e ); if ( entity == null ) { AuditController.log.warn( "Couldn't find Auditable represented by " + e ); return; @@ -76,12 +75,11 @@ public void addAuditEvent( EntityDelegator e, String auditEventType, String comm throw new RuntimeException( "Unknown event type: " + auditEventType ); } - auditTrailService.addUpdateEvent( entity, ( Class ) clazz, comment, detail ); - AuditEvent auditEvent = entity.getAuditTrail().getLast(); + AuditEvent auditEvent = auditTrailService.addUpdateEvent( entity, ( Class ) clazz, comment, detail ); if ( auditEvent == null ) { AuditController.log.error( "Persisting the audit event failed! On auditable id " + entity.getId() ); } else { - AuditController.log.info( "created new event: " + auditEvent ); + AuditController.log.info( String.format( "created new event: %s on %s.", auditEvent, entity ) ); } } @@ -111,14 +109,14 @@ public Collection getEvents( EntityDelegator e ) { return result; } - private AbstractAuditable getAuditable( EntityDelegator e ) { + private Auditable getAuditable( EntityDelegator e ) { if ( e == null || e.getId() == null ) return null; if ( e.getClassDelegatingFor() == null ) return null; Class clazz; - AbstractAuditable result; + Auditable result; try { clazz = Class.forName( e.getClassDelegatingFor() ); } catch ( ClassNotFoundException e1 ) { diff --git a/gemma-web/src/test/java/ubic/gemma/web/controller/expression/CuratableValueObjectTest.java b/gemma-web/src/test/java/ubic/gemma/web/controller/expression/CuratableValueObjectTest.java index 36bb762580..161ef06b7d 100644 --- a/gemma-web/src/test/java/ubic/gemma/web/controller/expression/CuratableValueObjectTest.java +++ b/gemma-web/src/test/java/ubic/gemma/web/controller/expression/CuratableValueObjectTest.java @@ -144,7 +144,7 @@ public void testCuratableValueObjectInteraction() { // Make array design troubled this.curationDetailsService.update( this.arrayDesign, AuditEvent.Factory .newInstance( new Date(), AuditAction.UPDATE, "testing trouble update on platform", - "trouble update details", null, TroubledStatusFlagEvent.Factory.newInstance() ) ); + "trouble update details", null, new TroubledStatusFlagEvent() ) ); adVO = this.arrayDesignService.loadValueObject( arrayDesign ); assertTrue( adVO.getTroubled() ); @@ -160,7 +160,7 @@ public void testCuratableValueObjectInteraction() { // Make expression experiment troubled this.curationDetailsService.update( this.expressionExperiment, AuditEvent.Factory .newInstance( new Date(), AuditAction.UPDATE, "testing trouble update on expression experiment", - "trouble update details", null, TroubledStatusFlagEvent.Factory.newInstance() ) ); + "trouble update details", null, new TroubledStatusFlagEvent() ) ); eeDVO = new ExpressionExperimentDetailsValueObject( this.expressionExperimentService.loadValueObject( expressionExperiment ) ); diff --git a/gemma-web/src/test/java/ubic/gemma/web/remote/AuditControllerTest.java b/gemma-web/src/test/java/ubic/gemma/web/remote/AuditControllerTest.java index 8dfbd0d702..7994d24f3a 100644 --- a/gemma-web/src/test/java/ubic/gemma/web/remote/AuditControllerTest.java +++ b/gemma-web/src/test/java/ubic/gemma/web/remote/AuditControllerTest.java @@ -19,6 +19,7 @@ package ubic.gemma.web.remote; +import org.assertj.core.api.Assertions; import org.junit.Test; import org.springframework.beans.factory.annotation.Autowired; import ubic.gemma.model.common.auditAndSecurity.AuditEvent; @@ -31,6 +32,7 @@ import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertNotNull; +import static org.assertj.core.api.Assertions.assertThat; /** * @author Paul @@ -57,13 +59,10 @@ public void testAddUpdateEvent() { assertNotNull( e ); e = expressionExperimentService.thawLite( e ); assertNotNull( e ); - AuditTrail auditTrail = e.getAuditTrail(); - assertNotNull( auditTrail ); - AuditEvent lastEvent = auditTrail.getLast(); - assertNotNull( lastEvent ); - AuditEventType eventType = lastEvent.getEventType(); - assertNotNull( eventType ); - assertEquals( CommentedEvent.class, eventType.getClass() ); + + assertThat( e.getAuditTrail().getEvents() ) + .extracting( "eventType" ) + .containsExactly( null, new CommentedEvent(), null ); } } From 8e0234cb13b1ddd80badc305bd0054c947a1cc36 Mon Sep 17 00:00:00 2001 From: Guillaume Poirier-Morency Date: Mon, 5 Dec 2022 15:13:48 -0800 Subject: [PATCH 5/6] Add missing @Transactional annotations in CompositeSequenceServiceImpl --- .../expression/designElement/CompositeSequenceServiceImpl.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/gemma-core/src/main/java/ubic/gemma/persistence/service/expression/designElement/CompositeSequenceServiceImpl.java b/gemma-core/src/main/java/ubic/gemma/persistence/service/expression/designElement/CompositeSequenceServiceImpl.java index 113874923d..e3ff0d3c81 100644 --- a/gemma-core/src/main/java/ubic/gemma/persistence/service/expression/designElement/CompositeSequenceServiceImpl.java +++ b/gemma-core/src/main/java/ubic/gemma/persistence/service/expression/designElement/CompositeSequenceServiceImpl.java @@ -175,16 +175,19 @@ public Map> getGenesWithS } @Override + @Transactional(readOnly = true) public Collection getRawSummary( Collection compositeSequences, Integer numResults ) { return this.compositeSequenceDao.getRawSummary( compositeSequences ); } @Override + @Transactional(readOnly = true) public Collection getRawSummary( ArrayDesign arrayDesign, Integer numResults ) { return this.compositeSequenceDao.getRawSummary( arrayDesign, numResults ); } @Override + @Transactional(readOnly = true) public Collection getGeneMappingSummary( BioSequence biologicalCharacteristic, CompositeSequenceValueObject cs ) { From 5186dad193946c22b33b808a7467bc079c8adf34 Mon Sep 17 00:00:00 2001 From: Guillaume Poirier-Morency Date: Mon, 5 Dec 2022 15:30:12 -0800 Subject: [PATCH 6/6] Fix incorrect setParameter when thawing BlatResult --- .../service/genome/sequenceAnalysis/BlatResultDaoImpl.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/gemma-core/src/main/java/ubic/gemma/persistence/service/genome/sequenceAnalysis/BlatResultDaoImpl.java b/gemma-core/src/main/java/ubic/gemma/persistence/service/genome/sequenceAnalysis/BlatResultDaoImpl.java index a2ffd210ea..35c4333b9d 100644 --- a/gemma-core/src/main/java/ubic/gemma/persistence/service/genome/sequenceAnalysis/BlatResultDaoImpl.java +++ b/gemma-core/src/main/java/ubic/gemma/persistence/service/genome/sequenceAnalysis/BlatResultDaoImpl.java @@ -77,8 +77,9 @@ public Collection thaw( Collection blatResults ) { + " left join fetch b.searchedDatabase left join fetch b.targetChromosome tc left join tc.taxon left join fetch tc.sequence" + " left join fetch qs.taxon t " + " left join fetch t.externalDatabase left join fetch qs.sequenceDatabaseEntry s " - + " left join fetch s.externalDatabase" + " where b.id in ( :ids)" ) - .setParameter( "ids", EntityUtils.getIds( blatResults ) ) + + " left join fetch s.externalDatabase" + + " where b in :blatResults" ) + .setParameterList( "blatResults", blatResults ) .list(); }