Class File
- java.lang.Object
-
- no.unit.nva.model.associatedartifacts.file.File
-
- All Implemented Interfaces:
no.unit.nva.commons.json.JsonSerializable,AssociatedArtifact
- Direct Known Subclasses:
AdministrativeAgreement,LegacyFile,PublishedFile,UnpublishedFile
public abstract class File extends java.lang.Object implements no.unit.nva.commons.json.JsonSerializable, AssociatedArtifact
An object that represents the description of a file.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classFile.Builder
-
Field Summary
Fields Modifier and Type Field Description static java.lang.StringADMINISTRATIVE_AGREEMENT_FIELDstatic java.lang.StringEMBARGO_DATE_FIELDstatic java.lang.StringIDENTIFIER_FIELDstatic java.lang.StringLICENSE_FIELDstatic java.lang.StringMIME_TYPE_FIELDstatic java.lang.StringMISSING_LICENSEstatic java.lang.StringNAME_FIELDstatic java.lang.StringPUBLISHER_AUTHORITY_FIELDstatic java.lang.StringSIZE_FIELD
-
Constructor Summary
Constructors Modifier Constructor Description protectedFile(java.util.UUID identifier, java.lang.String name, java.lang.String mimeType, java.lang.Long size, License license, boolean administrativeAgreement, boolean publisherAuthority, java.time.Instant embargoDate)Constructor for no.unit.nva.file.model.File objects.
-
Method Summary
All Methods Static Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description static File.Builderbuilder()booleanequals(java.lang.Object o)booleanfileDoesNotHaveActiveEmbargo()java.util.Optional<java.time.Instant>getEmbargoDate()java.util.UUIDgetIdentifier()LicensegetLicense()java.lang.StringgetMimeType()java.lang.StringgetName()java.lang.LonggetSize()inthashCode()booleanisAdministrativeAgreement()booleanisPublisherAuthority()abstract booleanisVisibleForNonOwner()PublishedFiletoPublishedFile()java.lang.StringtoString()AdministrativeAgreementtoUnpublishableFile()UnpublishedFiletoUnpublishedFile()voidvalidate()Validate the file.
-
-
-
Field Detail
-
IDENTIFIER_FIELD
public static final java.lang.String IDENTIFIER_FIELD
- See Also:
- Constant Field Values
-
NAME_FIELD
public static final java.lang.String NAME_FIELD
- See Also:
- Constant Field Values
-
MIME_TYPE_FIELD
public static final java.lang.String MIME_TYPE_FIELD
- See Also:
- Constant Field Values
-
SIZE_FIELD
public static final java.lang.String SIZE_FIELD
- See Also:
- Constant Field Values
-
LICENSE_FIELD
public static final java.lang.String LICENSE_FIELD
- See Also:
- Constant Field Values
-
ADMINISTRATIVE_AGREEMENT_FIELD
public static final java.lang.String ADMINISTRATIVE_AGREEMENT_FIELD
- See Also:
- Constant Field Values
-
PUBLISHER_AUTHORITY_FIELD
public static final java.lang.String PUBLISHER_AUTHORITY_FIELD
- See Also:
- Constant Field Values
-
EMBARGO_DATE_FIELD
public static final java.lang.String EMBARGO_DATE_FIELD
- See Also:
- Constant Field Values
-
MISSING_LICENSE
public static final java.lang.String MISSING_LICENSE
- See Also:
- Constant Field Values
-
-
Constructor Detail
-
File
protected File(java.util.UUID identifier, java.lang.String name, java.lang.String mimeType, java.lang.Long size, License license, boolean administrativeAgreement, boolean publisherAuthority, java.time.Instant embargoDate)Constructor for no.unit.nva.file.model.File objects. A file object is valid if it has a license or is explicitly marked as an administrative agreement.- Parameters:
identifier- A UUID that identifies the file in storagename- The original name of the filemimeType- The mimetype of the filesize- The size of the filelicense- The license for the file, may be null if and only if the file is an administrative agreementadministrativeAgreement- True if the file is an administrative agreementpublisherAuthority- True if the file owner has publisher authorityembargoDate- The date after which the file may be published
-
-
Method Detail
-
builder
public static File.Builder builder()
-
validate
public void validate()
Validate the file.
-
getIdentifier
public java.util.UUID getIdentifier()
-
getName
public java.lang.String getName()
-
getMimeType
public java.lang.String getMimeType()
-
getSize
public java.lang.Long getSize()
-
getLicense
public License getLicense()
-
isAdministrativeAgreement
public boolean isAdministrativeAgreement()
-
isPublisherAuthority
public boolean isPublisherAuthority()
-
getEmbargoDate
public java.util.Optional<java.time.Instant> getEmbargoDate()
-
fileDoesNotHaveActiveEmbargo
public boolean fileDoesNotHaveActiveEmbargo()
-
toUnpublishedFile
public UnpublishedFile toUnpublishedFile()
-
toPublishedFile
public PublishedFile toPublishedFile()
-
toUnpublishableFile
public final AdministrativeAgreement toUnpublishableFile()
-
isVisibleForNonOwner
public abstract boolean isVisibleForNonOwner()
-
hashCode
public int hashCode()
- Overrides:
hashCodein classjava.lang.Object
-
equals
public boolean equals(java.lang.Object o)
- Overrides:
equalsin classjava.lang.Object
-
toString
public java.lang.String toString()
- Overrides:
toStringin classjava.lang.Object
-
-