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

nl.vpro.domain.gtaa.GTAAConcept Maven / Gradle / Ivy

There is a newer version: 8.3.0
Show newest version
package nl.vpro.domain.gtaa;

import java.io.Serializable;
import java.net.URI;
import java.time.Instant;
import java.util.List;

import com.fasterxml.jackson.annotation.JsonSubTypes;
import com.fasterxml.jackson.annotation.JsonTypeInfo;
import com.fasterxml.jackson.databind.annotation.JsonTypeIdResolver;


/**
 * These are the data transfer objects that we use for thesaurus objects
 * 

* They are *

    *
  • The 'POMS' representation of objects in the thesaurus, the frontend API directly maps the second to the first
  • *
  • In the POMS backend there is also a database representation of these objects (called GTAARecord)
  • *
*/ @JsonTypeInfo( use = JsonTypeInfo.Id.CUSTOM, property = "objectType" ) @JsonTypeIdResolver(GTAAConceptIdResolver.class) @JsonSubTypes( { @JsonSubTypes.Type(value = GTAAPerson.class), @JsonSubTypes.Type(value = GTAATopic.class), @JsonSubTypes.Type(value = GTAATopicBandG.class), @JsonSubTypes.Type(value = GTAAGenre.class), @JsonSubTypes.Type(value = GTAAGeographicName.class), @JsonSubTypes.Type(value = GTAAMaker.class), @JsonSubTypes.Type(value = GTAAName.class), @JsonSubTypes.Type(value = GTAAClassification.class), @JsonSubTypes.Type(value = GTAAGenreFilmMuseum.class) }) public sealed interface GTAAConcept extends Serializable permits AbstractGTAAConcept { URI getId(); List getScopeNotes(); Instant getLastModified(); String getName(); Status getStatus(); URI getRedirectedFrom(); }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy