use of org.codice.alliance.nsili.common.GIAS.DeliveryDetails in project alliance by codice.
the class OrderRequestImpl method complete.
@Override
public State complete(DeliveryManifestHolder deliveryManifestHolder) throws ProcessingFault, SystemFault {
DeliveryManifest deliveryManifest = new DeliveryManifest();
List<PackageElement> packageElements = new ArrayList<>();
if (!orderContainsSupportedDelivery()) {
throw new NO_IMPLEMENT("Only HTTP(s) is supported");
}
try {
String filename = null;
PackagingSpecFormatType packageFormatType = PackagingSpecFormatType.FILESUNC;
List<ResourceContainer> files = new ArrayList<>();
if (order.prod_list == null) {
throw new BAD_OPERATION("No products specified for the order");
}
for (ProductDetails productDetails : order.prod_list) {
requestProductResource(files, productDetails);
}
if (order.pSpec != null) {
PackagingSpec packagingSpec = order.pSpec;
filename = packagingSpec.package_identifier;
packageFormatType = PackagingSpecFormatType.valueOf(packagingSpec.packaging_format_and_compression);
}
if (order.del_list != null) {
for (DeliveryDetails deliveryDetails : order.del_list) {
Destination destination = deliveryDetails.dests;
Optional<DestinationSink> destinationSink = destinationSinkFactory.apply(destination);
if (destinationSink.isPresent()) {
List<String> filesSent = writeData(destinationSink.get(), packageFormatType, files, filename);
PackageElement packageElement = new PackageElement();
packageElement.files = filesSent.toArray(new String[filesSent.size()]);
packageElements.add(packageElement);
}
}
}
} catch (UnsupportedEncodingException | WrongAdapter | WrongPolicy e) {
LOGGER.debug("Unable to get Metacard for product:", e);
} catch (IOException | ExecutionException | SecurityServiceException e) {
LOGGER.debug("Unable to retrieve resource:", e);
}
if (order.pSpec != null) {
deliveryManifest.package_name = order.pSpec.package_identifier;
}
deliveryManifest.elements = packageElements.toArray(new PackageElement[packageElements.size()]);
deliveryManifestHolder.value = deliveryManifest;
return State.COMPLETED;
}
use of org.codice.alliance.nsili.common.GIAS.DeliveryDetails in project alliance by codice.
the class SampleNsiliClient method createEmailOrder.
private OrderContents createEmailOrder(ORB orb, Product product, String[] supportedPackagingSpecs) throws Exception {
NameName[] nameName = { new NameName("", "") };
String orderPackageId = UUID.randomUUID().toString();
TailoringSpec tailoringSpec = new TailoringSpec(nameName);
PackagingSpec pSpec = new PackagingSpec(orderPackageId, supportedPackagingSpecs[0]);
Calendar cal = Calendar.getInstance();
cal.setTime(new java.util.Date());
int year = cal.get(Calendar.YEAR);
year++;
AbsTime needByDate = new AbsTime(new Date((short) year, (short) 2, (short) 10), new Time((short) 10, (short) 0, (short) 0));
MediaType[] mTypes = { new MediaType("", (short) 1) };
String[] benums = new String[0];
Rectangle region = new Rectangle(new Coordinate2d(1.1, 1.1), new Coordinate2d(2.2, 2.2));
ImageSpec imageSpec = new ImageSpec();
imageSpec.encoding = SupportDataEncoding.ASCII;
imageSpec.rrds = new short[] { 1 };
imageSpec.algo = "";
imageSpec.bpp = 0;
imageSpec.comp = "A";
imageSpec.imgform = "A";
imageSpec.imageid = "1234abc";
imageSpec.geo_region_type = GeoRegionType.LAT_LON;
Rectangle subSection = new Rectangle();
subSection.lower_right = new Coordinate2d(0, 0);
subSection.upper_left = new Coordinate2d(1, 1);
imageSpec.sub_section = subSection;
Any imageSpecAny = orb.create_any();
ImageSpecHelper.insert(imageSpecAny, imageSpec);
AlterationSpec aSpec = new AlterationSpec("JPEG", imageSpecAny, region, GeoRegionType.NULL_REGION);
Destination destination = new Destination();
destination.e_dest(emailAddress);
ProductDetails[] productDetails = { new ProductDetails(mTypes, benums, aSpec, product, ALLIANCE) };
DeliveryDetails[] deliveryDetails = { new DeliveryDetails(destination, "", "") };
return new OrderContents(ALLIANCE, tailoringSpec, pSpec, needByDate, "Give me an order!", (short) 1, productDetails, deliveryDetails);
}
Aggregations