/** * Copyright (c) 2000-present Liferay, Inc. All rights reserved. * * This library is free software; you can redistribute it and/or modify it under * the terms of the GNU Lesser General Public License as published by the Free * Software Foundation; either version 2.1 of the License, or (at your option) * any later version. * * This library is distributed in the hope that it will be useful, but WITHOUT * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS * FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more * details. */ package com.liferay.content.targeting.analytics.model; import com.liferay.content.targeting.analytics.service.AnalyticsEventLocalServiceUtil; import com.liferay.content.targeting.analytics.service.ClpSerializer; import com.liferay.portal.kernel.bean.AutoEscapeBeanHandler; import com.liferay.portal.kernel.exception.SystemException; import com.liferay.portal.kernel.util.DateUtil; import com.liferay.portal.kernel.util.ProxyUtil; import com.liferay.portal.kernel.util.StringBundler; import com.liferay.portal.model.BaseModel; import com.liferay.portal.model.impl.BaseModelImpl; import com.liferay.portal.util.PortalUtil; import java.io.Serializable; import java.lang.reflect.Method; import java.util.Date; import java.util.HashMap; import java.util.Map; /** * @author Brian Wing Shun Chan */ public class AnalyticsEventClp extends BaseModelImpl<AnalyticsEvent> implements AnalyticsEvent { public AnalyticsEventClp() { } @Override public Class<?> getModelClass() { return AnalyticsEvent.class; } @Override public String getModelClassName() { return AnalyticsEvent.class.getName(); } @Override public long getPrimaryKey() { return _analyticsEventId; } @Override public void setPrimaryKey(long primaryKey) { setAnalyticsEventId(primaryKey); } @Override public Serializable getPrimaryKeyObj() { return _analyticsEventId; } @Override public void setPrimaryKeyObj(Serializable primaryKeyObj) { setPrimaryKey(((Long)primaryKeyObj).longValue()); } @Override public Map<String, Object> getModelAttributes() { Map<String, Object> attributes = new HashMap<String, Object>(); attributes.put("analyticsEventId", getAnalyticsEventId()); attributes.put("companyId", getCompanyId()); attributes.put("userId", getUserId()); attributes.put("anonymousUserId", getAnonymousUserId()); attributes.put("className", getClassName()); attributes.put("classPK", getClassPK()); attributes.put("elementId", getElementId()); attributes.put("eventType", getEventType()); attributes.put("clientIP", getClientIP()); attributes.put("userAgent", getUserAgent()); attributes.put("languageId", getLanguageId()); attributes.put("URL", getURL()); attributes.put("additionalInfo", getAdditionalInfo()); attributes.put("createDate", getCreateDate()); return attributes; } @Override public void setModelAttributes(Map<String, Object> attributes) { Long analyticsEventId = (Long)attributes.get("analyticsEventId"); if (analyticsEventId != null) { setAnalyticsEventId(analyticsEventId); } Long companyId = (Long)attributes.get("companyId"); if (companyId != null) { setCompanyId(companyId); } Long userId = (Long)attributes.get("userId"); if (userId != null) { setUserId(userId); } Long anonymousUserId = (Long)attributes.get("anonymousUserId"); if (anonymousUserId != null) { setAnonymousUserId(anonymousUserId); } String className = (String)attributes.get("className"); if (className != null) { setClassName(className); } Long classPK = (Long)attributes.get("classPK"); if (classPK != null) { setClassPK(classPK); } String elementId = (String)attributes.get("elementId"); if (elementId != null) { setElementId(elementId); } String eventType = (String)attributes.get("eventType"); if (eventType != null) { setEventType(eventType); } String clientIP = (String)attributes.get("clientIP"); if (clientIP != null) { setClientIP(clientIP); } String userAgent = (String)attributes.get("userAgent"); if (userAgent != null) { setUserAgent(userAgent); } String languageId = (String)attributes.get("languageId"); if (languageId != null) { setLanguageId(languageId); } String URL = (String)attributes.get("URL"); if (URL != null) { setURL(URL); } String additionalInfo = (String)attributes.get("additionalInfo"); if (additionalInfo != null) { setAdditionalInfo(additionalInfo); } Date createDate = (Date)attributes.get("createDate"); if (createDate != null) { setCreateDate(createDate); } } @Override public long getAnalyticsEventId() { return _analyticsEventId; } @Override public void setAnalyticsEventId(long analyticsEventId) { _analyticsEventId = analyticsEventId; if (_analyticsEventRemoteModel != null) { try { Class<?> clazz = _analyticsEventRemoteModel.getClass(); Method method = clazz.getMethod("setAnalyticsEventId", long.class); method.invoke(_analyticsEventRemoteModel, analyticsEventId); } catch (Exception e) { throw new UnsupportedOperationException(e); } } } @Override public long getCompanyId() { return _companyId; } @Override public void setCompanyId(long companyId) { _companyId = companyId; if (_analyticsEventRemoteModel != null) { try { Class<?> clazz = _analyticsEventRemoteModel.getClass(); Method method = clazz.getMethod("setCompanyId", long.class); method.invoke(_analyticsEventRemoteModel, companyId); } catch (Exception e) { throw new UnsupportedOperationException(e); } } } @Override public long getUserId() { return _userId; } @Override public void setUserId(long userId) { _userId = userId; if (_analyticsEventRemoteModel != null) { try { Class<?> clazz = _analyticsEventRemoteModel.getClass(); Method method = clazz.getMethod("setUserId", long.class); method.invoke(_analyticsEventRemoteModel, userId); } catch (Exception e) { throw new UnsupportedOperationException(e); } } } @Override public String getUserUuid() throws SystemException { return PortalUtil.getUserValue(getUserId(), "uuid", _userUuid); } @Override public void setUserUuid(String userUuid) { _userUuid = userUuid; } @Override public long getAnonymousUserId() { return _anonymousUserId; } @Override public void setAnonymousUserId(long anonymousUserId) { _anonymousUserId = anonymousUserId; if (_analyticsEventRemoteModel != null) { try { Class<?> clazz = _analyticsEventRemoteModel.getClass(); Method method = clazz.getMethod("setAnonymousUserId", long.class); method.invoke(_analyticsEventRemoteModel, anonymousUserId); } catch (Exception e) { throw new UnsupportedOperationException(e); } } } @Override public String getAnonymousUserUuid() throws SystemException { return PortalUtil.getUserValue(getAnonymousUserId(), "uuid", _anonymousUserUuid); } @Override public void setAnonymousUserUuid(String anonymousUserUuid) { _anonymousUserUuid = anonymousUserUuid; } @Override public String getClassName() { return _className; } @Override public void setClassName(String className) { _className = className; if (_analyticsEventRemoteModel != null) { try { Class<?> clazz = _analyticsEventRemoteModel.getClass(); Method method = clazz.getMethod("setClassName", String.class); method.invoke(_analyticsEventRemoteModel, className); } catch (Exception e) { throw new UnsupportedOperationException(e); } } } @Override public long getClassPK() { return _classPK; } @Override public void setClassPK(long classPK) { _classPK = classPK; if (_analyticsEventRemoteModel != null) { try { Class<?> clazz = _analyticsEventRemoteModel.getClass(); Method method = clazz.getMethod("setClassPK", long.class); method.invoke(_analyticsEventRemoteModel, classPK); } catch (Exception e) { throw new UnsupportedOperationException(e); } } } @Override public String getElementId() { return _elementId; } @Override public void setElementId(String elementId) { _elementId = elementId; if (_analyticsEventRemoteModel != null) { try { Class<?> clazz = _analyticsEventRemoteModel.getClass(); Method method = clazz.getMethod("setElementId", String.class); method.invoke(_analyticsEventRemoteModel, elementId); } catch (Exception e) { throw new UnsupportedOperationException(e); } } } @Override public String getEventType() { return _eventType; } @Override public void setEventType(String eventType) { _eventType = eventType; if (_analyticsEventRemoteModel != null) { try { Class<?> clazz = _analyticsEventRemoteModel.getClass(); Method method = clazz.getMethod("setEventType", String.class); method.invoke(_analyticsEventRemoteModel, eventType); } catch (Exception e) { throw new UnsupportedOperationException(e); } } } @Override public String getClientIP() { return _clientIP; } @Override public void setClientIP(String clientIP) { _clientIP = clientIP; if (_analyticsEventRemoteModel != null) { try { Class<?> clazz = _analyticsEventRemoteModel.getClass(); Method method = clazz.getMethod("setClientIP", String.class); method.invoke(_analyticsEventRemoteModel, clientIP); } catch (Exception e) { throw new UnsupportedOperationException(e); } } } @Override public String getUserAgent() { return _userAgent; } @Override public void setUserAgent(String userAgent) { _userAgent = userAgent; if (_analyticsEventRemoteModel != null) { try { Class<?> clazz = _analyticsEventRemoteModel.getClass(); Method method = clazz.getMethod("setUserAgent", String.class); method.invoke(_analyticsEventRemoteModel, userAgent); } catch (Exception e) { throw new UnsupportedOperationException(e); } } } @Override public String getLanguageId() { return _languageId; } @Override public void setLanguageId(String languageId) { _languageId = languageId; if (_analyticsEventRemoteModel != null) { try { Class<?> clazz = _analyticsEventRemoteModel.getClass(); Method method = clazz.getMethod("setLanguageId", String.class); method.invoke(_analyticsEventRemoteModel, languageId); } catch (Exception e) { throw new UnsupportedOperationException(e); } } } @Override public String getURL() { return _URL; } @Override public void setURL(String URL) { _URL = URL; if (_analyticsEventRemoteModel != null) { try { Class<?> clazz = _analyticsEventRemoteModel.getClass(); Method method = clazz.getMethod("setURL", String.class); method.invoke(_analyticsEventRemoteModel, URL); } catch (Exception e) { throw new UnsupportedOperationException(e); } } } @Override public String getAdditionalInfo() { return _additionalInfo; } @Override public void setAdditionalInfo(String additionalInfo) { _additionalInfo = additionalInfo; if (_analyticsEventRemoteModel != null) { try { Class<?> clazz = _analyticsEventRemoteModel.getClass(); Method method = clazz.getMethod("setAdditionalInfo", String.class); method.invoke(_analyticsEventRemoteModel, additionalInfo); } catch (Exception e) { throw new UnsupportedOperationException(e); } } } @Override public Date getCreateDate() { return _createDate; } @Override public void setCreateDate(Date createDate) { _createDate = createDate; if (_analyticsEventRemoteModel != null) { try { Class<?> clazz = _analyticsEventRemoteModel.getClass(); Method method = clazz.getMethod("setCreateDate", Date.class); method.invoke(_analyticsEventRemoteModel, createDate); } catch (Exception e) { throw new UnsupportedOperationException(e); } } } public BaseModel<?> getAnalyticsEventRemoteModel() { return _analyticsEventRemoteModel; } public void setAnalyticsEventRemoteModel( BaseModel<?> analyticsEventRemoteModel) { _analyticsEventRemoteModel = analyticsEventRemoteModel; } public Object invokeOnRemoteModel(String methodName, Class<?>[] parameterTypes, Object[] parameterValues) throws Exception { Object[] remoteParameterValues = new Object[parameterValues.length]; for (int i = 0; i < parameterValues.length; i++) { if (parameterValues[i] != null) { remoteParameterValues[i] = ClpSerializer.translateInput(parameterValues[i]); } } Class<?> remoteModelClass = _analyticsEventRemoteModel.getClass(); ClassLoader remoteModelClassLoader = remoteModelClass.getClassLoader(); Class<?>[] remoteParameterTypes = new Class[parameterTypes.length]; for (int i = 0; i < parameterTypes.length; i++) { if (parameterTypes[i].isPrimitive()) { remoteParameterTypes[i] = parameterTypes[i]; } else { String parameterTypeName = parameterTypes[i].getName(); remoteParameterTypes[i] = remoteModelClassLoader.loadClass(parameterTypeName); } } Method method = remoteModelClass.getMethod(methodName, remoteParameterTypes); Object returnValue = method.invoke(_analyticsEventRemoteModel, remoteParameterValues); if (returnValue != null) { returnValue = ClpSerializer.translateOutput(returnValue); } return returnValue; } @Override public void persist() throws SystemException { if (this.isNew()) { AnalyticsEventLocalServiceUtil.addAnalyticsEvent(this); } else { AnalyticsEventLocalServiceUtil.updateAnalyticsEvent(this); } } @Override public AnalyticsEvent toEscapedModel() { return (AnalyticsEvent)ProxyUtil.newProxyInstance(AnalyticsEvent.class.getClassLoader(), new Class[] { AnalyticsEvent.class }, new AutoEscapeBeanHandler(this)); } @Override public Object clone() { AnalyticsEventClp clone = new AnalyticsEventClp(); clone.setAnalyticsEventId(getAnalyticsEventId()); clone.setCompanyId(getCompanyId()); clone.setUserId(getUserId()); clone.setAnonymousUserId(getAnonymousUserId()); clone.setClassName(getClassName()); clone.setClassPK(getClassPK()); clone.setElementId(getElementId()); clone.setEventType(getEventType()); clone.setClientIP(getClientIP()); clone.setUserAgent(getUserAgent()); clone.setLanguageId(getLanguageId()); clone.setURL(getURL()); clone.setAdditionalInfo(getAdditionalInfo()); clone.setCreateDate(getCreateDate()); return clone; } @Override public int compareTo(AnalyticsEvent analyticsEvent) { int value = 0; value = DateUtil.compareTo(getCreateDate(), analyticsEvent.getCreateDate()); value = value * -1; if (value != 0) { return value; } return 0; } @Override public boolean equals(Object obj) { if (this == obj) { return true; } if (!(obj instanceof AnalyticsEventClp)) { return false; } AnalyticsEventClp analyticsEvent = (AnalyticsEventClp)obj; long primaryKey = analyticsEvent.getPrimaryKey(); if (getPrimaryKey() == primaryKey) { return true; } else { return false; } } public Class<?> getClpSerializerClass() { return _clpSerializerClass; } @Override public int hashCode() { return (int)getPrimaryKey(); } @Override public String toString() { StringBundler sb = new StringBundler(29); sb.append("{analyticsEventId="); sb.append(getAnalyticsEventId()); sb.append(", companyId="); sb.append(getCompanyId()); sb.append(", userId="); sb.append(getUserId()); sb.append(", anonymousUserId="); sb.append(getAnonymousUserId()); sb.append(", className="); sb.append(getClassName()); sb.append(", classPK="); sb.append(getClassPK()); sb.append(", elementId="); sb.append(getElementId()); sb.append(", eventType="); sb.append(getEventType()); sb.append(", clientIP="); sb.append(getClientIP()); sb.append(", userAgent="); sb.append(getUserAgent()); sb.append(", languageId="); sb.append(getLanguageId()); sb.append(", URL="); sb.append(getURL()); sb.append(", additionalInfo="); sb.append(getAdditionalInfo()); sb.append(", createDate="); sb.append(getCreateDate()); sb.append("}"); return sb.toString(); } @Override public String toXmlString() { StringBundler sb = new StringBundler(46); sb.append("<model><model-name>"); sb.append( "com.liferay.content.targeting.analytics.model.AnalyticsEvent"); sb.append("</model-name>"); sb.append( "<column><column-name>analyticsEventId</column-name><column-value><![CDATA["); sb.append(getAnalyticsEventId()); sb.append("]]></column-value></column>"); sb.append( "<column><column-name>companyId</column-name><column-value><![CDATA["); sb.append(getCompanyId()); sb.append("]]></column-value></column>"); sb.append( "<column><column-name>userId</column-name><column-value><![CDATA["); sb.append(getUserId()); sb.append("]]></column-value></column>"); sb.append( "<column><column-name>anonymousUserId</column-name><column-value><![CDATA["); sb.append(getAnonymousUserId()); sb.append("]]></column-value></column>"); sb.append( "<column><column-name>className</column-name><column-value><![CDATA["); sb.append(getClassName()); sb.append("]]></column-value></column>"); sb.append( "<column><column-name>classPK</column-name><column-value><![CDATA["); sb.append(getClassPK()); sb.append("]]></column-value></column>"); sb.append( "<column><column-name>elementId</column-name><column-value><![CDATA["); sb.append(getElementId()); sb.append("]]></column-value></column>"); sb.append( "<column><column-name>eventType</column-name><column-value><![CDATA["); sb.append(getEventType()); sb.append("]]></column-value></column>"); sb.append( "<column><column-name>clientIP</column-name><column-value><![CDATA["); sb.append(getClientIP()); sb.append("]]></column-value></column>"); sb.append( "<column><column-name>userAgent</column-name><column-value><![CDATA["); sb.append(getUserAgent()); sb.append("]]></column-value></column>"); sb.append( "<column><column-name>languageId</column-name><column-value><![CDATA["); sb.append(getLanguageId()); sb.append("]]></column-value></column>"); sb.append( "<column><column-name>URL</column-name><column-value><![CDATA["); sb.append(getURL()); sb.append("]]></column-value></column>"); sb.append( "<column><column-name>additionalInfo</column-name><column-value><![CDATA["); sb.append(getAdditionalInfo()); sb.append("]]></column-value></column>"); sb.append( "<column><column-name>createDate</column-name><column-value><![CDATA["); sb.append(getCreateDate()); sb.append("]]></column-value></column>"); sb.append("</model>"); return sb.toString(); } private long _analyticsEventId; private long _companyId; private long _userId; private String _userUuid; private long _anonymousUserId; private String _anonymousUserUuid; private String _className; private long _classPK; private String _elementId; private String _eventType; private String _clientIP; private String _userAgent; private String _languageId; private String _URL; private String _additionalInfo; private Date _createDate; private BaseModel<?> _analyticsEventRemoteModel; private Class<?> _clpSerializerClass = com.liferay.content.targeting.analytics.service.ClpSerializer.class; }