PsaDeliveryResolver.java

package esa.bscs.pds4.packager.resolver;

import java.time.LocalDateTime;
import java.time.ZoneId;
import java.time.format.DateTimeFormatter;

import org.springframework.beans.factory.annotation.Autowired;

public class PsaDeliveryResolver implements DeliveryResolver {
        
    @Autowired(required=true)
    private TimeResolver timeResolver;
    
    @Override
    public String getBaseName(String bundleId) {
        
        if(bundleId == null) {
            throw new IllegalArgumentException();
        }
        
        final DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyyMMdd'T'HHmmss");
        
        final String source = "bc";
        final String target = "psa";
        final String type = "P";
        final String action = "I";
        final String priorityFlag = "0";
        final String geometryFlag = "1";
        final String descriptor = bundleId;
        final String deliveryDate = formatter.format(LocalDateTime.ofInstant(timeResolver.currentInstant(), ZoneId.of("UTC")));
        
        return source + target + "-" + "pds4" + "-" + type + action + "-" + priorityFlag + geometryFlag + "-" + descriptor + "-" + deliveryDate;
    }
}