Java tutorial
/** * 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.docs.guestbook.search; import java.util.Locale; import org.osgi.service.component.annotations.Component; import org.osgi.service.component.annotations.Reference; import com.liferay.docs.guestbook.model.Guestbook; import com.liferay.docs.guestbook.model.GuestbookEntry; import com.liferay.docs.guestbook.service.GuestbookLocalService; import com.liferay.portal.kernel.exception.PortalException; import com.liferay.portal.kernel.log.Log; import com.liferay.portal.kernel.log.LogFactoryUtil; import com.liferay.portal.kernel.search.Document; import com.liferay.portal.kernel.search.Field; import com.liferay.portal.kernel.util.LocalizationUtil; import com.liferay.portal.kernel.util.PortalUtil; import com.liferay.portal.search.spi.model.index.contributor.ModelDocumentContributor; @Component(immediate = true, property = "indexer.class.name=com.liferay.docs.guestbook.model.GuestbookEntry", service = ModelDocumentContributor.class) public class GuestbookEntryModelDocumentContributor implements ModelDocumentContributor<GuestbookEntry> { @Override public void contribute(Document document, GuestbookEntry entry) { try { Locale defaultLocale = PortalUtil.getSiteDefaultLocale(entry.getGroupId()); document.addDate(Field.MODIFIED_DATE, entry.getModifiedDate()); document.addText("entryEmail", entry.getEmail()); String localizedTitle = LocalizationUtil.getLocalizedName(Field.TITLE, defaultLocale.toString()); String localizedContent = LocalizationUtil.getLocalizedName(Field.CONTENT, defaultLocale.toString()); document.addText(localizedTitle, entry.getName()); document.addText(localizedContent, entry.getMessage()); long guestbookId = entry.getGuestbookId(); Guestbook guestbook = _guestbookLocalService.getGuestbook(guestbookId); String guestbookName = guestbook.getName(); String localizedGbName = LocalizationUtil.getLocalizedName(Field.NAME, defaultLocale.toString()); document.addText(localizedGbName, guestbookName); } catch (PortalException pe) { if (_log.isWarnEnabled()) { _log.warn("Unable to index entry " + entry.getEntryId(), pe); } } catch (Exception e) { e.printStackTrace(); } } private static final Log _log = LogFactoryUtil.getLog(GuestbookEntryModelDocumentContributor.class); @Reference private GuestbookLocalService _guestbookLocalService; }