package ${package}.content.targeting.report; import com.liferay.content.targeting.api.model.BaseJSPReport; import com.liferay.content.targeting.api.model.Report; import com.liferay.content.targeting.model.ReportInstance; import com.liferay.content.targeting.model.UserSegment; import com.liferay.content.targeting.service.ReportInstanceLocalService; import com.liferay.portal.kernel.json.JSONException; import com.liferay.portal.kernel.json.JSONFactoryUtil; import com.liferay.portal.kernel.json.JSONObject; import com.liferay.portal.kernel.log.Log; import com.liferay.portal.kernel.log.LogFactoryUtil; import com.liferay.portal.kernel.util.GetterUtil; import com.liferay.portal.kernel.util.ParamUtil; import java.util.Date; import java.util.Map; import javax.portlet.PortletRequest; import javax.portlet.PortletResponse; import javax.servlet.ServletContext; import org.osgi.service.component.annotations.Activate; import org.osgi.service.component.annotations.Component; import org.osgi.service.component.annotations.Deactivate; import org.osgi.service.component.annotations.Reference; /** * @author ${author} */ @Component(immediate = true, service = Report.class) public class ${className}Report extends BaseJSPReport { @Activate @Override public void activate() { super.activate(); } @Deactivate @Override public void deActivate() { super.deActivate(); } @Override public String getReportType() { return UserSegment.class.getName(); } @Override public boolean isInstantiable() { return true; } public String processEditReport( PortletRequest portletRequest, PortletResponse portletResponse, ReportInstance reportInstance) throws Exception { JSONObject jsonObject = JSONFactoryUtil.createJSONObject(); String setting1 = ParamUtil.getString(portletRequest, "setting1"); jsonObject.put("setting1", setting1); String setting2 = ParamUtil.getString(portletRequest, "setting2"); jsonObject.put("setting2", setting2); return jsonObject.toString(); } @Override @Reference( target = "(osgi.web.symbolicname=${artifactId})", unbind = "-" ) public void setServletContext(ServletContext servletContext) { super.setServletContext(servletContext); } @Override public void updateReport(ReportInstance reportInstance) { try { if (reportInstance != null) { reportInstance.setModifiedDate(new Date()); _reportInstanceLocalService.updateReportInstance( reportInstance); } } catch (Exception e) { _log.error("Unable to update report", e); } } @Override protected void populateContext( ReportInstance reportInstance, Map<String, Object> context) { String setting1 = null; String setting2 = null; if (reportInstance != null) { try { JSONObject jsonObject = JSONFactoryUtil.createJSONObject( reportInstance.getTypeSettings()); setting1 = jsonObject.getString("setting1"); setting2 = jsonObject.getString("setting2"); } catch (JSONException jsone) { } } context.put("setting1", setting1); context.put("setting2", setting2); } @Override protected void populateEditContext( ReportInstance reportInstance, Map<String, Object> context) { populateContext(reportInstance, context); } private static final Log _log = LogFactoryUtil.getLog( ${className}Report.class); @Reference(unbind = "-") private volatile ReportInstanceLocalService _reportInstanceLocalService; }