/**
*
*/
package org.goko.gcode.rs274ngcv3.xml.loader.modifier;
import org.goko.core.common.exception.GkException;
import org.goko.core.common.io.xml.quantity.XmlAngle;
import org.goko.core.common.io.xml.quantity.XmlLength;
import org.goko.core.gcode.rs274ngcv3.modifier.array.ArrayModifier;
import org.goko.core.math.Tuple6b;
import org.goko.core.workspace.service.IMapperService;
import org.goko.gcode.rs274ngcv3.xml.bean.modifier.XmlArrayModifier;
/**
* Array modifier loader
* @author Psyko
* @date 15 sept. 2016
*/
public class ArrayModifierLoader extends AbstractModifierLoader<XmlArrayModifier, ArrayModifier> {
/** (inheritDoc)
* @see org.goko.core.workspace.service.ILoader#getOutputClass()
*/
@Override
public Class<ArrayModifier> getOutputClass() {
return ArrayModifier.class;
}
/** (inheritDoc)
* @see org.goko.core.workspace.service.ILoader#getInputClass()
*/
@Override
public Class<XmlArrayModifier> getInputClass() {
return XmlArrayModifier.class;
}
/** (inheritDoc)
* @see org.goko.gcode.rs274ngcv3.ui.workspace.io.loader.modifier.AbstractModifierLoader#loadModifierData(org.goko.core.gcode.rs274ngcv3.element.IModifier, org.goko.gcode.rs274ngcv3.ui.workspace.io.XmlGCodeModifier, org.goko.core.workspace.service.IMapperService)
*/
@Override
protected void loadModifierData(ArrayModifier output, XmlArrayModifier input, IMapperService mapperService) throws GkException {
output.setCount(input.getCopyCount());
output.setOffset(new Tuple6b(XmlLength.valueOf(input.getX()),
XmlLength.valueOf(input.getY()),
XmlLength.valueOf(input.getZ()),
XmlAngle.valueOf(input.getA()),
XmlAngle.valueOf(input.getB()),
XmlAngle.valueOf(input.getC())));
}
/** (inheritDoc)
* @see org.goko.gcode.rs274ngcv3.ui.workspace.io.loader.modifier.AbstractModifierLoader#createOutputInstance()
*/
@Override
protected ArrayModifier createOutputInstance() {
return new ArrayModifier();
}
}