1 /*2 * The contents of this file are subject to the terms 3 * of the Common Development and Distribution License 4 * (the License). You may not use this file except in5 * compliance with the License.6 * 7 * You can obtain a copy of the license at 8 * https://glassfish.dev.java.net/public/CDDLv1.0.html or9 * glassfish/bootstrap/legal/CDDLv1.0.txt.10 * See the License for the specific language governing 11 * permissions and limitations under the License.12 * 13 * When distributing Covered Code, include this CDDL 14 * Header Notice in each file and include the License file 15 * at glassfish/bootstrap/legal/CDDLv1.0.txt. 16 * If applicable, add the following below the CDDL Header, 17 * with the fields enclosed by brackets [] replaced by18 * you own identifying information: 19 * "Portions Copyrighted [year] [name of copyright owner]"20 * 21 * Copyright 2006 Sun Microsystems, Inc. All rights reserved.22 */23 package com.sun.enterprise.deployment.annotation.handlers;24 25 import java.lang.annotation.Annotation ;26 import java.lang.annotation.ElementType ;27 import java.lang.reflect.AnnotatedElement ;28 import java.lang.reflect.Method ;29 import java.util.ArrayList ;30 import java.util.List ;31 32 import javax.persistence.PersistenceUnit;33 import javax.persistence.PersistenceUnits;34 35 import com.sun.enterprise.deployment.annotation.HandlerProcessingResult;36 import com.sun.enterprise.deployment.annotation.AnnotationInfo;37 import com.sun.enterprise.deployment.annotation.AnnotationProcessorException;38 import com.sun.enterprise.deployment.annotation.HandlerProcessingResult;39 import com.sun.enterprise.deployment.annotation.context.ResourceContainerContext;40 41 /**42 * This handler is responsible for handling the 43 * javax.persistence.PersistenceUnits annotation.44 *45 */46 public class EntityManagerFactoryReferencesHandler 47 extends EntityManagerFactoryReferenceHandler {48 49 public EntityManagerFactoryReferencesHandler() {50 }51 52 /**53 * @return the annoation type this annotation handler is handling54 */55 public Class <? extends Annotation > getAnnotationType() {56 return PersistenceUnits.class;57 } 58 59 60 protected HandlerProcessingResult processAnnotation(AnnotationInfo ainfo,61 ResourceContainerContext[] rcContexts)62 throws AnnotationProcessorException {63 64 PersistenceUnits annotation = (PersistenceUnits) ainfo.getAnnotation();65 66 PersistenceUnit[] emfRefAnnotations = annotation.value();67 List <HandlerProcessingResult> results = new ArrayList <HandlerProcessingResult>();68 69 for(PersistenceUnit emfRef : emfRefAnnotations) {70 results.add(processEmfRef(ainfo, rcContexts, emfRef));71 }72 73 return getOverallProcessingResult(results);74 }75 76 }77