33 */
44package org .ligoj .app .plugin .prov .aws .catalog .vm ;
55
6- import java .io .BufferedReader ;
7- import java .io .IOException ;
8- import java .io .InputStreamReader ;
9- import java .net .URI ;
10- import java .net .URISyntaxException ;
11- import java .util .Arrays ;
12- import java .util .Collection ;
13- import java .util .Comparator ;
14- import java .util .Map ;
15- import java .util .Objects ;
16- import java .util .function .Function ;
17- import java .util .regex .Pattern ;
18- import java .util .stream .Collectors ;
19- import java .util .stream .Stream ;
20-
216import jakarta .annotation .PostConstruct ;
22-
23- import org .apache .commons .lang3 .ArrayUtils ;
24- import org .apache .commons .lang3 .ObjectUtils ;
25- import org .apache .commons .lang3 .RegExUtils ;
26- import org .apache .commons .lang3 .StringUtils ;
7+ import lombok .extern .slf4j .Slf4j ;
8+ import org .apache .commons .lang3 .*;
279import org .ligoj .app .plugin .prov .aws .catalog .AbstractAwsImport ;
2810import org .ligoj .app .plugin .prov .aws .catalog .AbstractLocalContext ;
2911import org .ligoj .app .plugin .prov .aws .catalog .AwsPriceRegion ;
3618import org .ligoj .app .plugin .prov .catalog .AbstractUpdateContext ;
3719import org .ligoj .app .plugin .prov .catalog .Co2Data ;
3820import org .ligoj .app .plugin .prov .catalog .ImportCatalog ;
39- import org .ligoj .app .plugin .prov .model .AbstractInstanceType ;
40- import org .ligoj .app .plugin .prov .model .AbstractQuoteVm ;
41- import org .ligoj .app .plugin .prov .model .AbstractTermPrice ;
42- import org .ligoj .app .plugin .prov .model .AbstractTermPriceVm ;
43- import org .ligoj .app .plugin .prov .model .ProvInstancePrice ;
44- import org .ligoj .app .plugin .prov .model .ProvInstancePriceTerm ;
45- import org .ligoj .app .plugin .prov .model .ProvLocation ;
46- import org .ligoj .app .plugin .prov .model .ProvStoragePrice ;
47- import org .ligoj .app .plugin .prov .model .Rate ;
21+ import org .ligoj .app .plugin .prov .model .*;
4822import org .ligoj .bootstrap .core .curl .CurlProcessor ;
4923import org .springframework .transaction .annotation .Isolation ;
5024import org .springframework .transaction .annotation .Propagation ;
5125import org .springframework .transaction .annotation .Transactional ;
5226
53- import lombok .extern .slf4j .Slf4j ;
27+ import java .io .BufferedReader ;
28+ import java .io .IOException ;
29+ import java .io .InputStreamReader ;
30+ import java .net .URI ;
31+ import java .net .URISyntaxException ;
32+ import java .util .*;
33+ import java .util .function .Function ;
34+ import java .util .regex .Pattern ;
35+ import java .util .stream .Collectors ;
36+ import java .util .stream .Stream ;
5437
5538/**
5639 * The computing part of AWS catalog import.
@@ -209,7 +192,7 @@ protected void copy(final X context, final C csv, final T t) {
209192 resolveBaseline (context , t );
210193
211194 // Convert GiB to MiB, and rounded
212- final var memoryStr = StringUtils . removeEndIgnoreCase (csv .getMemory (), " GiB" ).replace ("," , "" );
195+ final var memoryStr = Strings . CI . removeEnd (csv .getMemory (), " GiB" ).replace ("," , "" );
213196 t .setRam ((int ) Math .round (Double .parseDouble (memoryStr ) * 1024d ));
214197
215198 // Rating
@@ -283,7 +266,7 @@ protected final T installInstanceType(final X context, final C csv) {
283266 return n ;
284267 }, previous -> {
285268 final var type = context .getLocalTypes ().computeIfAbsent (previous .getCode (),
286- code -> ObjectUtils .defaultIfNull (context .getTRepository ().findBy ("code" , code ), previous ));
269+ code -> ObjectUtils .getIfNull (context .getTRepository ().findBy ("code" , code ), previous ));
287270
288271 // Update the statistics only once
289272 return copyAsNeeded (context , type , t -> copy (context , csv , t ), context .getTRepository ());
@@ -358,12 +341,12 @@ protected ProvInstancePriceTerm installInstancePriceTerm(final X context, final
358341 RegExUtils .replaceAll (csv .getPurchaseOption (), "([a-z])Upfront" , "$1 Upfront" ), "No\\ s*Upfront" ));
359342 t .setName (Arrays
360343 .stream (new String [] { csv .getTermType (),
361- StringUtils .replace (csv .getLeaseContractLength (), " " , "" ), name ,
362- StringUtils .trimToNull (StringUtils .remove (csv .getOfferingClass (), "standard" )) })
344+ Strings . CS .replace (csv .getLeaseContractLength (), " " , "" ), name ,
345+ StringUtils .trimToNull (Strings . CS .remove (csv .getOfferingClass (), "standard" )) })
363346 .filter (Objects ::nonNull ).collect (Collectors .joining (", " )));
364- t .setReservation (StringUtils . containsIgnoreCase (term .getName (), "reserved" )); // ODCR not yet managed of
347+ t .setReservation (Strings . CI . contains (term .getName (), "reserved" )); // ODCR not yet managed of
365348 t .setConvertibleType (
366- !term .getReservation () || StringUtils . containsIgnoreCase (term .getName (), "convertible" ));
349+ !term .getReservation () || Strings . CI . contains (term .getName (), "convertible" ));
367350
368351 // Only for OD term
369352 t .setConvertibleFamily (!t .getReservation ());
@@ -388,7 +371,7 @@ protected ProvInstancePriceTerm newTermAsNeeded(final X context, final String co
388371 newTerm .setCode (k );
389372 return newTerm ;
390373 }, sharedTerm -> context .getLocalPriceTerms ().computeIfAbsent (sharedTerm .getCode (),
391- c -> ObjectUtils .defaultIfNull (iptRepository .findBy ("code" , c ), sharedTerm )));
374+ c -> ObjectUtils .getIfNull (iptRepository .findBy ("code" , c ), sharedTerm )));
392375 }
393376
394377 /**
0 commit comments