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
030 if ((counterClass == NumberIncrement.class) &&
031 (value instanceof Number)) {
032
033 return new NumberIncrement((Number)value);
034 }
035
036 try {
037 Constructor<? extends Increment<?>> constructor =
038 counterClass.getConstructor(value.getClass());
039
040 return constructor.newInstance(value);
041 }
042 catch (Exception e) {
043 throw new SystemException(e);
044 }
045 }
046
047 }