ohair@286: /*
alanb@368: * Copyright (c) 1997, 2012, Oracle and/or its affiliates. All rights reserved.
ohair@286: * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
ohair@286: *
ohair@286: * This code is free software; you can redistribute it and/or modify it
ohair@286: * under the terms of the GNU General Public License version 2 only, as
ohair@286: * published by the Free Software Foundation. Oracle designates this
ohair@286: * particular file as subject to the "Classpath" exception as provided
ohair@286: * by Oracle in the LICENSE file that accompanied this code.
ohair@286: *
ohair@286: * This code is distributed in the hope that it will be useful, but WITHOUT
ohair@286: * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
ohair@286: * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
ohair@286: * version 2 for more details (a copy is included in the LICENSE file that
ohair@286: * accompanied this code).
ohair@286: *
ohair@286: * You should have received a copy of the GNU General Public License version
ohair@286: * 2 along with this work; if not, write to the Free Software Foundation,
ohair@286: * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
ohair@286: *
ohair@286: * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
ohair@286: * or visit www.oracle.com if you need additional information or have any
ohair@286: * questions.
ohair@286: */
ohair@286:
ohair@286: package com.sun.xml.internal.ws.model;
ohair@286:
ohair@286: import com.sun.xml.internal.bind.api.Bridge;
ohair@286: import com.sun.xml.internal.ws.api.model.CheckedException;
ohair@286: import com.sun.xml.internal.ws.api.model.ExceptionType;
ohair@286: import com.sun.xml.internal.ws.api.model.JavaMethod;
ohair@286: import com.sun.xml.internal.ws.addressing.WsaActionUtil;
ohair@286: import com.sun.xml.internal.ws.spi.db.XMLBridge;
ohair@286: import com.sun.xml.internal.ws.spi.db.TypeInfo;
ohair@286:
ohair@286: /**
ohair@286: * CheckedException class. Holds the exception class - class that has public
ohair@286: * constructor
ohair@286: *
ohair@286: * public WrapperException()String message, FaultBean){}
ohair@286: *
ohair@286: * and method
ohair@286: *
ohair@286: * public FaultBean getFaultInfo();
ohair@286: *
ohair@286: * @author Vivek Pandey
ohair@286: */
ohair@286: public final class CheckedExceptionImpl implements CheckedException {
ohair@286: private final Class exceptionClass;
ohair@286: private final TypeInfo detail;
ohair@286: private final ExceptionType exceptionType;
ohair@286: private final JavaMethodImpl javaMethod;
ohair@286: private String messageName;
ohair@286: private String faultAction = "";
ohair@286:
ohair@286: /**
ohair@286: * @param jm {@link JavaMethodImpl} that throws this exception
ohair@286: * @param exceptionClass
ohair@286: * Userdefined or WSDL exception class that extends
ohair@286: * java.lang.Exception.
ohair@286: * @param detail
ohair@286: * detail or exception bean's TypeReference
ohair@286: * @param exceptionType
ohair@286: * either ExceptionType.UserDefined or
ohair@286: */
ohair@286: public CheckedExceptionImpl(JavaMethodImpl jm, Class exceptionClass, TypeInfo detail, ExceptionType exceptionType) {
ohair@286: this.detail = detail;
ohair@286: this.exceptionType = exceptionType;
ohair@286: this.exceptionClass = exceptionClass;
ohair@286: this.javaMethod = jm;
ohair@286: }
ohair@286:
ohair@286: public AbstractSEIModelImpl getOwner() {
ohair@286: return javaMethod.owner;
ohair@286: }
ohair@286:
ohair@286: public JavaMethod getParent() {
ohair@286: return javaMethod;
ohair@286: }
ohair@286:
ohair@286: /**
ohair@286: * @return the Class for this object
ohair@286: *
ohair@286: */
ohair@286: public Class getExceptionClass() {
ohair@286: return exceptionClass;
ohair@286: }
ohair@286:
ohair@286: public Class getDetailBean() {
ohair@286: return (Class) detail.type;
ohair@286: }
ohair@286: /** @deprecated */
ohair@286: public Bridge getBridge() {
ohair@286: //TODO return getOwner().getBridge(detail);
ohair@286: return null;
ohair@286: }
ohair@286:
ohair@286: public XMLBridge getBond() {
ohair@286: return getOwner().getXMLBridge(detail);
ohair@286: }
ohair@286:
ohair@286: public TypeInfo getDetailType() {
ohair@286: return detail;
ohair@286: }
ohair@286:
ohair@286: public ExceptionType getExceptionType() {
ohair@286: return exceptionType;
ohair@286: }
ohair@286:
ohair@286: public String getMessageName() {
ohair@286: return messageName;
ohair@286: }
ohair@286:
ohair@286: public void setMessageName(String messageName) {
ohair@286: this.messageName = messageName;
ohair@286: }
ohair@286:
ohair@286: public String getFaultAction() {
ohair@286: return faultAction;
ohair@286: }
ohair@286:
ohair@286: public void setFaultAction(String faultAction) {
ohair@286: this.faultAction = faultAction;
ohair@286: }
ohair@286:
ohair@286: public String getDefaultFaultAction() {
ohair@286: return WsaActionUtil.getDefaultFaultAction(javaMethod,this);
ohair@286: }
ohair@286:
ohair@286:
ohair@286: }