Search in sources :

Example 81 with Filter

use of org.osgi.framework.Filter in project ddf by codice.

the class ConfigurationAdminExt method addMetaTypeNamesToMap.

public List<Map<String, Object>> addMetaTypeNamesToMap(final Map ocdCollection, final String filterSpec, final String type) {
    Filter filter = null;
    if (filterSpec != null) {
        try {
            filter = getBundleContext().createFilter(filterSpec);
        } catch (InvalidSyntaxException ignore) {
        // don't care
        }
    }
    List<Map<String, Object>> metatypeList = new ArrayList<Map<String, Object>>();
    Iterator ei = ocdCollection.entrySet().iterator();
    while (ei.hasNext()) {
        Entry ociEntry = (Entry) ei.next();
        final String pid = (String) ociEntry.getKey();
        final ObjectClassDefinition ocd = (ObjectClassDefinition) ociEntry.getValue();
        if (filter == null) {
            Map<String, Object> metatype = new HashMap<String, Object>();
            metatype.put(MAP_ENTRY_ID, pid);
            metatype.put(MAP_ENTRY_NAME, ocd.getName());
            AttributeDefinition[] defs = ocd.getAttributeDefinitions(ObjectClassDefinition.ALL);
            metatype.put(MAP_ENTRY_METATYPE, createMetatypeMap(defs));
            metatypeList.add(metatype);
        } else {
            final Dictionary props = new Hashtable();
            props.put(type, pid);
            if (filter.match(props)) {
                Map<String, Object> metatype = new HashMap<String, Object>();
                metatype.put(MAP_ENTRY_ID, pid);
                metatype.put(MAP_ENTRY_NAME, ocd.getName());
                AttributeDefinition[] defs = ocd.getAttributeDefinitions(ObjectClassDefinition.ALL);
                metatype.put(MAP_ENTRY_METATYPE, createMetatypeMap(defs));
                metatypeList.add(metatype);
            }
        }
    }
    return metatypeList;
}
Also used : Dictionary(java.util.Dictionary) HashMap(java.util.HashMap) Hashtable(java.util.Hashtable) ArrayList(java.util.ArrayList) AttributeDefinition(org.osgi.service.metatype.AttributeDefinition) Entry(java.util.Map.Entry) Filter(org.osgi.framework.Filter) Iterator(java.util.Iterator) InvalidSyntaxException(org.osgi.framework.InvalidSyntaxException) HashMap(java.util.HashMap) Map(java.util.Map) ObjectClassDefinition(org.osgi.service.metatype.ObjectClassDefinition)

Aggregations

Filter (org.osgi.framework.Filter)81 InvalidSyntaxException (org.osgi.framework.InvalidSyntaxException)31 ServiceTracker (org.osgi.util.tracker.ServiceTracker)29 ArrayList (java.util.ArrayList)22 ServiceReference (org.osgi.framework.ServiceReference)20 Hashtable (java.util.Hashtable)18 Test (org.junit.Test)14 BundleContext (org.osgi.framework.BundleContext)13 List (java.util.List)12 Bundle (org.osgi.framework.Bundle)11 Dictionary (java.util.Dictionary)9 SharePolicy (org.apache.aries.subsystem.scope.SharePolicy)9 Configuration (org.osgi.service.cm.Configuration)9 HashMap (java.util.HashMap)7 Map (java.util.Map)6 IOException (java.io.IOException)5 URL (java.net.URL)5 InstallInfo (org.apache.aries.subsystem.scope.InstallInfo)5 ScopeUpdate (org.apache.aries.subsystem.scope.ScopeUpdate)5 Iterator (java.util.Iterator)4