Package edu.isi.karma.controller.command.worksheet

Source Code of edu.isi.karma.controller.command.worksheet.ApplyModelFromURLCommand

package edu.isi.karma.controller.command.worksheet;

import java.io.File;
import java.net.URL;

import org.apache.commons.io.FileUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import edu.isi.karma.controller.command.Command;
import edu.isi.karma.controller.command.CommandException;
import edu.isi.karma.controller.command.CommandType;
import edu.isi.karma.controller.command.WorksheetCommand;
import edu.isi.karma.controller.update.ErrorUpdate;
import edu.isi.karma.controller.update.UpdateContainer;
import edu.isi.karma.rep.Workspace;
import edu.isi.karma.rep.metadata.WorksheetProperties.Property;

public class ApplyModelFromURLCommand extends WorksheetCommand{

  private String modelURL;
  private String modelContext;
  private String modelRepository;
  private String baseUrl = "http://localhost:8080/R2RMLMapping/local/repository/";
  private boolean override;
  private static Logger logger = LoggerFactory.getLogger(ApplyModelFromURLCommand.class);
  public ApplyModelFromURLCommand(String id, String worksheetId, String modelURL, String modelContext, String modelRepository, String baseURL, boolean override) {
    super(id, worksheetId);
    this.modelURL = modelURL;
    this.modelContext = modelContext;
    this.modelRepository = modelRepository;
    this.baseUrl = baseURL;
    this.override = override;
  }

  @Override
  public String getCommandName() {
    return ApplyModelFromURLCommand.class.getSimpleName();
  }

  @Override
  public String getTitle() {
    return "Apply Models";
  }

  @Override
  public String getDescription() {
    return modelURL;
  }

  @Override
  public CommandType getCommandType() {
    return CommandType.notUndoable;
  }

  @Override
  public UpdateContainer doIt(Workspace workspace) throws CommandException {
    ApplyHistoryFromR2RMLModelCommandFactory factory = new ApplyHistoryFromR2RMLModelCommandFactory();
    try {

      String context = (modelContext != null && !modelContext.isEmpty()? (modelContext + "/") : "");
      URL url = new URL(baseUrl + context + modelURL + "?modelRepository=" + modelRepository);

      File file = new File("tmp.ttl")
      FileUtils.copyURLToFile(url, file);
      Command cmd = factory.createCommandFromFile(worksheetId, file, workspace, override);
      UpdateContainer uc = cmd.doIt(workspace);
      workspace.getWorksheet(worksheetId).getMetadataContainer().getWorksheetProperties().setPropertyValue(Property.modelUrl, modelURL);
      workspace.getWorksheet(worksheetId).getMetadataContainer().getWorksheetProperties().setPropertyValue(Property.modelContext, modelContext);
      workspace.getWorksheet(worksheetId).getMetadataContainer().getWorksheetProperties().setPropertyValue(Property.modelRepository, modelRepository);
      file.delete();
      return uc;
    }catch(Exception e) {
      String msg = "Error occured while applying history!";
      logger.error(msg, e);
      return new UpdateContainer(new ErrorUpdate(msg));
    }
   
  }

  @Override
  public UpdateContainer undoIt(Workspace workspace) {
    // TODO Auto-generated method stub
    return null;
  }

}
TOP

Related Classes of edu.isi.karma.controller.command.worksheet.ApplyModelFromURLCommand

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.