@@ -25,9 +25,7 @@ public static final Map<String, Object> buildUploadParams(Map options) {
2525 params .put ("format" , (String ) options .get ("format" ));
2626 params .put ("type" , (String ) options .get ("type" ));
2727 for (String attr : BOOLEAN_UPLOAD_OPTIONS ) {
28- Boolean value = ObjectUtils .asBoolean (options .get (attr ), null );
29- if (value != null )
30- params .put (attr , value .toString ());
28+ putBoolean (attr , options , params );
3129 }
3230
3331 params .put ("notification_url" , (String ) options .get ("notification_url" ));
@@ -43,7 +41,7 @@ public static final Map<String, Object> buildUploadParams(Map options) {
4341 params .put ("upload_preset" , options .get ("upload_preset" ));
4442
4543 if (options .get ("signature" ) == null ) {
46- params . put ("eager" , buildEager (( List < Transformation >) options . get ( "eager" )) );
44+ putEager ("eager" , options , params );
4745 Object transformation = options .get ("transformation" );
4846 if (transformation != null ) {
4947 if (transformation instanceof Transformation ) {
@@ -103,18 +101,12 @@ public static final void processWriteParameters(Map<String, Object> options, Map
103101 params .put ("custom_coordinates" , Coordinates .parseCoordinates (options .get ("custom_coordinates" )).toString ());
104102 if (options .get ("context" ) != null )
105103 params .put ("context" , ObjectUtils .encodeMap (options .get ("context" )));
106- if (options .get ("ocr" ) != null )
107- params .put ("ocr" , options .get ("ocr" ));
108- if (options .get ("raw_convert" ) != null )
109- params .put ("raw_convert" , options .get ("raw_convert" ));
110- if (options .get ("categorization" ) != null )
111- params .put ("categorization" , options .get ("categorization" ));
112- if (options .get ("detection" ) != null )
113- params .put ("detection" , options .get ("detection" ));
114- if (options .get ("similarity_search" ) != null )
115- params .put ("similarity_search" , options .get ("similarity_search" ));
116- if (options .get ("background_removal" ) != null )
117- params .put ("background_removal" , options .get ("background_removal" ));
104+ putObject ("ocr" , options , params );
105+ putObject ("raw_convert" , options , params );
106+ putObject ("categorization" , options , params );
107+ putObject ("detection" , options , params );
108+ putObject ("similarity_search" , options , params );
109+ putObject ("background_removal" , options , params );
118110 if (options .get ("auto_tagging" ) != null )
119111 params .put ("auto_tagging" , ObjectUtils .asFloat (options .get ("auto_tagging" )));
120112 }
@@ -149,37 +141,63 @@ public static void clearEmpty(Map params) {
149141
150142 @ SuppressWarnings ({"rawtypes" , "unchecked" })
151143 public static final Map <String , Object > buildArchiveParams (Map options , String targetFormat ) {
152- if (options == null )
153- options = ObjectUtils .emptyMap ();
154144 Map <String , Object > params = new HashMap <String , Object >();
155- params .put ("type" , options .get ("type" ));
156- params .put ("mode" , options .get ("mode" ));
157- params .put ("target_format" , targetFormat );
158- params .put ("target_public_id" , options .get ("target_public_id" ));
159- params .put ("flatten_folders" , ObjectUtils .asBoolean (options .get ("flatten_folders" ), false ));
160- params .put ("flatten_transformations" , ObjectUtils .asBoolean (options .get ("flatten_transformations" ), false ));
161- params .put ("use_original_filename" , ObjectUtils .asBoolean (options .get ("use_original_filename" ), false ));
162- params .put ("async" , ObjectUtils .asBoolean (options .get ("async" ), false ));
163- params .put ("keep_derived" , ObjectUtils .asBoolean (options .get ("keep_derived" ), false ));
164- params .put ("notification_url" , options .get ("notification_url" ));
165- if (options .get ("target_tags" ) != null )
166- params .put ("target_tags" , ObjectUtils .asArray (options .get ("target_tags" )));
167- if (options .get ("tags" ) != null )
168- params .put ("tags" , ObjectUtils .asArray (options .get ("tags" )));
169- if (options .get ("public_ids" ) != null )
170- params .put ("public_ids" , ObjectUtils .asArray (options .get ("public_ids" )));
171- if (options .get ("prefixes" ) != null )
172- params .put ("prefixes" , ObjectUtils .asArray (options .get ("prefixes" )));
173- if (options .get ("transformations" ) != null )
174- params .put ("transformations" , buildEager ((List <Transformation >) options .get ("transformations" )));
175- if (options .get ("timestamp" ) != null )
176- params .put ("timestamp" , options .get ("timestamp" ));
177- else
178- params .put ("timestamp" , Util .timestamp ());
145+ if (options != null && options .size () > 0 ){
146+ params .put ("type" , options .get ("type" ));
147+ params .put ("mode" , options .get ("mode" ));
148+ params .put ("target_format" , targetFormat );
149+ params .put ("target_public_id" , options .get ("target_public_id" ));
150+ putBoolean ("flatten_folders" , options , params );
151+ putBoolean ("flatten_transformations" , options , params );
152+ putBoolean ("use_original_filename" , options , params );
153+ putBoolean ("async" , options , params );
154+ putBoolean ("keep_derived" , options , params );
155+ params .put ("notification_url" , options .get ("notification_url" ));
156+ putArray ("target_tags" , options , params );
157+ putArray ("tags" , options , params );
158+ putArray ("public_ids" , options , params );
159+ putArray ("prefixes" , options , params );
160+ putEager ("transformations" , options , params );
161+ putObject ("timestamp" , options , params , Util .timestamp ());
162+ putBoolean ("skip_transformation_name" , options , params );
163+ }
179164 return params ;
180165 }
181166
167+ private static void putEager (String name , Map from , Map <String , Object > to ) {
168+ final Object transformations = from .get (name );
169+ if (transformations != null )
170+ to .put (name , buildEager ((List <Transformation >) transformations ));
171+ }
172+
173+ private static void putBoolean (String name , Map from , Map <String , Object > to ) {
174+ final Object value = from .get (name );
175+ if (value != null ){
176+ to .put (name , ObjectUtils .asBoolean (value ));
177+ }
178+ }
179+
180+ private static void putObject (String name , Map from , Map <String , Object > to ) {
181+ putObject (name , from , to , null );
182+ }
183+
184+ private static void putObject (String name , Map from , Map <String , Object > to , Object defaultValue ) {
185+ final Object value = from .get (name );
186+ if (value != null ){
187+ to .put (name , value );
188+ } else if (defaultValue != null ){
189+ to .put (name , defaultValue );
190+ }
191+ }
192+
193+ private static void putArray (String name , Map from , Map <String , Object > to ) {
194+ final Object value = from .get (name );
195+ if (value != null ){
196+ to .put (name , ObjectUtils .asArray (value ));
197+ }
198+ }
199+
182200 protected static String timestamp () {
183- return new Long (System .currentTimeMillis () / 1000L ). toString ( );
201+ return Long . toString (System .currentTimeMillis () / 1000L );
184202 }
185203}
0 commit comments