/**
*
*/
package org.goko.gcode.rs274ngcv3.xml.loader.reference;
import org.goko.core.common.exception.GkException;
import org.goko.core.gcode.element.IGCodeProvider;
import org.goko.core.gcode.rs274ngcv3.IRS274NGCService;
import org.goko.core.gcode.rs274ngcv3.RS274GCodeReference;
import org.goko.core.workspace.service.ILoader;
import org.goko.core.workspace.service.IMapperService;
import org.goko.gcode.rs274ngcv3.xml.bean.XmlRS274GCodeReference;
/**
* @author Psyko
* @date 23 nov. 2016
*/
public class RS274GCodeReferenceLoader implements ILoader<XmlRS274GCodeReference, RS274GCodeReference> {
/** The RS274 GCode service*/
private IRS274NGCService rs274service;
/**
* @param rs274service
*/
public RS274GCodeReferenceLoader(IRS274NGCService rs274service) {
super();
this.rs274service = rs274service;
}
/** (inheritDoc)
* @see org.goko.core.workspace.service.ILoader#load(java.lang.Object, org.goko.core.workspace.service.IMapperService)
*/
@Override
public RS274GCodeReference load(XmlRS274GCodeReference input, IMapperService mapperService) throws GkException {
IGCodeProvider provider = rs274service.getGCodeProvider(input.getCode());
return new RS274GCodeReference(rs274service, provider.getId());
}
/** (inheritDoc)
* @see org.goko.core.workspace.service.ILoader#getOutputClass()
*/
@Override
public Class<RS274GCodeReference> getOutputClass() {
return RS274GCodeReference.class;
}
/** (inheritDoc)
* @see org.goko.core.workspace.service.ILoader#getInputClass()
*/
@Override
public Class<XmlRS274GCodeReference> getInputClass() {
return XmlRS274GCodeReference.class;
}
}