Changeset 1161
- Timestamp:
- Sep 16, 2009, 8:57:22 AM (14 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
extensions/net.sf.basedb.mev/trunk/src/server/net/sf/basedb/mev/install/Install.java
r1160 r1161 27 27 import net.sf.basedb.core.DbControl; 28 28 import net.sf.basedb.core.FileType; 29 import net.sf.basedb.core.Group; 30 import net.sf.basedb.core.GroupPermissions; 31 import net.sf.basedb.core.Include; 29 32 import net.sf.basedb.core.Item; 30 33 import net.sf.basedb.core.ItemAlreadyExistsException; 34 import net.sf.basedb.core.ItemKey; 31 35 import net.sf.basedb.core.ItemNotFoundException; 36 import net.sf.basedb.core.ItemQuery; 32 37 import net.sf.basedb.core.Job; 33 38 import net.sf.basedb.core.Permission; 39 import net.sf.basedb.core.PluginConfiguration; 40 import net.sf.basedb.core.PluginConfigurationRequest; 34 41 import net.sf.basedb.core.PluginDefinition; 35 42 import net.sf.basedb.core.PluginParameter; 43 import net.sf.basedb.core.PluginResponse; 36 44 import net.sf.basedb.core.ProgressReporter; 37 45 import net.sf.basedb.core.RequestInformation; … … 42 50 import net.sf.basedb.core.plugin.GuiContext; 43 51 import net.sf.basedb.core.plugin.InteractivePlugin; 44 import net.sf.basedb.core.plugin.Permissions;45 52 import net.sf.basedb.core.plugin.Plugin; 46 53 import net.sf.basedb.core.plugin.Request; 47 54 import net.sf.basedb.core.plugin.Response; 55 import net.sf.basedb.core.plugin.Response.Status; 56 import net.sf.basedb.core.query.Expressions; 57 import net.sf.basedb.core.query.Hql; 58 import net.sf.basedb.core.query.Restrictions; 48 59 import net.sf.basedb.mev.Mev; 60 import net.sf.basedb.plugins.ManualTransformCreator; 49 61 50 62 import java.util.ArrayList; 51 63 import java.util.Arrays; 52 import java.util.Collection;53 64 import java.util.Collections; 54 65 import java.util.EnumSet; 55 import java.util.Hash Set;66 import java.util.HashMap; 56 67 import java.util.List; 68 import java.util.Map; 57 69 import java.util.Set; 58 70 59 71 /** 60 61 72 Installation program for the MeV extension package. The installation 62 73 will perform the following steps: … … 69 80 <li>MeV CGH file 70 81 </ul> 82 <li>Create a 'MeV analysis' configuration for the manual transform plug-in 71 83 </ul> 72 84 @since 1.5 … … 94 106 private RequestInformation configureJob = null; 95 107 96 private static final Set<Permissions> permissions = new HashSet<Permissions>();97 98 108 public Install() 99 109 {} … … 108 118 } 109 119 @Override 110 public Collection<Permissions> getPermissions()111 {112 if (permissions.size() == 0)113 {114 permissions.add(new Permissions(Item.DATAFILETYPE, null, EnumSet.of(Permission.WRITE, Permission.CREATE)));115 permissions.add(new Permissions(Item.FILETYPE, EnumSet.of(Permission.READ), null));116 }117 return permissions;118 }119 @Override120 120 public boolean supportsConfigurations() 121 121 { … … 139 139 try 140 140 { 141 instal MevPackage(dc);141 installMevPackage(dc); 142 142 dc.commit(); 143 143 } … … 230 230 Creates items that are required when working with the MeV package in BASE. 231 231 */ 232 public void instal MevPackage(DbControl dc)232 public void installMevPackage(DbControl dc) 233 233 { 234 234 FileType spotDataType = FileType.getById(dc, SystemItems.getId(net.sf.basedb.core.FileType.SPOT_DATA)); 235 235 236 236 //Data file types 237 createDataFileType(dc, Mev.ANALYSIS_FILE, "MeV analysis file",237 DataFileType mevAnalysisFile = createDataFileType(dc, Mev.ANALYSIS_FILE, "MeV analysis file", 238 238 "A MeV analysis file", 239 239 Item.BIOASSAYSET, "anl", spotDataType, null, null, null); … … 244 244 "A MeV Tab-Delimited Multiple Sample file", 245 245 Item.BIOASSAYSET, null, spotDataType, null, null, null); 246 } 247 246 ItemKey everyoneUse = getEveryoneUseKey(dc); 247 Map<String, Object> params = new HashMap<String, Object>(); 248 params.put("fileTypes", mevAnalysisFile); 249 params.put("allowMoreFiles", true); 250 createPluginConfiguration(dc, ManualTransformCreator.class.getName(), 251 "MeV analysis", 252 "This manual transform represents work done " + 253 "in MeV. The resulting analysis file has been uploaded and attached " + 254 "to the bioassayset.", everyoneUse, params); 255 } 256 257 private PluginConfiguration createPluginConfiguration(DbControl dc, 258 String pluginClass, String name, String description, ItemKey key, 259 Map<String, Object> parameters) 260 { 261 ItemQuery<PluginConfiguration> query = PluginConfiguration.getQuery(); 262 query.include(Include.ALL); 263 query.restrict(Restrictions.eq(Hql.property("name"), Expressions.string(name))); 264 query.restrict(Restrictions.eq(Hql.property("pluginDefinition.className"), 265 Expressions.string(pluginClass))); 266 List<PluginConfiguration> list = query.list(dc); 267 PluginConfiguration config = null; 268 if (list.size() > 0) 269 { 270 config = list.get(0); 271 } 272 else 273 { 274 PluginDefinition plugin = PluginDefinition.getByClassName(dc, pluginClass); 275 config = plugin.newPluginConfiguration(); 276 config.setName(name); 277 config.setDescription(description); 278 config.setItemKey(key); 279 dc.saveItem(config); 280 281 PluginConfigurationRequest request = config.configure(); 282 while (request != null) 283 { 284 RequestInformation ri = request.getRequestInformation(); 285 for (PluginParameter<?> parameter : ri.getParameters()) 286 { 287 String parameterName = parameter.getName(); 288 Object value = parameters.get(parameterName); 289 request.setParameterValue(parameterName, value); 290 } 291 PluginResponse response = request.invoke(); 292 Status status = response.getStatus(); 293 if (status == Status.CONTINUE) 294 { 295 request = response.getNextRequest(); 296 } 297 else if (status == Status.ERROR) 298 { 299 throw new BaseException(response.getMessage()); 300 } 301 else 302 { 303 request = null; 304 response.saveParameters(dc); 305 } 306 } 307 } 308 return config; 309 } 310 248 311 private RequestInformation getConfigureJobParameters() 249 312 { … … 301 364 return dft; 302 365 } 366 367 private ItemKey getEveryoneUseKey(DbControl dc) 368 { 369 ItemKey everyoneUse = null; 370 try 371 { 372 Group everyone = Group.getById(dc, SystemItems.getId(Group.EVERYONE)); 373 GroupPermissions gp = new GroupPermissions(); 374 gp.addPermissions(everyone, EnumSet.of(Permission.USE)); 375 everyoneUse = ItemKey.getNewOrExisting(dc, null, gp); 376 } 377 catch (Exception ex) 378 {} 379 return everyoneUse; 380 } 303 381 }
Note: See TracChangeset
for help on using the changeset viewer.