Package org.oasisOpen.docs.wsrf.x2005.x01.wsrfInterop20Draft03Wsdl

Source Code of org.oasisOpen.docs.wsrf.x2005.x01.wsrfInterop20Draft03Wsdl.JobPortHome

/*=============================================================================*
*  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.oasisOpen.docs.wsrf.x2005.x01.wsrfInterop20Draft03Wsdl;

import org.apache.ws.resource.JndiConstants;
import org.apache.ws.resource.Resource;
import org.apache.ws.resource.ResourceContext;
import org.apache.ws.resource.ResourceContextException;
import org.apache.ws.resource.ResourceException;
import org.apache.ws.resource.ResourceKey;
import org.apache.ws.resource.ResourceUnknownException;
import org.apache.ws.resource.impl.AbstractResourceHome;
import org.apache.ws.resource.impl.SimpleTypeResourceKey;
import org.apache.ws.resource.properties.faults.ResourceUnknownFaultException;
import org.apache.ws.resource.properties.v2004_11.impl.NamespaceVersionHolderImpl;
import org.apache.ws.util.XmlBeanUtils;
import org.apache.xmlbeans.XmlObject;
import org.oasisOpen.docs.wsrf.x2005.x01.wsrfInterop20Draft03.MimeMediaTypeType;
import org.xmlsoap.schemas.ws.x2004.x08.addressing.AttributedURI;
import org.xmlsoap.schemas.ws.x2004.x08.addressing.EndpointReferenceDocument;
import org.xmlsoap.schemas.ws.x2004.x08.addressing.EndpointReferenceType;
import org.xmlsoap.schemas.ws.x2004.x08.addressing.ReferencePropertiesType;

import javax.xml.namespace.QName;
import java.io.Serializable;

/**
* Home for JobPort WS-Resources.
*/
public class JobPortHome
   extends AbstractResourceHome
   implements Serializable
{
   private static final String SERVICE_NAME  = "JobPort";

   /** DOCUMENT_ME */
   public static final String HOME_LOCATION =
      JndiConstants.CONTEXT_NAME_SERVICES + "/" + SERVICE_NAME + "/" + JndiConstants.ATOMIC_NAME_HOME;
   private long               m_jobId = 0;



    /**
    * DOCUMENT_ME
    *
    * @param key DOCUMENT_ME
    * @param serviceUrl DOCUMENT_ME
    *
    * @return DOCUMENT_ME
    */
   public EndpointReferenceType getEprForResource( ResourceKey key,
                                                   String      serviceUrl )
   {
      EndpointReferenceDocument eprDoc  = EndpointReferenceDocument.Factory.newInstance(  );
      EndpointReferenceType     epr     = eprDoc.addNewEndpointReference(  );
      AttributedURI             address = epr.addNewAddress(  );
      address.setStringValue( serviceUrl + "/" +SERVICE_NAME );
      ReferencePropertiesType refProps = epr.addNewReferenceProperties(  );

      XmlObject               xmlObject = XmlBeanUtils.addChildElement( refProps,
                                                                        key.getName(  ) );
      XmlBeanUtils.setValue( xmlObject,
                             key.getValue(  ).toString(  ) );

      return epr;
   }

   /**
    * @param resourceContext DOCUMENT_ME
    * @return DOCUMENT_ME
    * @throws ResourceException        DOCUMENT_ME
    * @throws ResourceContextException DOCUMENT_ME
    * @throws ResourceUnknownException DOCUMENT_ME
    */
   public Resource getInstance( ResourceContext resourceContext )
   throws ResourceException,
          ResourceContextException,
          ResourceUnknownException
   {
      ResourceKey key      = resourceContext.getResourceKey(  );
      Resource    resource = null;
      try
      {
         resource = find( key );
      }
      catch ( ResourceException re )
      {
         throw new ResourceUnknownFaultException( new NamespaceVersionHolderImpl(  ),
                                                  new ResourceUnknownException( null, "An error occurred" ) );
      }

      return resource;
   }

   /**
    * DOCUMENT_ME
    *
    * @param resourceContext DOCUMENT_ME
    * @param jobName DOCUMENT_ME
    * @param origUserName DOCUMENT_ME
    * @param documentFormat DOCUMENT_ME
    * @param base64Data DOCUMENT_ME
    * @param printerResource DOCUMENT_ME
    *
    * @return DOCUMENT_ME
    */
   public JobPortResource createJob( ResourceContext        resourceContext,
                                     String                 jobName,
                                     String                 origUserName,
                                     MimeMediaTypeType.Enum documentFormat,
                                     byte[]                 base64Data,
                                     PrinterPortResource  printerResource )
   {
      ++m_jobId;
       int jobId = (int)m_jobId;
       SimpleTypeResourceKey key = createResourceKey(jobId);
       EndpointReferenceType jobEpr = getEprForResource( key,
                                                        resourceContext.getBaseURL(  ) );
      JobPortResource       job    = new JobPortResource( jobEpr, jobId, jobName, origUserName, printerResource );
      job.init(  );
      add( key, job );     
      return job;
   }

    private SimpleTypeResourceKey createResourceKey(int jobId)
    {
        SimpleTypeResourceKey key    =
           new SimpleTypeResourceKey( QName.valueOf( "{http://docs.oasis-open.org/wsrf/2005/01/wsrf-Interop-2.0-draft-03.wsdl}ResourceID" ),
                                      "Job" + Integer.toString( jobId ) );
        return key;
    }

    /**
    * DOCUMENT_ME
    *
    * @param resourceContext DOCUMENT_ME
    * @param jobName DOCUMENT_ME
    * @param printerResource DOCUMENT_ME
    *
    * @return DOCUMENT_ME
    */
   public JobPortResource createJob( ResourceContext       resourceContext,
                                     String                jobName,
                                     PrinterPortResource printerResource )
   {
      ++m_jobId;
       int jobId = (int)m_jobId;
       SimpleTypeResourceKey key = createResourceKey(jobId);
       EndpointReferenceType jobEpr = getEprForResource( key,
                                                        resourceContext.getBaseURL(  ) );
      JobPortResource       job    = new JobPortResource( jobEpr, jobId, jobName, printerResource );
      job.init(  );
      add( key, job );
      return job;
   }

    public QName getServiceName()
    {
        return new QName(JobPortPropertyQNames.JOB_PRINTER_REFERENCE.getNamespaceURI(),SERVICE_NAME);
    }

    public QName getPortType()
    {
        return new QName(JobPortPropertyQNames.JOB_PRINTER_REFERENCE.getNamespaceURI(),"Job");
    }

    public String getServicePortName()
    {
        return SERVICE_NAME;
    }

    public QName getResourceKeyNameQName()
    {
        return QName.valueOf("{http://docs.oasis-open.org/wsrf/2005/01/wsrf-Interop-2.0-draft-03.wsdl}ResourceID");
    }
}
TOP

Related Classes of org.oasisOpen.docs.wsrf.x2005.x01.wsrfInterop20Draft03Wsdl.JobPortHome

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.