/*=============================================================================*
* Copyright 2004 The Apache Software Foundation
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*=============================================================================*/
package org.apache.ws.resource.lifetime.v2004_11.porttype.impl;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.ws.resource.AbstractPortType;
import org.apache.ws.resource.ResourceContext;
import org.apache.ws.resource.ResourceException;
import org.apache.ws.resource.i18n.Keys;
import org.apache.ws.resource.i18n.MessagesImpl;
import org.apache.ws.resource.lifetime.faults.ResourceNotDestroyedFaultException;
import org.apache.ws.resource.lifetime.v2004_11.porttype.ImmediateResourceTerminationPortType;
import org.apache.ws.resource.properties.NamespaceVersionHolder;
import org.apache.ws.resource.properties.v2004_11.impl.NamespaceVersionHolderImpl;
import org.apache.ws.resource.properties.v2004_11.impl.NamespaceVersionHolderImpl;
import org.apache.ws.util.i18n.Messages;
import org.oasisOpen.docs.wsrf.x2004.x11.wsrfWSResourceLifetime12Draft04.DestroyDocument;
import org.oasisOpen.docs.wsrf.x2004.x11.wsrfWSResourceLifetime12Draft04.DestroyResponseDocument;
/**
* LOG-DONE
* An implementation of the wsrlw:ImmediateResourceTermination portType.
*
* @author Ian P. Springer (Hewlett-Packard Company)
*/
public class ImmediateResourceTerminationPortTypeImpl
extends AbstractPortType
implements ImmediateResourceTerminationPortType
{
/**
* DOCUMENT_ME
*/
private static final Log LOG = LogFactory.getLog( ImmediateResourceTerminationPortTypeImpl.class.getName( ) );
public static final Messages MSG = MessagesImpl.getInstance();
private static final NamespaceVersionHolder NAMESPACE_SET = new NamespaceVersionHolderImpl() ;
/**
* Creates a new {@link ImmediateResourceTerminationPortTypeImpl} object.
*
* @param resourceContext DOCUMENT_ME
*/
public ImmediateResourceTerminationPortTypeImpl( ResourceContext resourceContext )
{
super( resourceContext );
}
protected NamespaceVersionHolder getNamespaceSet()
{
return NAMESPACE_SET;
}
/**
* DOCUMENT_ME
*
* @param requestDoc DOCUMENT_ME
*
* @return DOCUMENT_ME
*/
public DestroyResponseDocument destroy( DestroyDocument requestDoc )
{
LOG.debug( MSG.getMessage( Keys.DESTROYING_RESOURCE ,getResourceContext( ).getServiceName( ) ,
String.valueOf(getResourceKey( ))) );
try
{
getResourceHome( ).remove( getResourceKey( ) );
}
catch ( ResourceException re )
{
throw new ResourceNotDestroyedFaultException(NAMESPACE_SET, String.valueOf( getResourceKey( ).getValue( ) ),
getResourceContext( ).getServiceName( ) );
}
return createResponseDocument( );
}
private DestroyResponseDocument createResponseDocument( )
{
DestroyResponseDocument responseDoc = DestroyResponseDocument.Factory.newInstance( );
responseDoc.addNewDestroyResponse( );
return responseDoc;
}
}