01 /*
02 * Copyright 2010-2012 the original author or authors.
03 *
04 * Licensed under the Apache License, Version 2.0 (the "License");
05 * you may not use this file except in compliance with the License.
06 * You may obtain a copy of the License at
07 *
08 * http://www.apache.org/licenses/LICENSE-2.0
09 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16 package org.codehaus.griffon.factory;
17
18 import java.util.List;
19
20 /**
21 * @author Andres Almiray
22 */
23 public final class FactoryUtils {
24 private FactoryUtils() {
25 }
26
27 public static double toDouble(Object value) {
28 return toDouble(value, 0.0d);
29 }
30
31 public static double toDouble(Object value, double defaultValue) {
32 if (value instanceof Number) {
33 return ((Number) value).doubleValue();
34 } else {
35 try {
36 return Double.parseDouble(String.valueOf(value));
37 } catch (NumberFormatException nfe) {
38 return defaultValue;
39 }
40 }
41 }
42
43 public static float toFloat(Object value) {
44 return toFloat(value, 0.0f);
45 }
46
47 public static float toFloat(Object value, float defaultValue) {
48 if (value instanceof Number) {
49 return ((Number) value).floatValue();
50 } else {
51 try {
52 return Float.parseFloat(String.valueOf(value));
53 } catch (NumberFormatException nfe) {
54 return defaultValue;
55 }
56 }
57 }
58
59 public static int toInt(Object value) {
60 return toInt(value, 0);
61 }
62
63 public static int toInt(Object value, int defaultValue) {
64 if (value instanceof Number) {
65 return ((Number) value).intValue();
66 } else {
67 try {
68 return Integer.parseInt(String.valueOf(value));
69 } catch (NumberFormatException nfe) {
70 return defaultValue;
71 }
72 }
73 }
74
75 public static Long toLong(Object value) {
76 return toLong(value, 0L);
77 }
78
79 public static Long toLong(Object value, Long defaultValue) {
80 if (value instanceof Number) {
81 return ((Number) value).longValue();
82 } else {
83 try {
84 return Long.parseLong(String.valueOf(value));
85 } catch (NumberFormatException nfe) {
86 return defaultValue;
87 }
88 }
89 }
90
91 public static String parseSize(String size, List<String> sizes) {
92 if (sizes.contains(size)) {
93 return size + "x" + size;
94 }
95 return sizes.get(0) + "x" + sizes.get(0);
96 }
97 }
|