/**
* Copyright (c) 2000-2013 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 org.liferay.jukebox.model;
import com.liferay.portal.kernel.bean.AutoEscapeBeanHandler;
import com.liferay.portal.kernel.exception.PortalException;
import com.liferay.portal.kernel.exception.SystemException;
import com.liferay.portal.kernel.lar.StagedModelType;
import com.liferay.portal.kernel.trash.TrashHandler;
import com.liferay.portal.kernel.trash.TrashHandlerRegistryUtil;
import com.liferay.portal.kernel.util.ProxyUtil;
import com.liferay.portal.kernel.util.StringBundler;
import com.liferay.portal.kernel.util.Validator;
import com.liferay.portal.kernel.workflow.WorkflowConstants;
import com.liferay.portal.model.BaseModel;
import com.liferay.portal.model.ContainerModel;
import com.liferay.portal.model.TrashedModel;
import com.liferay.portal.model.impl.BaseModelImpl;
import com.liferay.portal.util.PortalUtil;
import com.liferay.portlet.trash.model.TrashEntry;
import com.liferay.portlet.trash.service.TrashEntryLocalServiceUtil;
import org.liferay.jukebox.service.AlbumLocalServiceUtil;
import org.liferay.jukebox.service.ClpSerializer;
import java.io.Serializable;
import java.lang.reflect.Method;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
/**
* @author Julio Camarero
*/
public class AlbumClp extends BaseModelImpl<Album> implements Album {
public AlbumClp() {
}
@Override
public Class<?> getModelClass() {
return Album.class;
}
@Override
public String getModelClassName() {
return Album.class.getName();
}
@Override
public long getPrimaryKey() {
return _albumId;
}
@Override
public void setPrimaryKey(long primaryKey) {
setAlbumId(primaryKey);
}
@Override
public Serializable getPrimaryKeyObj() {
return _albumId;
}
@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("uuid", getUuid());
attributes.put("albumId", getAlbumId());
attributes.put("companyId", getCompanyId());
attributes.put("groupId", getGroupId());
attributes.put("userId", getUserId());
attributes.put("userName", getUserName());
attributes.put("createDate", getCreateDate());
attributes.put("modifiedDate", getModifiedDate());
attributes.put("artistId", getArtistId());
attributes.put("name", getName());
attributes.put("year", getYear());
attributes.put("status", getStatus());
attributes.put("statusByUserId", getStatusByUserId());
attributes.put("statusByUserName", getStatusByUserName());
attributes.put("statusDate", getStatusDate());
return attributes;
}
@Override
public void setModelAttributes(Map<String, Object> attributes) {
String uuid = (String)attributes.get("uuid");
if (uuid != null) {
setUuid(uuid);
}
Long albumId = (Long)attributes.get("albumId");
if (albumId != null) {
setAlbumId(albumId);
}
Long companyId = (Long)attributes.get("companyId");
if (companyId != null) {
setCompanyId(companyId);
}
Long groupId = (Long)attributes.get("groupId");
if (groupId != null) {
setGroupId(groupId);
}
Long userId = (Long)attributes.get("userId");
if (userId != null) {
setUserId(userId);
}
String userName = (String)attributes.get("userName");
if (userName != null) {
setUserName(userName);
}
Date createDate = (Date)attributes.get("createDate");
if (createDate != null) {
setCreateDate(createDate);
}
Date modifiedDate = (Date)attributes.get("modifiedDate");
if (modifiedDate != null) {
setModifiedDate(modifiedDate);
}
Long artistId = (Long)attributes.get("artistId");
if (artistId != null) {
setArtistId(artistId);
}
String name = (String)attributes.get("name");
if (name != null) {
setName(name);
}
Integer year = (Integer)attributes.get("year");
if (year != null) {
setYear(year);
}
Integer status = (Integer)attributes.get("status");
if (status != null) {
setStatus(status);
}
Long statusByUserId = (Long)attributes.get("statusByUserId");
if (statusByUserId != null) {
setStatusByUserId(statusByUserId);
}
String statusByUserName = (String)attributes.get("statusByUserName");
if (statusByUserName != null) {
setStatusByUserName(statusByUserName);
}
Date statusDate = (Date)attributes.get("statusDate");
if (statusDate != null) {
setStatusDate(statusDate);
}
}
@Override
public String getUuid() {
return _uuid;
}
@Override
public void setUuid(String uuid) {
_uuid = uuid;
if (_albumRemoteModel != null) {
try {
Class<?> clazz = _albumRemoteModel.getClass();
Method method = clazz.getMethod("setUuid", String.class);
method.invoke(_albumRemoteModel, uuid);
}
catch (Exception e) {
throw new UnsupportedOperationException(e);
}
}
}
@Override
public long getAlbumId() {
return _albumId;
}
@Override
public void setAlbumId(long albumId) {
_albumId = albumId;
if (_albumRemoteModel != null) {
try {
Class<?> clazz = _albumRemoteModel.getClass();
Method method = clazz.getMethod("setAlbumId", long.class);
method.invoke(_albumRemoteModel, albumId);
}
catch (Exception e) {
throw new UnsupportedOperationException(e);
}
}
}
@Override
public long getCompanyId() {
return _companyId;
}
@Override
public void setCompanyId(long companyId) {
_companyId = companyId;
if (_albumRemoteModel != null) {
try {
Class<?> clazz = _albumRemoteModel.getClass();
Method method = clazz.getMethod("setCompanyId", long.class);
method.invoke(_albumRemoteModel, companyId);
}
catch (Exception e) {
throw new UnsupportedOperationException(e);
}
}
}
@Override
public long getGroupId() {
return _groupId;
}
@Override
public void setGroupId(long groupId) {
_groupId = groupId;
if (_albumRemoteModel != null) {
try {
Class<?> clazz = _albumRemoteModel.getClass();
Method method = clazz.getMethod("setGroupId", long.class);
method.invoke(_albumRemoteModel, groupId);
}
catch (Exception e) {
throw new UnsupportedOperationException(e);
}
}
}
@Override
public long getUserId() {
return _userId;
}
@Override
public void setUserId(long userId) {
_userId = userId;
if (_albumRemoteModel != null) {
try {
Class<?> clazz = _albumRemoteModel.getClass();
Method method = clazz.getMethod("setUserId", long.class);
method.invoke(_albumRemoteModel, 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 String getUserName() {
return _userName;
}
@Override
public void setUserName(String userName) {
_userName = userName;
if (_albumRemoteModel != null) {
try {
Class<?> clazz = _albumRemoteModel.getClass();
Method method = clazz.getMethod("setUserName", String.class);
method.invoke(_albumRemoteModel, userName);
}
catch (Exception e) {
throw new UnsupportedOperationException(e);
}
}
}
@Override
public Date getCreateDate() {
return _createDate;
}
@Override
public void setCreateDate(Date createDate) {
_createDate = createDate;
if (_albumRemoteModel != null) {
try {
Class<?> clazz = _albumRemoteModel.getClass();
Method method = clazz.getMethod("setCreateDate", Date.class);
method.invoke(_albumRemoteModel, createDate);
}
catch (Exception e) {
throw new UnsupportedOperationException(e);
}
}
}
@Override
public Date getModifiedDate() {
return _modifiedDate;
}
@Override
public void setModifiedDate(Date modifiedDate) {
_modifiedDate = modifiedDate;
if (_albumRemoteModel != null) {
try {
Class<?> clazz = _albumRemoteModel.getClass();
Method method = clazz.getMethod("setModifiedDate", Date.class);
method.invoke(_albumRemoteModel, modifiedDate);
}
catch (Exception e) {
throw new UnsupportedOperationException(e);
}
}
}
@Override
public long getArtistId() {
return _artistId;
}
@Override
public void setArtistId(long artistId) {
_artistId = artistId;
if (_albumRemoteModel != null) {
try {
Class<?> clazz = _albumRemoteModel.getClass();
Method method = clazz.getMethod("setArtistId", long.class);
method.invoke(_albumRemoteModel, artistId);
}
catch (Exception e) {
throw new UnsupportedOperationException(e);
}
}
}
@Override
public String getName() {
return _name;
}
@Override
public void setName(String name) {
_name = name;
if (_albumRemoteModel != null) {
try {
Class<?> clazz = _albumRemoteModel.getClass();
Method method = clazz.getMethod("setName", String.class);
method.invoke(_albumRemoteModel, name);
}
catch (Exception e) {
throw new UnsupportedOperationException(e);
}
}
}
@Override
public int getYear() {
return _year;
}
@Override
public void setYear(int year) {
_year = year;
if (_albumRemoteModel != null) {
try {
Class<?> clazz = _albumRemoteModel.getClass();
Method method = clazz.getMethod("setYear", int.class);
method.invoke(_albumRemoteModel, year);
}
catch (Exception e) {
throw new UnsupportedOperationException(e);
}
}
}
@Override
public int getStatus() {
return _status;
}
@Override
public void setStatus(int status) {
_status = status;
if (_albumRemoteModel != null) {
try {
Class<?> clazz = _albumRemoteModel.getClass();
Method method = clazz.getMethod("setStatus", int.class);
method.invoke(_albumRemoteModel, status);
}
catch (Exception e) {
throw new UnsupportedOperationException(e);
}
}
}
@Override
public long getStatusByUserId() {
return _statusByUserId;
}
@Override
public void setStatusByUserId(long statusByUserId) {
_statusByUserId = statusByUserId;
if (_albumRemoteModel != null) {
try {
Class<?> clazz = _albumRemoteModel.getClass();
Method method = clazz.getMethod("setStatusByUserId", long.class);
method.invoke(_albumRemoteModel, statusByUserId);
}
catch (Exception e) {
throw new UnsupportedOperationException(e);
}
}
}
@Override
public String getStatusByUserUuid() throws SystemException {
return PortalUtil.getUserValue(getStatusByUserId(), "uuid",
_statusByUserUuid);
}
@Override
public void setStatusByUserUuid(String statusByUserUuid) {
_statusByUserUuid = statusByUserUuid;
}
@Override
public String getStatusByUserName() {
return _statusByUserName;
}
@Override
public void setStatusByUserName(String statusByUserName) {
_statusByUserName = statusByUserName;
if (_albumRemoteModel != null) {
try {
Class<?> clazz = _albumRemoteModel.getClass();
Method method = clazz.getMethod("setStatusByUserName",
String.class);
method.invoke(_albumRemoteModel, statusByUserName);
}
catch (Exception e) {
throw new UnsupportedOperationException(e);
}
}
}
@Override
public Date getStatusDate() {
return _statusDate;
}
@Override
public void setStatusDate(Date statusDate) {
_statusDate = statusDate;
if (_albumRemoteModel != null) {
try {
Class<?> clazz = _albumRemoteModel.getClass();
Method method = clazz.getMethod("setStatusDate", Date.class);
method.invoke(_albumRemoteModel, statusDate);
}
catch (Exception e) {
throw new UnsupportedOperationException(e);
}
}
}
@Override
public boolean hasCustomImage() {
try {
String methodName = "hasCustomImage";
Class<?>[] parameterTypes = new Class<?>[] { };
Object[] parameterValues = new Object[] { };
Boolean returnObj = (Boolean)invokeOnRemoteModel(methodName,
parameterTypes, parameterValues);
return returnObj;
}
catch (Exception e) {
throw new UnsupportedOperationException(e);
}
}
@Override
public com.liferay.portal.kernel.repository.model.FileEntry getCustomImage() {
try {
String methodName = "getCustomImage";
Class<?>[] parameterTypes = new Class<?>[] { };
Object[] parameterValues = new Object[] { };
com.liferay.portal.kernel.repository.model.FileEntry returnObj = (com.liferay.portal.kernel.repository.model.FileEntry)invokeOnRemoteModel(methodName,
parameterTypes, parameterValues);
return returnObj;
}
catch (Exception e) {
throw new UnsupportedOperationException(e);
}
}
@Override
public java.lang.String getImageURL(
com.liferay.portal.theme.ThemeDisplay themeDisplay) {
try {
String methodName = "getImageURL";
Class<?>[] parameterTypes = new Class<?>[] {
com.liferay.portal.theme.ThemeDisplay.class
};
Object[] parameterValues = new Object[] { themeDisplay };
java.lang.String returnObj = (java.lang.String)invokeOnRemoteModel(methodName,
parameterTypes, parameterValues);
return returnObj;
}
catch (Exception e) {
throw new UnsupportedOperationException(e);
}
}
public long getContainerModelId() {
return getAlbumId();
}
public void setContainerModelId(long containerModelId) {
_albumId = containerModelId;
}
public String getContainerModelName() {
return String.valueOf(getName());
}
public long getParentContainerModelId() {
return 0;
}
public void setParentContainerModelId(long parentContainerModelId) {
}
@Override
public StagedModelType getStagedModelType() {
return new StagedModelType(PortalUtil.getClassNameId(
Album.class.getName()));
}
@Override
public TrashEntry getTrashEntry() throws PortalException, SystemException {
if (!isInTrash()) {
return null;
}
TrashEntry trashEntry = TrashEntryLocalServiceUtil.fetchEntry(getModelClassName(),
getTrashEntryClassPK());
if (trashEntry != null) {
return trashEntry;
}
TrashHandler trashHandler = getTrashHandler();
if (!Validator.isNull(trashHandler.getContainerModelClassName())) {
ContainerModel containerModel = trashHandler.getParentContainerModel(this);
while (containerModel != null) {
if (containerModel instanceof TrashedModel) {
TrashedModel trashedModel = (TrashedModel)containerModel;
return trashedModel.getTrashEntry();
}
trashHandler = TrashHandlerRegistryUtil.getTrashHandler(trashHandler.getContainerModelClassName());
if (trashHandler == null) {
return null;
}
containerModel = trashHandler.getContainerModel(containerModel.getParentContainerModelId());
}
}
return null;
}
@Override
public long getTrashEntryClassPK() {
return getPrimaryKey();
}
@Override
public TrashHandler getTrashHandler() {
return TrashHandlerRegistryUtil.getTrashHandler(getModelClassName());
}
@Override
public boolean isInTrash() {
if (getStatus() == WorkflowConstants.STATUS_IN_TRASH) {
return true;
}
else {
return false;
}
}
@Override
public boolean isInTrashContainer() {
TrashHandler trashHandler = getTrashHandler();
if ((trashHandler == null) ||
Validator.isNull(trashHandler.getContainerModelClassName())) {
return false;
}
try {
ContainerModel containerModel = trashHandler.getParentContainerModel(this);
if (containerModel == null) {
return false;
}
if (containerModel instanceof TrashedModel) {
return ((TrashedModel)containerModel).isInTrash();
}
}
catch (Exception e) {
}
return false;
}
/**
* @deprecated As of 6.1.0, replaced by {@link #isApproved}
*/
@Override
public boolean getApproved() {
return isApproved();
}
@Override
public boolean isApproved() {
if (getStatus() == WorkflowConstants.STATUS_APPROVED) {
return true;
}
else {
return false;
}
}
@Override
public boolean isDenied() {
if (getStatus() == WorkflowConstants.STATUS_DENIED) {
return true;
}
else {
return false;
}
}
@Override
public boolean isDraft() {
if (getStatus() == WorkflowConstants.STATUS_DRAFT) {
return true;
}
else {
return false;
}
}
@Override
public boolean isExpired() {
if (getStatus() == WorkflowConstants.STATUS_EXPIRED) {
return true;
}
else {
return false;
}
}
@Override
public boolean isInactive() {
if (getStatus() == WorkflowConstants.STATUS_INACTIVE) {
return true;
}
else {
return false;
}
}
@Override
public boolean isIncomplete() {
if (getStatus() == WorkflowConstants.STATUS_INCOMPLETE) {
return true;
}
else {
return false;
}
}
@Override
public boolean isPending() {
if (getStatus() == WorkflowConstants.STATUS_PENDING) {
return true;
}
else {
return false;
}
}
@Override
public boolean isScheduled() {
if (getStatus() == WorkflowConstants.STATUS_SCHEDULED) {
return true;
}
else {
return false;
}
}
public BaseModel<?> getAlbumRemoteModel() {
return _albumRemoteModel;
}
public void setAlbumRemoteModel(BaseModel<?> albumRemoteModel) {
_albumRemoteModel = albumRemoteModel;
}
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 = _albumRemoteModel.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(_albumRemoteModel,
remoteParameterValues);
if (returnValue != null) {
returnValue = ClpSerializer.translateOutput(returnValue);
}
return returnValue;
}
@Override
public void persist() throws SystemException {
if (this.isNew()) {
AlbumLocalServiceUtil.addAlbum(this);
}
else {
AlbumLocalServiceUtil.updateAlbum(this);
}
}
@Override
public Album toEscapedModel() {
return (Album)ProxyUtil.newProxyInstance(Album.class.getClassLoader(),
new Class[] { Album.class }, new AutoEscapeBeanHandler(this));
}
@Override
public Object clone() {
AlbumClp clone = new AlbumClp();
clone.setUuid(getUuid());
clone.setAlbumId(getAlbumId());
clone.setCompanyId(getCompanyId());
clone.setGroupId(getGroupId());
clone.setUserId(getUserId());
clone.setUserName(getUserName());
clone.setCreateDate(getCreateDate());
clone.setModifiedDate(getModifiedDate());
clone.setArtistId(getArtistId());
clone.setName(getName());
clone.setYear(getYear());
clone.setStatus(getStatus());
clone.setStatusByUserId(getStatusByUserId());
clone.setStatusByUserName(getStatusByUserName());
clone.setStatusDate(getStatusDate());
return clone;
}
@Override
public int compareTo(Album album) {
long primaryKey = album.getPrimaryKey();
if (getPrimaryKey() < primaryKey) {
return -1;
}
else if (getPrimaryKey() > primaryKey) {
return 1;
}
else {
return 0;
}
}
@Override
public boolean equals(Object obj) {
if (this == obj) {
return true;
}
if (!(obj instanceof AlbumClp)) {
return false;
}
AlbumClp album = (AlbumClp)obj;
long primaryKey = album.getPrimaryKey();
if (getPrimaryKey() == primaryKey) {
return true;
}
else {
return false;
}
}
@Override
public int hashCode() {
return (int)getPrimaryKey();
}
@Override
public String toString() {
StringBundler sb = new StringBundler(31);
sb.append("{uuid=");
sb.append(getUuid());
sb.append(", albumId=");
sb.append(getAlbumId());
sb.append(", companyId=");
sb.append(getCompanyId());
sb.append(", groupId=");
sb.append(getGroupId());
sb.append(", userId=");
sb.append(getUserId());
sb.append(", userName=");
sb.append(getUserName());
sb.append(", createDate=");
sb.append(getCreateDate());
sb.append(", modifiedDate=");
sb.append(getModifiedDate());
sb.append(", artistId=");
sb.append(getArtistId());
sb.append(", name=");
sb.append(getName());
sb.append(", year=");
sb.append(getYear());
sb.append(", status=");
sb.append(getStatus());
sb.append(", statusByUserId=");
sb.append(getStatusByUserId());
sb.append(", statusByUserName=");
sb.append(getStatusByUserName());
sb.append(", statusDate=");
sb.append(getStatusDate());
sb.append("}");
return sb.toString();
}
@Override
public String toXmlString() {
StringBundler sb = new StringBundler(49);
sb.append("<model><model-name>");
sb.append("org.liferay.jukebox.model.Album");
sb.append("</model-name>");
sb.append(
"<column><column-name>uuid</column-name><column-value><![CDATA[");
sb.append(getUuid());
sb.append("]]></column-value></column>");
sb.append(
"<column><column-name>albumId</column-name><column-value><![CDATA[");
sb.append(getAlbumId());
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>groupId</column-name><column-value><![CDATA[");
sb.append(getGroupId());
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>userName</column-name><column-value><![CDATA[");
sb.append(getUserName());
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(
"<column><column-name>modifiedDate</column-name><column-value><![CDATA[");
sb.append(getModifiedDate());
sb.append("]]></column-value></column>");
sb.append(
"<column><column-name>artistId</column-name><column-value><![CDATA[");
sb.append(getArtistId());
sb.append("]]></column-value></column>");
sb.append(
"<column><column-name>name</column-name><column-value><![CDATA[");
sb.append(getName());
sb.append("]]></column-value></column>");
sb.append(
"<column><column-name>year</column-name><column-value><![CDATA[");
sb.append(getYear());
sb.append("]]></column-value></column>");
sb.append(
"<column><column-name>status</column-name><column-value><![CDATA[");
sb.append(getStatus());
sb.append("]]></column-value></column>");
sb.append(
"<column><column-name>statusByUserId</column-name><column-value><![CDATA[");
sb.append(getStatusByUserId());
sb.append("]]></column-value></column>");
sb.append(
"<column><column-name>statusByUserName</column-name><column-value><![CDATA[");
sb.append(getStatusByUserName());
sb.append("]]></column-value></column>");
sb.append(
"<column><column-name>statusDate</column-name><column-value><![CDATA[");
sb.append(getStatusDate());
sb.append("]]></column-value></column>");
sb.append("</model>");
return sb.toString();
}
private String _uuid;
private long _albumId;
private long _companyId;
private long _groupId;
private long _userId;
private String _userUuid;
private String _userName;
private Date _createDate;
private Date _modifiedDate;
private long _artistId;
private String _name;
private int _year;
private int _status;
private long _statusByUserId;
private String _statusByUserUuid;
private String _statusByUserName;
private Date _statusDate;
private BaseModel<?> _albumRemoteModel;
}