| IncrementFactory.java |
1 /**
2 * Copyright (c) 2000-2010 Liferay, Inc. All rights reserved.
3 *
4 * The contents of this file are subject to the terms of the Liferay Enterprise
5 * Subscription License ("License"). You may not use this file except in
6 * compliance with the License. You can obtain a copy of the License by
7 * contacting Liferay, Inc. See the License for the specific language governing
8 * permissions and limitations under the License, including but not limited to
9 * distribution rights of the Software.
10 *
11 *
12 *
13 */
14
15 package com.liferay.portal.kernel.increment;
16
17 import com.liferay.portal.SystemException;
18
19 import java.lang.reflect.Constructor;
20
21 /**
22 * <a href="IncrementFactory.java.html"><b><i>View Source</i></b></a>
23 *
24 * @author Shuyang Zhou
25 */
26 public class IncrementFactory {
27
28 @SuppressWarnings("rawtypes")
29 public static Increment createIncrement(
30 Class<? extends Increment<?>> counterClass, Object value)
31 throws SystemException {
32
33 if ((counterClass == NumberIncrement.class) &&
34 (value instanceof Number)) {
35
36 return new NumberIncrement((Number)value);
37 }
38 try {
39 Constructor<? extends Increment<?>> constructor =
40 counterClass.getConstructor(value.getClass());
41
42 return constructor.newInstance(value);
43 }
44 catch (Exception e) {
45 throw new SystemException(e);
46 }
47 }
48
49 }