package org.gcube.smartgears.configuration; import org.gcube.com.fasterxml.jackson.annotation.JsonAutoDetect; import org.gcube.com.fasterxml.jackson.annotation.JsonInclude; import org.gcube.com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility; import org.gcube.com.fasterxml.jackson.annotation.JsonInclude.Include; import org.gcube.common.validator.annotations.IsValid; import org.gcube.common.validator.annotations.NotNull; import org.gcube.smartgears.persistence.PersistenceWriter; @JsonInclude(value = Include.NON_NULL) @JsonAutoDetect(fieldVisibility = Visibility.ANY) public class PersistenceConfiguration { @NotNull private Class implementationClass; @IsValid private ComponentConfiguration writerConfiguration; protected PersistenceConfiguration() {} public PersistenceConfiguration(Class implementationClass, T writerConfiguration) { super(); this.implementationClass = implementationClass; this.writerConfiguration = writerConfiguration; } public Class getImplementationClass() { return this.implementationClass; } public ComponentConfiguration getWriterConfiguration() { return writerConfiguration; } }