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.xml.ws.WebServiceRefs;33 import javax.xml.ws.WebServiceRef;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 WebServiceRefs annotation43 *44 */45 public class WebServiceRefsHandler extends WebServiceRefHandler {46 47 public WebServiceRefsHandler() {48 }49 50 /**51 * @return the annoation type this annotation handler is handling52 */53 public Class <? extends Annotation > getAnnotationType() {54 return WebServiceRefs.class;55 } 56 57 58 public HandlerProcessingResult processAnnotation(AnnotationInfo ainfo)59 throws AnnotationProcessorException {60 61 WebServiceRefs wsRefsAnnotation = (WebServiceRefs) ainfo.getAnnotation();62 63 WebServiceRef[] wsRefAnnotations = wsRefsAnnotation.value();64 List <HandlerProcessingResult> results = new ArrayList <HandlerProcessingResult>();65 66 for(WebServiceRef wsRef : wsRefAnnotations) {67 results.add(processAWsRef(ainfo, wsRef));68 }69 HandlerProcessingResult finalResult = null;70 for (HandlerProcessingResult result : results) {71 if (finalResult == null ||72 (result.getOverallResult().compareTo(73 finalResult.getOverallResult()) > 0)) {74 finalResult = result;75 }76 }77 return finalResult;78 }79 }80