package org.goko.core.gcode.element;
import java.util.List;
import org.goko.core.common.exception.GkException;
import org.goko.core.gcode.element.validation.IValidationElement;
/**
* @author Psyko
* @date 22 nov. 2016
*/
public abstract class GCodeProviderReference implements IGCodeProvider{
/**
* Resolves the GCodeProvider referred by this object
* @return IGCodeProvider
* @throws GkException GkException
*/
protected abstract IGCodeProvider get();
/**
* Make sure this object refers to a valid provider
* @return <code>true</code> if the referred provider is valid, <code>false</code> otherwise
* @throws GkException GkException
*/
public abstract boolean isValid();
/** (inheritDoc)
* @see org.goko.core.gcode.element.validation.IValidationTarget#hasErrors()
*/
@Override
public boolean hasErrors() {
return get().hasErrors();
}
/** (inheritDoc)
* @see org.goko.core.gcode.element.validation.IValidationTarget#hasWarnings()
*/
@Override
public boolean hasWarnings() {
return get().hasWarnings();
}
/** (inheritDoc)
* @see org.goko.core.gcode.element.validation.IValidationTarget#getValidationElements()
*/
@Override
public List<IValidationElement> getValidationElements() {
return get().getValidationElements();
}
/** (inheritDoc)
* @see org.goko.core.gcode.element.validation.IValidationTarget#clearValidationElements()
*/
@Override
public void clearValidationElements() {
get().clearValidationElements();
}
/** (inheritDoc)
* @see org.goko.core.gcode.element.validation.IValidationTarget#addValidationElement(org.goko.core.gcode.element.validation.IValidationElement)
*/
@Override
public void addValidationElement(IValidationElement element) {
get().addValidationElement(element);
}
/** (inheritDoc)
* @see org.goko.core.common.utils.ICodeBean#getCode()
*/
@Override
public String getCode() {
return get().getCode();
}
/** (inheritDoc)
* @see org.goko.core.common.utils.ICodeBean#setCode(java.lang.String)
*/
@Override
public void setCode(String code) {
get().setCode(code);
}
/** (inheritDoc)
* @see org.goko.core.common.utils.IIdBean#getId()
*/
@Override
public Integer getId() {
return get().getId();
}
/** (inheritDoc)
* @see org.goko.core.common.utils.IIdBean#setId(java.lang.Integer)
*/
@Override
public void setId(Integer id) {
get().setId(id);
}
/** (inheritDoc)
* @see org.goko.core.gcode.element.IGCodeProvider#getLines()
*/
@Override
public List<GCodeLine> getLines() throws GkException {
return get().getLines();
}
/** (inheritDoc)
* @see org.goko.core.gcode.element.IGCodeProvider#getLinesCount()
*/
@Override
public int getLinesCount() throws GkException {
return get().getLinesCount();
}
/** (inheritDoc)
* @see org.goko.core.gcode.element.IGCodeProvider#getLine(java.lang.Integer)
*/
@Override
public GCodeLine getLine(Integer idLine) throws GkException {
return get().getLine(idLine);
}
/** (inheritDoc)
* @see org.goko.core.gcode.element.IGCodeProvider#getLineAtIndex(java.lang.Integer)
*/
@Override
public GCodeLine getLineAtIndex(Integer indexLine) throws GkException {
return get().getLineAtIndex(indexLine);
}
/** (inheritDoc)
* @see org.goko.core.gcode.element.IGCodeProvider#isLocked()
*/
@Override
public boolean isLocked() {
return get().isLocked();
}
/** (inheritDoc)
* @see org.goko.core.gcode.element.IGCodeProvider#setLocked(boolean)
*/
@Override
public void setLocked(boolean locked) {
get().setLocked(locked);
}
/** (inheritDoc)
* @see org.goko.core.gcode.element.IGCodeProvider#lock()
*/
@Override
public void lock() {
get().lock();
}
/** (inheritDoc)
* @see org.goko.core.gcode.element.IGCodeProvider#unlock()
*/
@Override
public void unlock() {
get().unlock();
}
/** (inheritDoc)
* @see org.goko.core.gcode.element.IGCodeProvider#getSource()
*/
@Override
public IGCodeProviderSource getSource() {
return get().getSource();
}
}