/** * */ package org.goko.core.workspace.mapper; import java.net.URI; import java.net.URISyntaxException; import org.goko.core.common.exception.GkException; import org.goko.core.common.exception.GkTechnicalException; import org.goko.core.workspace.io.URIResourceLocation; import org.goko.core.workspace.io.xml.XmlURIResourceLocation; import org.goko.core.workspace.service.ILoader; import org.goko.core.workspace.service.IMapperService; import org.goko.core.workspace.service.IWorkspaceService; /** * @author PsyKo * @date 19 mars 2016 */ public class URIResourceLocationLoader implements ILoader<XmlURIResourceLocation, URIResourceLocation>{ /** The workspace service */ private IWorkspaceService workspaceService; /** * @param workspaceService */ public URIResourceLocationLoader(IWorkspaceService workspaceService) { super(); this.workspaceService = workspaceService; } /** (inheritDoc) * @see org.goko.core.workspace.service.ILoader#load(java.lang.Object, org.goko.core.workspace.service.IMapperService) */ @Override public URIResourceLocation load(XmlURIResourceLocation input, IMapperService mapperService) throws GkException { URIResourceLocation location = null; try { URI uri = new URI(input.getUri()); location = (URIResourceLocation) workspaceService.getProject().getLocation().addResource(input.getUri(), uri); } catch (URISyntaxException e) { throw new GkTechnicalException(e); } return location; } /** (inheritDoc) * @see org.goko.core.workspace.service.ILoader#getOutputClass() */ @Override public Class<URIResourceLocation> getOutputClass() { return URIResourceLocation.class; } /** (inheritDoc) * @see org.goko.core.workspace.service.ILoader#getInputClass() */ @Override public Class<XmlURIResourceLocation> getInputClass() { return XmlURIResourceLocation.class; } }