/* * Copyright (c) JForum Team. All rights reserved. * * The software in this package is published under the terms of the LGPL * license a copy of which has been included with this distribution in the * license.txt file. * * The JForum Project * http://www.jforum.net */ package net.jforum.events.listeners; import net.jforum.entities.Post; import net.jforum.events.Event; import org.aspectj.lang.annotation.AfterReturning; import org.aspectj.lang.annotation.Aspect; import org.aspectj.lang.annotation.Before; import org.aspectj.lang.annotation.Pointcut; /** * @author Rafael Steil */ @Aspect public class PostEventListener extends AbstractListener<Event<Post>, Post> { @Pointcut("target(net.jforum.repository.PostRepository)") @SuppressWarnings("all") private void targetRepository() {} @Before("repositoryAdd() && targetRepository() && args(post)") public void beforeAdd(Post post) { this.fireBeforeAdd(post); } @Before("repositoryUpdate() && targetRepository() && args(post)") public void beforeUpdated(Post post) { this.fireBeforeUpdated(post); } @AfterReturning("repositoryAdd() && targetRepository() && args(post)") public void added(Post post) { this.fireAdd(post); } @AfterReturning("repositoryRemove() && targetRepository() && args(post)") public void removed(Post post) { this.fireRemove(post); } @AfterReturning("repositoryUpdate() && targetRepository() && args(post)") public void updated(Post post) { this.fireUpdated(post); } }