/** * */ package org.goko.gcode.rs274ngcv3.xml.service; import java.util.ArrayList; import java.util.List; import org.goko.core.common.exception.GkException; import org.goko.core.common.service.AbstractGokoService; import org.goko.core.execution.monitor.io.bean.XmlExecutionToken; import org.goko.core.gcode.rs274ngcv3.IRS274NGCService; import org.goko.core.workspace.service.IExporter; import org.goko.core.workspace.service.ILoader; import org.goko.gcode.rs274ngcv3.xml.bean.XmlRS274GCodeReference; import org.goko.gcode.rs274ngcv3.xml.bean.modifier.XmlRotateModifier; import org.goko.gcode.rs274ngcv3.xml.bean.modifier.XmlScaleModifier; import org.goko.gcode.rs274ngcv3.xml.bean.modifier.XmlSegmentizeModifier; import org.goko.gcode.rs274ngcv3.xml.bean.modifier.XmlTranslateModifier; import org.goko.gcode.rs274ngcv3.xml.bean.modifier.XmlWrapModifier; import org.goko.gcode.rs274ngcv3.xml.bean.source.XmlExternalFileGCodeSource; import org.goko.gcode.rs274ngcv3.xml.bean.source.XmlResourceLocationGCodeSource; import org.goko.gcode.rs274ngcv3.xml.bean.source.XmlStringGCodeSource; import org.goko.gcode.rs274ngcv3.xml.exporter.modifier.ArrayModifierExporter; import org.goko.gcode.rs274ngcv3.xml.exporter.modifier.RotateModifierExporter; import org.goko.gcode.rs274ngcv3.xml.exporter.modifier.ScaleModifierExporter; import org.goko.gcode.rs274ngcv3.xml.exporter.modifier.SegmentizeModifierExporter; import org.goko.gcode.rs274ngcv3.xml.exporter.modifier.TranslateModifierExporter; import org.goko.gcode.rs274ngcv3.xml.exporter.modifier.WrapModifierExporter; import org.goko.gcode.rs274ngcv3.xml.exporter.reference.RS274GCodeReferenceExporter; import org.goko.gcode.rs274ngcv3.xml.exporter.source.ResourceLocationGCodeSourceExporter; import org.goko.gcode.rs274ngcv3.xml.exporter.source.StringGCodeSourceExporter; import org.goko.gcode.rs274ngcv3.xml.loader.executiontoken.XmlExecutionTokenLoader; import org.goko.gcode.rs274ngcv3.xml.loader.modifier.ArrayModifierLoader; import org.goko.gcode.rs274ngcv3.xml.loader.modifier.RotateModifierLoader; import org.goko.gcode.rs274ngcv3.xml.loader.modifier.ScaleModifierLoader; import org.goko.gcode.rs274ngcv3.xml.loader.modifier.SegmentizeModifierLoader; import org.goko.gcode.rs274ngcv3.xml.loader.modifier.TranslateModifierLoader; import org.goko.gcode.rs274ngcv3.xml.loader.modifier.WrapModifierLoader; import org.goko.gcode.rs274ngcv3.xml.loader.reference.RS274GCodeReferenceLoader; import org.goko.gcode.rs274ngcv3.xml.loader.source.ResourceLocationGCodeSourceLoader; import org.goko.gcode.rs274ngcv3.xml.loader.source.StringGCodeSourceLoader; /** * @author Psyko * @date 25 nov. 2016 */ public class GCodeXmlPersistenceService extends AbstractGokoService implements IGCodeXmlPersistenceService { /** SERVICE ID */ private static final String SERVICE_ID = "org.goko.gcode.rs274ngcv3.xml.service.GCodeXmlPersistenceService"; /** Underlying IRS274NGCService */ private IRS274NGCService rs274service; /** (inheritDoc) * @see org.goko.core.common.service.IGokoService#getServiceId() */ @Override public String getServiceId() throws GkException { return SERVICE_ID; } /** (inheritDoc) * @see org.goko.core.common.service.AbstractGokoService#startService() */ @Override protected void startService() throws GkException { } /** (inheritDoc) * @see org.goko.core.workspace.service.IMapperProvider#getLoader() */ @Override public List<ILoader<?, ?>> getLoader() throws GkException { List<ILoader<?, ?>> loaders = new ArrayList<>(); loaders.add(new ResourceLocationGCodeSourceLoader()); loaders.add(new StringGCodeSourceLoader()); loaders.add(new SegmentizeModifierLoader()); loaders.add(new TranslateModifierLoader()); loaders.add(new ScaleModifierLoader()); loaders.add(new WrapModifierLoader()); loaders.add(new RotateModifierLoader()); loaders.add(new ArrayModifierLoader()); // Reference loaders.add(new RS274GCodeReferenceLoader(rs274service)); // Backward compatibility only loaders.add(new XmlExecutionTokenLoader(rs274service)); return loaders; } /** (inheritDoc) * @see org.goko.core.workspace.service.IMapperProvider#getExporter() */ @Override public List<IExporter<?, ?>> getExporter() throws GkException { List<IExporter<?, ?>> exporters = new ArrayList<>(); exporters.add(new ResourceLocationGCodeSourceExporter()); exporters.add(new StringGCodeSourceExporter()); exporters.add(new TranslateModifierExporter()); exporters.add(new SegmentizeModifierExporter()); exporters.add(new ScaleModifierExporter()); exporters.add(new WrapModifierExporter()); exporters.add(new RotateModifierExporter()); exporters.add(new ArrayModifierExporter()); // Reference exporters.add(new RS274GCodeReferenceExporter()); return exporters; } /** (inheritDoc) * @see org.goko.core.common.io.xml.IXmlPersistenceProvider#getSupportedClass() */ @Override public List<Class<?>> getSupportedClass() throws GkException { List<Class<?>> lstClazz = new ArrayList<>(); lstClazz.add(XmlExternalFileGCodeSource.class); lstClazz.add(XmlResourceLocationGCodeSource.class); lstClazz.add(XmlStringGCodeSource.class); lstClazz.add(XmlSegmentizeModifier.class); lstClazz.add(XmlTranslateModifier.class); lstClazz.add(XmlWrapModifier.class); lstClazz.add(XmlScaleModifier.class); lstClazz.add(XmlRotateModifier.class); lstClazz.add(XmlRS274GCodeReference.class); lstClazz.add(XmlExecutionToken.class); return lstClazz; } /** (inheritDoc) * @see org.goko.core.common.service.AbstractGokoService#stopService() */ @Override protected void stopService() throws GkException { } /** * @return the rs274service */ public IRS274NGCService getRs274service() { return rs274service; } /** * @param rs274service the rs274service to set */ public void setRs274service(IRS274NGCService rs274service) { this.rs274service = rs274service; } }