/*
* Copyright (c) 2017 OBiBa. All rights reserved.
*
* This program and the accompanying materials
* are made available under the terms of the GNU Public License v3.0.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
package org.obiba.magma;
import java.io.Serializable;
import javax.validation.constraints.NotNull;
/**
* A value loader allows deferred loading of values given a reference (file path, url etc.).
*/
public interface ValueLoader extends Serializable {
/**
* Check if the referred value is null without loading the value, in other words check if the reference is null.
*
* @return
*/
boolean isNull();
/**
* Load the value from its reference.
*
* @return
*/
@NotNull
Object getValue();
/**
* Get the size of the value.
*
* @return
*/
long getLength();
}