Search in sources :

Example 1 with Owners

use of software.amazon.qldb.tutorial.model.Owners in project amazon-qldb-dmv-sample-java by aws-samples.

the class AddSecondaryOwner method isSecondaryOwnerForVehicle.

/**
 * Check whether a secondary owner has already been registered for the given VIN.
 *
 * @param txn
 *              The {@link TransactionExecutor} for lambda execute.
 * @param vin
 *              Unique VIN for a vehicle.
 * @param secondaryOwnerId
 *              The secondary owner to add.
 * @return {@code true} if the given secondary owner has already been registered, {@code false} otherwise.
 * @throws IllegalStateException if failed to convert VIN to an {@link IonValue}.
 */
public static boolean isSecondaryOwnerForVehicle(final TransactionExecutor txn, final String vin, final String secondaryOwnerId) {
    try {
        log.info("Finding secondary owners for vehicle with VIN: {}...", vin);
        final String query = "SELECT Owners.SecondaryOwners FROM VehicleRegistration AS v WHERE v.VIN = ?";
        final List<IonValue> parameters = Collections.singletonList(Constants.MAPPER.writeValueAsIonValue(vin));
        final Result result = txn.execute(query, parameters);
        final Iterator<IonValue> itr = result.iterator();
        if (!itr.hasNext()) {
            return false;
        }
        final Owners owners = Constants.MAPPER.readValue(itr.next(), Owners.class);
        if (null != owners.getSecondaryOwners()) {
            for (Owner owner : owners.getSecondaryOwners()) {
                if (secondaryOwnerId.equalsIgnoreCase(owner.getPersonId())) {
                    return true;
                }
            }
        }
        return false;
    } catch (IOException ioe) {
        throw new IllegalStateException(ioe);
    }
}
Also used : IonValue(com.amazon.ion.IonValue) Owner(software.amazon.qldb.tutorial.model.Owner) IOException(java.io.IOException) Result(software.amazon.qldb.Result) Owners(software.amazon.qldb.tutorial.model.Owners)

Aggregations

IonValue (com.amazon.ion.IonValue)1 IOException (java.io.IOException)1 Result (software.amazon.qldb.Result)1 Owner (software.amazon.qldb.tutorial.model.Owner)1 Owners (software.amazon.qldb.tutorial.model.Owners)1