refactor: use stateless identity fallback
This commit is contained in:
@@ -0,0 +1,34 @@
|
||||
package com.lingniu.ingest.identity;
|
||||
|
||||
/**
|
||||
* Stateless production fallback used when a caller has no injected identity service.
|
||||
*
|
||||
* <p>Persistent binding belongs to {@link MySqlVehicleIdentityService}; this resolver only keeps
|
||||
* ingestion flowing with explicit VIN or stable external identifiers.
|
||||
*/
|
||||
public final class StatelessVehicleIdentityResolver implements VehicleIdentityResolver {
|
||||
|
||||
@Override
|
||||
public VehicleIdentity resolve(VehicleIdentityLookup lookup) {
|
||||
if (lookup == null) {
|
||||
return unknown();
|
||||
}
|
||||
if (!lookup.vin().isBlank()) {
|
||||
return new VehicleIdentity(lookup.vin(), true, VehicleIdentitySource.EXPLICIT_VIN);
|
||||
}
|
||||
if (!lookup.deviceId().isBlank()) {
|
||||
return new VehicleIdentity(lookup.deviceId(), false, VehicleIdentitySource.FALLBACK_DEVICE_ID);
|
||||
}
|
||||
if (!lookup.phone().isBlank()) {
|
||||
return new VehicleIdentity(lookup.phone(), false, VehicleIdentitySource.FALLBACK_PHONE);
|
||||
}
|
||||
if (!lookup.plate().isBlank()) {
|
||||
return new VehicleIdentity(lookup.plate(), false, VehicleIdentitySource.FALLBACK_PLATE);
|
||||
}
|
||||
return unknown();
|
||||
}
|
||||
|
||||
private static VehicleIdentity unknown() {
|
||||
return new VehicleIdentity("unknown", false, VehicleIdentitySource.UNKNOWN);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user