@Override @SuppressWarnings("unchecked") public <T> T adapt(Class<T> type) { T result = super.adapt(type); if (result == null) { if (RepositoryStorage.class.isAssignableFrom(type)) { result = (T) storage; } else { for (XRepository delegate : delegates) { result = delegate.adapt(type); if (result != null) { break; } } } } return result; }
@Override public Map<String, String> getRepositoryAttributes() { HashMap<String, String> attributes = new HashMap<String, String>(); attributes.put("name", getRepository().getName()); attributes.put("increment", new Long(increment.get()).toString()); return Collections.unmodifiableMap(attributes); }
@Override public Collection<Capability> findProviders(Requirement req) { if (req == null) throw MESSAGES.illegalArgumentNull("req"); // Try to find the providers in the storage List<Capability> providers = new ArrayList<Capability>(); providers.addAll(storage.findProviders(req)); // Try to find the providers in the delegates if (providers.isEmpty()) { for (XRepository delegate : delegates) { Collection<Capability> caps = delegate.findProviders(req); if (!caps.isEmpty()) { // Add the delegate resources to the storage for (Capability cap : caps) { XResource res = (XResource) cap.getResource(); XIdentityCapability icap = res.getIdentityCapability(); XResource storageResource = storage.getResource(icap); if (storageResource == null) { storageResource = storage.addResource(res); } providers.add(storageResource.getIdentityCapability()); } break; } } } return Collections.unmodifiableList(providers); }
MavenCoordinates mavenId = MavenCoordinates.parse(identifier); Requirement req = XRequirementBuilder.create(mavenId).getRequirement(); Collection<Capability> caps = repository.findProviders(req); if (caps.isEmpty() == false) { XResource resource = (XResource) caps.iterator().next().getResource();
MavenCoordinates mavenId = MavenCoordinates.parse(identifier); Requirement req = XRequirementBuilder.create(mavenId).getRequirement(); Collection<Capability> caps = repository.findProviders(req); if (caps.isEmpty() == false) { XResource resource = (XResource) caps.iterator().next().getResource();
private void writeRepositoryXML() { RepositoryWriter writer; try { repoFile.getParentFile().mkdirs(); writer = RepositoryXMLWriter.create(new FileOutputStream(repoFile)); } catch (IOException ex) { throw MESSAGES.cannotInitializeRepositoryWriter(ex); } Map<String, String> attributes = new HashMap<String, String>(); attributes.put(Attribute.NAME.getLocalName(), getRepository().getName()); attributes.put(Attribute.INCREMENT.getLocalName(), new Long(getResourceIndex().get()).toString()); writer.writeRepositoryElement(attributes); RepositoryReader reader = getRepositoryReader(); XResource resource = reader.nextResource(); while(resource != null) { writer.writeResource(resource); resource = reader.nextResource(); } writer.close(); }