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.SocialEquityIncrementPayload;
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 SocialEquityIncrementPayload)) {
039
040 return new SocialEquityIncrement(
041 (SocialEquityIncrementPayload)value);
042 }
043
044 try {
045 Constructor<? extends Increment<?>> constructor =
046 counterClass.getConstructor(value.getClass());
047
048 return constructor.newInstance(value);
049 }
050 catch (Exception e) {
051 throw new SystemException(e);
052 }
053 }
054
055 }