1 /**2 * EasyBeans3 * Copyright (C) 2006 Bull S.A.S.4 * Contact: easybeans@objectweb.org5 *6 * This library is free software; you can redistribute it and/or7 * modify it under the terms of the GNU Lesser General Public8 * License as published by the Free Software Foundation; either9 * version 2.1 of the License, or any later version.10 *11 * This library is distributed in the hope that it will be useful,12 * but WITHOUT ANY WARRANTY; without even the implied warranty of13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU14 * Lesser General Public License for more details.15 *16 * You should have received a copy of the GNU Lesser General Public17 * License along with this library; if not, write to the Free Software18 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-130719 * USA20 *21 * --------------------------------------------------------------------------22 * $Id: ResolverHelper.java 1121 2006-09-27 08:51:06Z benoitf $23 * --------------------------------------------------------------------------24 */25 26 package org.objectweb.easybeans.deployment.annotations.helper;27 28 import org.objectweb.easybeans.deployment.annotations.exceptions.ResolverException;29 import org.objectweb.easybeans.deployment.annotations.helper.bean.BusinessMethodResolver;30 import org.objectweb.easybeans.deployment.annotations.helper.bean.InheritanceInterfacesHelper;31 import org.objectweb.easybeans.deployment.annotations.helper.bean.InheritanceMethodResolver;32 import org.objectweb.easybeans.deployment.annotations.helper.bean.InterceptorsClassResolver;33 import org.objectweb.easybeans.deployment.annotations.helper.bean.InterfaceAnnotatedHelper;34 import org.objectweb.easybeans.deployment.annotations.helper.bean.SecurityResolver;35 import org.objectweb.easybeans.deployment.annotations.helper.bean.SessionBeanHelper;36 import org.objectweb.easybeans.deployment.annotations.helper.bean.TransactionResolver;37 import org.objectweb.easybeans.deployment.annotations.helper.bean.mdb.MDBListenerBusinessMethodResolver;38 import org.objectweb.easybeans.deployment.annotations.metadata.ClassAnnotationMetadata;39 import org.objectweb.easybeans.deployment.annotations.metadata.EjbJarAnnotationMetadata;40 41 /**42 * This class handle some steps that need to be done after the meta-data43 * generation.44 * @author Florent Benoit45 */46 public final class ResolverHelper {47 48 /**49 * Helper class, no public constructor.50 */51 private ResolverHelper() {52 53 }54 55 /**56 * The helper will analyze datas of a given EjbJarAnnotationMetadata object.57 * @param ejbJarAnnotationMetadata object to analyze58 * @throws ResolverException if one of resolver fails59 */60 public static void resolve(final EjbJarAnnotationMetadata ejbJarAnnotationMetadata) throws ResolverException {61 62 // Found each bean class63 for (ClassAnnotationMetadata classMetaData : ejbJarAnnotationMetadata.getClassAnnotationMetadataCollection()) {64 65 if (classMetaData.isBean()) {66 // Inheritance on interfaces67 InheritanceInterfacesHelper.resolve(classMetaData);68 InterfaceAnnotatedHelper.resolve(classMetaData);69 InheritanceMethodResolver.resolve(classMetaData);70 // Find business method71 if (classMetaData.isSession()) {72 BusinessMethodResolver.resolve(classMetaData);73 } else if (classMetaData.isMdb()) {74 MDBListenerBusinessMethodResolver.resolve(classMetaData);75 }76 77 // Security78 SecurityResolver.resolve(classMetaData);79 80 // Transaction81 TransactionResolver.resolve(classMetaData);82 83 // Interceptors84 InterceptorsClassResolver.resolve(classMetaData);85 86 }87 88 // for each bean, call sub helper89 if (classMetaData.isSession()) {90 SessionBeanHelper.resolve(classMetaData);91 }92 }93 }94 }95