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