package sk.stuba.fiit.perconik.core.persistence.serialization; import com.google.common.base.Optional; import sk.stuba.fiit.perconik.core.Resource; import sk.stuba.fiit.perconik.core.persistence.ResourceRegistration; /** * Interface implemented by optional holders of serialized {@link Resource} * data. Instances of classes implementing this interface provide optional * access to {@code Resource} object that can be serialized and deserialized. * These instances usually hold a serializable resource. A serializable * resource is a concrete implementation of {@code Resource} interface * also implementing the {@link java.io.Serializable} interface. * * <p><b>Note:</b> Holding serialized resource data * or a serializable resource object is optional. * * @author Pavol Zbell * @since 1.0 */ public interface SerializedResourceData extends ResourceRegistration { /** * Returns {@code true} if this object holds * a serialized resource, {@code false} otherwise. * * <p>More formally, this method returns {@code true} if and * only if {@code getSerializedResource().isPresent() == true}. */ public boolean hasSerializedResource(); /** * Gets the serialized resource if available. */ public Optional<Resource<?>> getSerializedResource(); }