@Override public String toString() { if (isReference()) { return getCheckedRef().toString(); } return getName(); }
/** * Equality check based on the resource's name in addition to the * resource itself. * @since Ant 1.8.1 */ @Override public boolean equals(Object other) { if (other == null || other.getClass() != getClass()) { return false; } MappedResource m = (MappedResource) other; String myName = getName(); String otherName = m.getName(); return (myName == null ? otherName == null : myName.equals(otherName)) && getResource().equals(m.getResource()); }
/** * Not really supported since mapper is never null. * @param r reference to set */ @Override public void setRefid(Reference r) { if (mapper != null) { throw noChildrenAllowed(); } super.setRefid(r); }
/** * Maps the name. */ @Override public String getName() { String name = getResource().getName(); if (isReference()) { return name; } String[] mapped = mapper.mapFileName(name); return mapped != null && mapped.length > 0 ? mapped[0] : null; }
private Collection<Resource> getCollection() { FileNameMapper m = mapper == null ? new IdentityMapper() : mapper.getImplementation(); Stream<MappedResource> stream; if (enableMultipleMappings) { stream = nested.stream() .flatMap(r -> Stream.of(m.mapFileName(r.getName())) .filter(Objects::nonNull) .map(MergingMapper::new) .map(mm -> new MappedResource(r, mm))); } else { stream = nested.stream().map(r -> new MappedResource(r, m)); } return stream.collect(Collectors.toList()); }
/** * Get the hash code for this Resource. * @since Ant 1.8.1 */ @Override public int hashCode() { String n = getName(); return n == null ? super.hashCode() : n.hashCode(); }
/** * Suppress FileProvider * @param clazz the type to implement */ @Override public <T> T as(Class<T> clazz) { return FileProvider.class.isAssignableFrom(clazz) ? null : getResource().as(clazz); }
/** * Fulfill the ResourceCollection interface. * @return an Iterator of Resources. * @since Ant 1.7 */ @Override public Iterator<Resource> iterator() { if (isReference()) { return getRef().iterator(); } dieOnCircularReference(); Stream<Resource> result = getPropertyNames(getEffectiveProperties()) .stream().map(name -> new PropertyResource(getProject(), name)); Optional<FileNameMapper> m = Optional.ofNullable(getMapper()).map(Mapper::getImplementation); if (m.isPresent()) { result = result.map(p -> new MappedResource(p, m.get())); } return result.iterator(); }
ResourceWithFlags r = (ResourceWithFlags) i.next(); srcResources[index++] = new MappedResource(r.getResource(), new MergingMapper(r.getName()));