Package ru.aristar.jnuget.query

Source Code of ru.aristar.jnuget.query.LatestVersionExpression

package ru.aristar.jnuget.query;

import java.util.Collection;
import java.util.HashMap;
import ru.aristar.jnuget.files.Nupkg;
import ru.aristar.jnuget.sources.PackageSource;

/**
* Возвращает последние версии пакетов из хранилища
*
* @author sviridov
*/
public class LatestVersionExpression extends AbstractExpression{

    @Override
    public Collection<? extends Nupkg> execute(PackageSource<? extends Nupkg> packageSource) {
        return packageSource.getLastVersionPackages();
    }

    @Override
    public Collection<? extends Nupkg> filter(Collection<? extends Nupkg> packages) {
        HashMap<String, Nupkg> result = new HashMap<>();
        for (Nupkg nupkg : packages) {
            Nupkg exisingPackage = result.get(nupkg.getId());
            if (exisingPackage == null || nupkg.getVersion().compareTo(exisingPackage.getVersion()) > 0) {
                result.put(nupkg.getId(), nupkg);
            }
        }
        return result.values();
    }

    @Override
    public boolean hasFilterPriority() {
        return false;
    }

    @Override
    public boolean accept(Nupkg nupkg) {
        throw new UnsupportedOperationException("Not supported for this operation.");
    }
}
TOP

Related Classes of ru.aristar.jnuget.query.LatestVersionExpression

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.