Plugin maken aan de hand van een interface

Status
Niet open voor verdere reacties.

kenikavanbis

Terugkerende gebruiker
Lid geworden
22 mei 2007
Berichten
2.195
Ik weet wel welke richting ik moet zoeken(reflection) maar het gaat me veel tijd kosten.

de bedoeling is dat als ik een class een interface laat implementeren en of annotatie er boven deze in een lijst komen die weergegeven wordt.

Dit als het in zelfde package zit en een interface implementeert het gaat over de deze code.
Code:
public class FileFilter_GIF implements FileFilter {
	    private String ext = null;
	    public final static String mime ="image/gif";
	    public boolean accept(File f) {
	       return (f.isFile() && f.length() != 0 && new MimetypesFileTypeMap().getContentType(f).equals(this.mime));
	    }
	    //The description of this filter
	    public String getDescription() {
	        return "Just gif";
	    }
}
Als ik iedereen kan een filter bouwen en hij van zichzelf erbijkomt zie via webstart kan ik deze dan wel benanderen.

Maar aleerst wil ik deze in eigen package doorzoeken.
 
ik snap je vraag niet.
(Als ik iedereen kan een filter bouwen en hij van zichzelf erbijkomt zie via webstart kan ik deze dan wel benanderen.

Maar aleerst wil ik deze in eigen package doorzoeken. )
 
Je kan handmatig een lijstje maken van filters die je hebt gemaakt maar in open source is het de bedoeling dat iedereen het gemakelijk kan hergebruiken dus dacht ik met reflectie te kijken als er een jar met x aantal filters aan toevoegd dat deze zichzelf toevoegen zonder iets te veranderen aan je code.

Het kan maar hoe doe je het?
 
Laatst bewerkt:
Deze code werk NOG NIET!
code om de interfaces te printen
Code:
static void printInterfaceNames(Object o) {
Class c = o.getClass();
Class[] theInterfaces = c.getInterfaces();
for (Class inf: interfaces) {
System.out.println(inf.getName());      }}
dan de plugin annotatie waar nog veel werk aan is

Code:
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
@Retention(RetentionPolicy.SOURCE)
@Target(ElementType.TYPE)
public @interface Plugin {
	           String label() default "x";
}
om voor code plugins te kunnen maken waar dus ook nog wat werk aan is
Code:
package be.djdb;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
@Retention(RetentionPolicy.SOURCE)
@Target(ElementType.TYPE)
public @interface Plugble {
	           String label() default "x";
}
sugesties vertaal fouten
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan