/*
 * Copyright 2008-2020 the original author or authors.
 *
 * 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
 *
 *      https://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package org.springframework.data.domain;

import java.time.temporal.TemporalAccessor;
import java.util.Optional;

Interface for auditable entities. Allows storing and retrieving creation and modification information. The changing instance (typically some user) is to be defined by a generics definition.
Author:Oliver Gierke
Type parameters:
  • <U> – the auditing type. Typically some kind of user.
  • <ID> – the type of the audited type's identifier
/** * Interface for auditable entities. Allows storing and retrieving creation and modification information. The changing * instance (typically some user) is to be defined by a generics definition. * * @param <U> the auditing type. Typically some kind of user. * @param <ID> the type of the audited type's identifier * @author Oliver Gierke */
public interface Auditable<U, ID, T extends TemporalAccessor> extends Persistable<ID> {
Returns the user who created this entity.
Returns:the createdBy
/** * Returns the user who created this entity. * * @return the createdBy */
Optional<U> getCreatedBy();
Sets the user who created this entity.
Params:
  • createdBy – the creating entity to set
/** * Sets the user who created this entity. * * @param createdBy the creating entity to set */
void setCreatedBy(U createdBy);
Returns the creation date of the entity.
Returns:the createdDate
/** * Returns the creation date of the entity. * * @return the createdDate */
Optional<T> getCreatedDate();
Sets the creation date of the entity.
Params:
  • creationDate – the creation date to set
/** * Sets the creation date of the entity. * * @param creationDate the creation date to set */
void setCreatedDate(T creationDate);
Returns the user who modified the entity lastly.
Returns:the lastModifiedBy
/** * Returns the user who modified the entity lastly. * * @return the lastModifiedBy */
Optional<U> getLastModifiedBy();
Sets the user who modified the entity lastly.
Params:
  • lastModifiedBy – the last modifying entity to set
/** * Sets the user who modified the entity lastly. * * @param lastModifiedBy the last modifying entity to set */
void setLastModifiedBy(U lastModifiedBy);
Returns the date of the last modification.
Returns:the lastModifiedDate
/** * Returns the date of the last modification. * * @return the lastModifiedDate */
Optional<T> getLastModifiedDate();
Sets the date of the last modification.
Params:
  • lastModifiedDate – the date of the last modification to set
/** * Sets the date of the last modification. * * @param lastModifiedDate the date of the last modification to set */
void setLastModifiedDate(T lastModifiedDate); }