/portlets/twitter-portlet/docroot/WEB-INF/service/com/liferay/twitter/service/ClpSerializer.java
Java | 344 lines | 223 code | 105 blank | 16 comment | 20 complexity | 669004d051bee6053aa88dbe6bfae9c7 MD5 | raw file
- /**
- * Copyright (c) 2000-2011 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.twitter.service;
- import com.liferay.portal.kernel.log.Log;
- import com.liferay.portal.kernel.log.LogFactoryUtil;
- import com.liferay.portal.kernel.util.PropsUtil;
- import com.liferay.portal.kernel.util.Validator;
- import com.liferay.portal.model.BaseModel;
- import com.liferay.twitter.model.FeedClp;
- import java.lang.reflect.Method;
- import java.util.ArrayList;
- import java.util.Date;
- import java.util.List;
- /**
- * @author Brian Wing Shun Chan
- */
- public class ClpSerializer {
- public static String getServletContextName() {
- if (Validator.isNotNull(_servletContextName)) {
- return _servletContextName;
- }
- synchronized (ClpSerializer.class) {
- if (Validator.isNotNull(_servletContextName)) {
- return _servletContextName;
- }
- try {
- ClassLoader classLoader = ClpSerializer.class.getClassLoader();
- Class<?> portletPropsClass = classLoader.loadClass(
- "com.liferay.util.portlet.PortletProps");
- Method getMethod = portletPropsClass.getMethod("get",
- new Class<?>[] { String.class });
- String portletPropsServletContextName = (String)getMethod.invoke(null,
- "twitter-portlet-deployment-context");
- if (Validator.isNotNull(portletPropsServletContextName)) {
- _servletContextName = portletPropsServletContextName;
- }
- }
- catch (Throwable t) {
- if (_log.isInfoEnabled()) {
- _log.info(
- "Unable to locate deployment context from portlet properties");
- }
- }
- if (Validator.isNull(_servletContextName)) {
- try {
- String propsUtilServletContextName = PropsUtil.get(
- "twitter-portlet-deployment-context");
- if (Validator.isNotNull(propsUtilServletContextName)) {
- _servletContextName = propsUtilServletContextName;
- }
- }
- catch (Throwable t) {
- if (_log.isInfoEnabled()) {
- _log.info(
- "Unable to locate deployment context from portal properties");
- }
- }
- }
- if (Validator.isNull(_servletContextName)) {
- _servletContextName = "twitter-portlet";
- }
- return _servletContextName;
- }
- }
- public static void setClassLoader(ClassLoader classLoader) {
- _classLoader = classLoader;
- }
- public static Object translateInput(BaseModel<?> oldModel) {
- Class<?> oldModelClass = oldModel.getClass();
- String oldModelClassName = oldModelClass.getName();
- if (oldModelClassName.equals(FeedClp.class.getName())) {
- return translateInputFeed(oldModel);
- }
- return oldModel;
- }
- public static Object translateInput(List<Object> oldList) {
- List<Object> newList = new ArrayList<Object>(oldList.size());
- for (int i = 0; i < oldList.size(); i++) {
- Object curObj = oldList.get(i);
- newList.add(translateInput(curObj));
- }
- return newList;
- }
- public static Object translateInputFeed(BaseModel<?> oldModel) {
- FeedClp oldCplModel = (FeedClp)oldModel;
- Thread currentThread = Thread.currentThread();
- ClassLoader contextClassLoader = currentThread.getContextClassLoader();
- try {
- currentThread.setContextClassLoader(_classLoader);
- try {
- Class<?> newModelClass = Class.forName("com.liferay.twitter.model.impl.FeedImpl",
- true, _classLoader);
- Object newModel = newModelClass.newInstance();
- Method method0 = newModelClass.getMethod("setFeedId",
- new Class[] { Long.TYPE });
- Long value0 = new Long(oldCplModel.getFeedId());
- method0.invoke(newModel, value0);
- Method method1 = newModelClass.getMethod("setCompanyId",
- new Class[] { Long.TYPE });
- Long value1 = new Long(oldCplModel.getCompanyId());
- method1.invoke(newModel, value1);
- Method method2 = newModelClass.getMethod("setUserId",
- new Class[] { Long.TYPE });
- Long value2 = new Long(oldCplModel.getUserId());
- method2.invoke(newModel, value2);
- Method method3 = newModelClass.getMethod("setUserName",
- new Class[] { String.class });
- String value3 = oldCplModel.getUserName();
- method3.invoke(newModel, value3);
- Method method4 = newModelClass.getMethod("setCreateDate",
- new Class[] { Date.class });
- Date value4 = oldCplModel.getCreateDate();
- method4.invoke(newModel, value4);
- Method method5 = newModelClass.getMethod("setModifiedDate",
- new Class[] { Date.class });
- Date value5 = oldCplModel.getModifiedDate();
- method5.invoke(newModel, value5);
- Method method6 = newModelClass.getMethod("setTwitterUserId",
- new Class[] { Long.TYPE });
- Long value6 = new Long(oldCplModel.getTwitterUserId());
- method6.invoke(newModel, value6);
- Method method7 = newModelClass.getMethod("setTwitterScreenName",
- new Class[] { String.class });
- String value7 = oldCplModel.getTwitterScreenName();
- method7.invoke(newModel, value7);
- Method method8 = newModelClass.getMethod("setLastStatusId",
- new Class[] { Long.TYPE });
- Long value8 = new Long(oldCplModel.getLastStatusId());
- method8.invoke(newModel, value8);
- return newModel;
- }
- catch (Exception e) {
- _log.error(e, e);
- }
- }
- finally {
- currentThread.setContextClassLoader(contextClassLoader);
- }
- return oldModel;
- }
- public static Object translateInput(Object obj) {
- if (obj instanceof BaseModel<?>) {
- return translateInput((BaseModel<?>)obj);
- }
- else if (obj instanceof List<?>) {
- return translateInput((List<Object>)obj);
- }
- else {
- return obj;
- }
- }
- public static Object translateOutput(BaseModel<?> oldModel) {
- Class<?> oldModelClass = oldModel.getClass();
- String oldModelClassName = oldModelClass.getName();
- if (oldModelClassName.equals("com.liferay.twitter.model.impl.FeedImpl")) {
- return translateOutputFeed(oldModel);
- }
- return oldModel;
- }
- public static Object translateOutput(List<Object> oldList) {
- List<Object> newList = new ArrayList<Object>(oldList.size());
- for (int i = 0; i < oldList.size(); i++) {
- Object curObj = oldList.get(i);
- newList.add(translateOutput(curObj));
- }
- return newList;
- }
- public static Object translateOutput(Object obj) {
- if (obj instanceof BaseModel<?>) {
- return translateOutput((BaseModel<?>)obj);
- }
- else if (obj instanceof List<?>) {
- return translateOutput((List<Object>)obj);
- }
- else {
- return obj;
- }
- }
- public static Object translateOutputFeed(BaseModel<?> oldModel) {
- Thread currentThread = Thread.currentThread();
- ClassLoader contextClassLoader = currentThread.getContextClassLoader();
- try {
- currentThread.setContextClassLoader(_classLoader);
- try {
- FeedClp newModel = new FeedClp();
- Class<?> oldModelClass = oldModel.getClass();
- Method method0 = oldModelClass.getMethod("getFeedId");
- Long value0 = (Long)method0.invoke(oldModel, (Object[])null);
- newModel.setFeedId(value0);
- Method method1 = oldModelClass.getMethod("getCompanyId");
- Long value1 = (Long)method1.invoke(oldModel, (Object[])null);
- newModel.setCompanyId(value1);
- Method method2 = oldModelClass.getMethod("getUserId");
- Long value2 = (Long)method2.invoke(oldModel, (Object[])null);
- newModel.setUserId(value2);
- Method method3 = oldModelClass.getMethod("getUserName");
- String value3 = (String)method3.invoke(oldModel, (Object[])null);
- newModel.setUserName(value3);
- Method method4 = oldModelClass.getMethod("getCreateDate");
- Date value4 = (Date)method4.invoke(oldModel, (Object[])null);
- newModel.setCreateDate(value4);
- Method method5 = oldModelClass.getMethod("getModifiedDate");
- Date value5 = (Date)method5.invoke(oldModel, (Object[])null);
- newModel.setModifiedDate(value5);
- Method method6 = oldModelClass.getMethod("getTwitterUserId");
- Long value6 = (Long)method6.invoke(oldModel, (Object[])null);
- newModel.setTwitterUserId(value6);
- Method method7 = oldModelClass.getMethod("getTwitterScreenName");
- String value7 = (String)method7.invoke(oldModel, (Object[])null);
- newModel.setTwitterScreenName(value7);
- Method method8 = oldModelClass.getMethod("getLastStatusId");
- Long value8 = (Long)method8.invoke(oldModel, (Object[])null);
- newModel.setLastStatusId(value8);
- return newModel;
- }
- catch (Exception e) {
- _log.error(e, e);
- }
- }
- finally {
- currentThread.setContextClassLoader(contextClassLoader);
- }
- return oldModel;
- }
- private static Log _log = LogFactoryUtil.getLog(ClpSerializer.class);
- private static ClassLoader _classLoader;
- private static String _servletContextName;
- }