package fr.opensagres.mongodb.ide.core.model; import org.eclipse.core.runtime.Path; import com.mongodb.tools.process.InvalidMongoHomeDirException; import com.mongodb.tools.process.MongoDBTools; import com.mongodb.tools.process.MongoProcessFiles; /** * * MongoRuntime stores an installation directory of a MongoDB dababase. It is * used : * * <ul> * <li>start/stop a local MongoDB server from ServerExplorer View with launch by * calling INSTAL_DIR/bin/mongod.exe/sh process.</li> * * * <li>start/stop a MongoDB Shell from ServerExplorer View (by selecting a * database) with launch by calling INSTAL_DIR/bin/mongo.exe/sh process.</li> * </ul> * */ public class MongoRuntime { private final String id; private String name; private String installDir; private Path mongoProcessLocation; private Path mongodProcessLocation; public MongoRuntime(String name, String path) throws InvalidMongoHomeDirException { this(String.valueOf(System.currentTimeMillis()), name, path); } public MongoRuntime(String id, String name, String path) throws InvalidMongoHomeDirException { this.id = id; setName(name); setInstallDir(path); } public String getId() { return id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getInstallDir() { return installDir; } public void setInstallDir(String installDir) throws InvalidMongoHomeDirException { MongoProcessFiles files = MongoDBTools.validateMongoHomeDir(installDir); this.installDir = installDir; this.mongoProcessLocation = new Path(files.getMongoFile().getPath()); this.mongodProcessLocation = new Path(files.getMongodFile().getPath()); } public Path getMongoProcessLocation() { return mongoProcessLocation; } public Path getMongodProcessLocation() { return mongodProcessLocation; } }