| /* |
| * Licensed to the Apache Software Foundation (ASF) under one |
| * or more contributor license agreements. See the NOTICE file |
| * distributed with this work for additional information |
| * regarding copyright ownership. The ASF licenses this file |
| * to you under the Apache License, Version 2.0 (the |
| * "License"); you may not use this file except in compliance |
| * with the License. You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, |
| * software distributed under the License is distributed on an |
| * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| * KIND, either express or implied. See the License for the |
| * specific language governing permissions and limitations |
| * under the License. |
| */ |
| package org.apache.felix.bundlerepository.impl.wrapper; |
| |
| import java.util.Iterator; |
| import java.util.Map; |
| |
| import org.apache.felix.bundlerepository.Capability; |
| import org.apache.felix.bundlerepository.Requirement; |
| import org.apache.felix.bundlerepository.Resource; |
| import org.apache.felix.bundlerepository.impl.CapabilityImpl; |
| import org.apache.felix.bundlerepository.impl.RequirementImpl; |
| import org.osgi.framework.Version; |
| |
| public class ConvertedResource implements Resource { |
| |
| private final org.osgi.service.obr.Resource resource; |
| |
| private Capability[] capabilities; |
| private Requirement[] requirements; |
| |
| public ConvertedResource(org.osgi.service.obr.Resource resource) { |
| this.resource = resource; |
| |
| // convert capabilities |
| org.osgi.service.obr.Capability[] c = resource.getCapabilities(); |
| if (c != null) { |
| capabilities = new Capability[c.length]; |
| for (int i = 0; i < c.length; i++) { |
| CapabilityImpl cap = new CapabilityImpl(c[i].getName()); |
| Iterator iter = c[i].getProperties().entrySet().iterator(); |
| int j = 0; |
| while (iter.hasNext()) { |
| Map.Entry entry = (Map.Entry) iter.next(); |
| cap.addProperty((String) entry.getKey(), null, (String) entry.getValue()); |
| } |
| |
| capabilities[i] = cap; |
| } |
| } |
| |
| // convert requirements |
| org.osgi.service.obr.Requirement[] r = resource.getRequirements(); |
| if (r != null) { |
| requirements = new Requirement[r.length]; |
| for (int i = 0; i < r.length; i++) { |
| RequirementImpl req = new RequirementImpl(r[i].getName()); |
| req.setFilter(r[i].getFilter()); |
| req.setOptional(r[i].isOptional()); |
| req.setExtend(r[i].isExtend()); |
| req.setMultiple(r[i].isMultiple()); |
| |
| requirements[i] = req; |
| } |
| } |
| } |
| |
| public Capability[] getCapabilities() { |
| return capabilities; |
| } |
| |
| public Requirement[] getRequirements() { |
| return requirements; |
| } |
| |
| public String[] getCategories() { |
| return resource.getCategories(); |
| } |
| |
| public String getId() { |
| return resource.getId(); |
| } |
| |
| public String getPresentationName() { |
| return resource.getPresentationName(); |
| } |
| |
| public Map getProperties() { |
| return resource.getProperties(); |
| } |
| |
| public Long getSize() { |
| return null; |
| } |
| |
| public String getSymbolicName() { |
| return resource.getSymbolicName(); |
| } |
| |
| public String getURI() { |
| return resource.getURL().toString(); |
| } |
| |
| public Version getVersion() { |
| return resource.getVersion(); |
| } |
| |
| public boolean isLocal() { |
| return false; |
| } |
| |
| } |