All Downloads are FREE. Search and download functionalities are using the official Maven repository.

de.factoryfx.data.storage.StoredDataMetadata Maven / Gradle / Ivy

package de.factoryfx.data.storage;

import java.time.LocalDateTime;

import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.annotation.JsonTypeInfo;

/**
 * metadata for a stored historical factory
 */
@JsonInclude(JsonInclude.Include.NON_EMPTY)
public class StoredDataMetadata {
    public final LocalDateTime creationTime;
    /**id for the complete configuration, NOT any factory id*/
    public final String id;
    public final String user;
    public final String comment;

    @JsonTypeInfo(use=JsonTypeInfo.Id.MINIMAL_CLASS, include=JsonTypeInfo.As.PROPERTY, property="@class")
    public final T changeSummary;

    /**the base version on the server*/
    public final  String baseVersionId;

    /** version of the factory structure used for migration*/
    public final  int dataModelVersion;

    @JsonCreator
    public StoredDataMetadata(
            @JsonProperty("creationTime")LocalDateTime creationTime,
            @JsonProperty("id")String id,
            @JsonProperty("user")String user,
            @JsonProperty("comment")String comment,
            @JsonProperty("baseVersionId")String baseVersionId,
            @JsonProperty("dataModelVersion")int dataModelVersion,
            @JsonProperty("changeSummary")T changeSummary) {
        this.creationTime = creationTime;
        this.id = id;
        this.user = user;
        this.comment = comment;
        this.changeSummary = changeSummary;
        this.baseVersionId = baseVersionId;
        this.dataModelVersion = dataModelVersion;
    }

    public StoredDataMetadata( String id, String user, String comment, String baseVersionId, int dataModelVersion, T changeSummary) {
        this.creationTime=LocalDateTime.now();
        this.id = id;
        this.user = user;
        this.comment = comment;
        this.changeSummary = changeSummary;
        this.baseVersionId = baseVersionId;
        this.dataModelVersion = dataModelVersion;
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy