blob: 4801ec9770cf0c11a0890d1d10cd3e14c2e59a60 [file] [log] [blame]
package aQute.bnd.make.metatype;
import java.util.*;
import aQute.bnd.annotation.metatype.*;
import aQute.bnd.service.*;
import aQute.lib.osgi.*;
import aQute.lib.osgi.Clazz.*;
/**
* This class is responsible for meta type types. It is a plugin that can
* @author aqute
*
*/
public class MetatypePlugin implements AnalyzerPlugin {
public boolean analyzeJar(Analyzer analyzer) throws Exception {
Map<String, Map<String, String>> map = analyzer.parseHeader(analyzer
.getProperty(Constants.METATYPE));
Jar jar = analyzer.getJar();
for (String name : map.keySet()) {
Collection<Clazz> metatypes = analyzer.getClasses("", QUERY.ANNOTATION.toString(),
Meta.OCD.class.getName(), //
QUERY.NAMED.toString(), name //
);
for (Clazz c : metatypes) {
jar.putResource("OSGI-INF/metatype/" + c.getFQN() + ".xml", new MetaTypeReader(c,
analyzer));
}
}
return false;
}
}