Page tree

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Code Block
titlecom.myorg.myplugin.Activator.java
borderStylesolid
@Override
protected ServiceRegistration<?>\[\] registerService(IGBService igbService) throws Exception \{
	return new ServiceRegistration\[\] \{
		bundleContext.registerService(Operator.class, new SamplePlugin(FileTypeCategory.Alignment), null),
		bundleContext.registerService(Operator.class, new SamplePlugin(FileTypeCategory.Annotation), null),
		bundleContext.registerService(Operator.class, new SamplePlugin(FileTypeCategory.ProbeSet), null)
	};
}

For more detail refer to the Extension Points section

Code Block
titlecom.myorg.myplugin.Activator.java
borderStylesolid

package com.myorg.myplugin;

import java.util.HashMap;
import java.util.List;

import com.affymetrix.genometryImpl.BioSeq;
import com.affymetrix.genometryImpl.operator.AbstractAnnotationOperator;
import com.affymetrix.genometryImpl.operator.Operator;
import com.affymetrix.genometryImpl.parsers.FileTypeCategory;
import com.affymetrix.genometryImpl.symmetry.SeqSymmetry;
import com.affymetrix.genometryImpl.symmetry.SimpleSymWithProps;
import com.affymetrix.genometryImpl.symmetry.TypeContainerAnnot;

public class MyPlugin extends AbstractAnnotationOperator implements Operator {

	MyPlugin(FileTypeCategory category){
		super(category);
	}
	
	@Override
	public String getName() {
		return this.category.toString().toLowerCase() +"_my_plugin";
	}

	@Override
	public String getDisplay() {
		return "My Operation";
	}

	private boolean overlap(BioSeq aseq, SeqSymmetry s0, SeqSymmetry s1) {
		return s0.getSpan(aseq) != null && s1.getSpan(aseq) != null && s0.getSpan(aseq).getMax() > s1.getSpan(aseq).getMin() && s0.getSpan(aseq).getMin() < s1.getSpan(aseq).getMax();
	}

	@Override
	public SeqSymmetry operate(BioSeq aseq, List<SeqSymmetry> symList) {
		SimpleSymWithProps result = new SimpleSymWithProps();
		result.setProperties(new HashMap<String,Object>());
		TypeContainerAnnot t0 = (TypeContainerAnnot)symList.get(0);
		TypeContainerAnnot t1 = (TypeContainerAnnot)symList.get(1);
		result.setProperty("type", t0.getType() + " " + getName());
		for (int i = 0; i < t0.getChildCount(); i++) {
			SeqSymmetry s0 = t0.getChild(i);
			for (int j = 0; j < t1.getChildCount(); j++) {
				SeqSymmetry s1 = t1.getChild(j);
				if (overlap(aseq, s0, s1)) {
					result.addChild(s0);
					result.addSpan(s0.getSpan(aseq));
					break;
				}
			}
		}
		return result;
	}
}

4. Update MAINFEST.BASE

Panel

Wiki Markup
Manifest-Version: 1.0
Bundle-ManifestVersion: 2
<span style="color: #ff0000">Bundle-Name</span><span style="color: #000000">: MyPlugin</span>
<span style="color: #ff0000">Bundle-SymbolicName</span><span style="color: #000000">: com.myorg.myplugin.MyPlugin</span>
<span style="color: #ff0000">Bundle-Version</span><span style="color: #000000">: 0.0.9</span>
<span style="color: #ff0000">Bundle-Activator</span><span style="color: #000000">:</span> <span style="color: #000000">com.myorg.myplugin</span><span style="color: #000000">.Activator</span>
<span style="color: #000000">Bundle-ActivationPolicy: lazy</span>
<span style="color: #000000">Bundle-RequiredExecutionEnvironment: JavaSE-1.6</span>
<span style="color: #000000">Bundle-Description: Plugin to allow the user to create a plugin as template</span>
Bundle-DocURL: [http://wiki.transvar.org]<span style="color: #ff0000"><a href="http://wiki.transvar.org">http://wiki.transvar.org</a></span>
<span style="color: #ff0000">Import-Package</span>: com.affymetrix.common;version="\[&nbsp;(appVersion),&nbsp;(appVersion)\]",
&nbsp;com.affymetrix.genometryImpl,
&nbsp;com.affymetrix.genometryImpl.operator,
&nbsp;com.affymetrix.genometryImpl.symmetry,
&nbsp;com.affymetrix.genometryImpl.parsers,
&nbsp;com.affymetrix.igb.osgi.service,
&nbsp;org.osgi.framework;version="1.5.0",
&nbsp;org.osgi.util.tracker;version="1.4.0"

...