001
014
015 package com.liferay.portal.kernel.increment;
016
017 import com.liferay.portal.kernel.exception.SystemException;
018
019 import java.lang.reflect.Constructor;
020
021
024 public class IncrementFactory {
025
026 @SuppressWarnings("rawtypes")
027 public static Increment createIncrement(
028 Class<? extends Increment<?>> counterClass, Object value)
029 throws SystemException {
030
031 if ((counterClass == NumberIncrement.class) &&
032 (value instanceof Number)) {
033
034 return new NumberIncrement((Number)value);
035 }
036
037 try {
038 Constructor<? extends Increment<?>> constructor =
039 counterClass.getConstructor(value.getClass());
040
041 return constructor.newInstance(value);
042 }
043 catch (Exception e) {
044 throw new SystemException(e);
045 }
046 }
047
048 }