package com.kryptnostic.v2.storage.models; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonProperty; import com.google.common.base.Optional; import com.kryptnostic.v2.constants.Names; import com.kryptnostic.v2.storage.models.ObjectMetadata.CryptoMaterial; import com.kryptnostic.v2.storage.types.TypeUUIDs; public class CreateMetadataObjectRequest extends CreateObjectRequest { private final byte[] address; private final Optional<Double> score; public CreateMetadataObjectRequest( byte[] address ) { super( TypeUUIDs.INDEX_METADATA, Optional.<VersionedObjectKey> absent(), Optional.<VersionedObjectKey> absent(), CryptoMaterial.DEFAULT_REQUIRED_CRYPTO_MATERIALS, Optional.<Boolean> absent(), Optional.<Boolean> absent(), Optional.<Boolean> absent() ); this.address = address; this.score = Optional.absent(); } @JsonCreator public CreateMetadataObjectRequest( @JsonProperty( Names.ADDRESS_FIELD ) byte[] address, @JsonProperty( Names.PARENT_OBJECT_ID_FIELD ) Optional<VersionedObjectKey> parentObjectId, @JsonProperty( Names.ID_FIELD ) Optional<VersionedObjectKey> objectId, @JsonProperty( Names.SCORE_FIELD ) Optional<Double> score, @JsonProperty( Names.INHERITING_OWNERSHIP_FIELD ) Optional<Boolean> inheritOwnership, @JsonProperty( Names.INHERITING_CRYPTO_SERVICE_FIELD ) Optional<Boolean> inheritCryptoService, @JsonProperty( Names.LOCKED_FIELD ) Optional<Boolean> locked) { super( TypeUUIDs.INDEX_METADATA, parentObjectId, objectId, CryptoMaterial.DEFAULT_REQUIRED_CRYPTO_MATERIALS, inheritOwnership, inheritCryptoService, locked ); this.address = address; this.score = score; } @JsonProperty( Names.ADDRESS_FIELD ) public byte[] getAddress() { return address; } @JsonProperty( Names.SCORE_FIELD ) public Optional<Double> getScore() { return score; } }