Skip to content

Commit

Permalink
Added a method to create a data set from a list of materials
Browse files Browse the repository at this point in the history
  • Loading branch information
egonw committed Sep 11, 2013
1 parent b40f764 commit e0eda80
Show file tree
Hide file tree
Showing 4 changed files with 84 additions and 2 deletions.
4 changes: 3 additions & 1 deletion plugins/net.bioclipse.opentox.nm/META-INF/MANIFEST.MF
Expand Up @@ -14,7 +14,9 @@ Require-Bundle: org.eclipse.ui,
org.springframework.osgi.aopalliance.osgi,
net.bioclipse.rdf,
net.bioclipse.business,
net.bioclipse.usermanager
net.bioclipse.usermanager,
net.bioclipse.nm,
net.bioclipse.opentox
Bundle-RequiredExecutionEnvironment: JavaSE-1.7
Import-Package: org.apache.log4j
Bundle-ActivationPolicy: lazy
@@ -0,0 +1,48 @@
/* Copyright (C) 2013 Egon Willighagen <egonw@users.sf.net>
*
* This program is free software; you can redistribute it and/or modify it under
* the terms of the GNU Lesser General Public License as published by the Free
* Software Foundation; either version 2.1 of the License, or (at your option)
* any later version. All we ask is that proper credit is given for our work,
* which includes - but is not limited to - adding the above copyright notice to
* the beginning of your source code files, and to any copyright notice that you
* may distribute with programs based on this work.
*
* This program is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
* FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more
* details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with this program; if not, write to the Free Software Foundation, Inc.,
* 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
*/
package net.bioclipse.opentox.nm.api;

import java.util.List;

import net.bioclipse.core.domain.IMaterial;
import net.bioclipse.nm.business.NmManager;

import org.eclipse.core.runtime.IProgressMonitor;

public class Dataset {

private static NmManager nm = new NmManager();

public static String createNewDataset(String service,
List<IMaterial> materials, IProgressMonitor monitor)
throws Exception {
String nmxContent = nm.asNMX(materials);
return net.bioclipse.opentox.api.Dataset.createNewDataset(
normalizeURI(service), nmxContent, monitor
);
}

public static String normalizeURI(String datasetURI) {
datasetURI = datasetURI.replaceAll("\\n", "");
datasetURI = datasetURI.replaceAll("\\r", "");
if (!datasetURI.endsWith("/")) datasetURI += "/";
return datasetURI;
}
}
Expand Up @@ -10,10 +10,14 @@
******************************************************************************/
package net.bioclipse.opentox.nm.business;

import java.util.List;

import net.bioclipse.core.PublishedClass;
import net.bioclipse.core.PublishedMethod;
import net.bioclipse.core.Recorded;
import net.bioclipse.core.business.BioclipseException;
import net.bioclipse.core.domain.IMaterial;
import net.bioclipse.jobs.BioclipseUIJob;
import net.bioclipse.managers.business.IBioclipseManager;

@PublishedClass(
Expand All @@ -29,4 +33,11 @@ public interface IOpenToxNmManager extends IBioclipseManager {
)
public String downloadMaterialAsNMXFile(String materialURI) throws BioclipseException;

@Recorded
@PublishedMethod(
methodSummary="Creates a new dataset.",
params="String service, List<? extends IMaterial> materials"
)
public String createDataset(String service, List<? extends IMaterial> materials) throws BioclipseException;
public void createDataset(String service, List<? extends IMaterial> materials, BioclipseUIJob<String> uiJob) throws BioclipseException;
}
Expand Up @@ -10,9 +10,14 @@
******************************************************************************/
package net.bioclipse.opentox.nm.business;

import java.util.List;

import net.bioclipse.business.BioclipsePlatformManager;
import net.bioclipse.core.business.BioclipseException;
import net.bioclipse.core.domain.IMaterial;
import net.bioclipse.jobs.IReturner;
import net.bioclipse.managers.business.IBioclipseManager;
import net.bioclipse.opentox.nm.api.Dataset;

import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.core.runtime.NullProgressMonitor;
Expand All @@ -33,7 +38,23 @@ public String downloadMaterialAsNMXFile(String materialURI, IProgressMonitor mon

return result;
}


public void createDataset(String service, List<IMaterial> materials, IReturner<String> returner, IProgressMonitor monitor)
throws BioclipseException {
if (monitor == null) monitor = new NullProgressMonitor();

monitor.beginTask("Creating an OpenTox API data set ...", 1);
try {
String dataset = Dataset.createNewDataset(service, materials, monitor);
monitor.done();
returner.completeReturn( dataset );
} catch (Exception exc) {
throw new BioclipseException(
"Exception while creating dataset: " + exc.getMessage()
);
}
}

/**
* Gives a short one word name of the manager used as variable name when
* scripting.
Expand Down

0 comments on commit e0eda80

Please sign in to comment.