/** * Find an "omero.launcher..." property string for the given mimetype or * return "" if none is found. */ public String getLauncher(String mimetype) { Map.Entry<String, ScriptFileType> entry = findByMimetype(mimetype); if (entry == null) { log.warn("No mimetype equals to {}", mimetype); return ""; } return entry.getValue().getLauncher(); }
/** * Search through all {@link ScriptFileType} instances and find one with * a matching mimetype string. Otherwise, return null. */ protected Map.Entry<String, ScriptFileType> findByMimetype(String mimetype) { for (Map.Entry<String, ScriptFileType> entry : types.entrySet()) { ScriptFileType type = entry.getValue(); if (type.getMimetype().equals(mimetype)) { return entry; } } return null; }
/** * Find an "omero.process..." property string for the given mimetype or * return "" if none is found. */ public String getProcess(String mimetype) { Map.Entry<String, ScriptFileType> entry = findByMimetype(mimetype); if (entry == null) { log.warn("No mimetype equals to {}", mimetype); return ""; } return entry.getValue().getProcess(); }
/** * Loads all {@link ScriptFileType} instances from the context, * and uses them to initialize all scripts in the repo. */ @Override public void handleContextRefreshedEvent(ContextRefreshedEvent event) { types.putAll( event.getApplicationContext() .getBeansOfType(ScriptFileType.class)); final List<FileFilter> andFilters = new ArrayList<FileFilter>(); final List<FileFilter> orFilters= new ArrayList<FileFilter>(); for (Map.Entry<String, ScriptFileType> entry : types.entrySet()) { IOFileFilter found = entry.getValue().getFileFilter(); log.info("Registering {}: {}", entry.getKey(), found); orFilters.add(found); mimetypes.add(entry.getValue().getMimetype()); if (entry.getValue().isInert()) { inertMimetypes.add(entry.getValue().getMimetype()); } } mimetypes = Collections.unmodifiableSet(mimetypes); inertMimetypes = Collections.unmodifiableSet(inertMimetypes); andFilters.add(BASE_SCRIPT_FILTER); andFilters.add(new OrFileFilter(orFilters)); this.scriptFilter = new AndFileFilter(andFilters); }
public void setMimetype(OriginalFile ofile) { for (Map.Entry<String, ScriptFileType> entry : types.entrySet()) { if (entry.getValue().setMimetype(ofile)) { log.debug("Mimetype set by {} for {}", entry.getKey(), ofile.getName()); return; // EARLY EXIT. } } log.warn("No mimetype set for {}", ofile.getName()); }
@SuppressWarnings("unchecked") public LutProviderImpl( ScriptRepoHelper scriptRepoHelper, ScriptFileType lutType) { File root = new File(scriptRepoHelper.getScriptDir()); Iterator<File> scripts = FileUtils.iterateFiles( root, lutType.getFileFilter(), TrueFileFilter.TRUE); while (scripts.hasNext()) { RepoFile script = new RepoFile(root, scripts.next()); String basename = script.basename(); try { lutReaders.put( basename, LutReaderFactory.read(script.file())); log.debug("Successfully added LUT '{}'", basename); } catch (Exception e) { log.warn("Cannot read lookup table: '{}'", script.fullname(), e); } } log.info("Successfully added {} LUTs", lutReaders.size()); }