Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
   * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
   *
   * Copyright (c) 2010-2011 Oracle and/or its affiliates. All rights reserved.
   *
   * The contents of this file are subject to the terms of either the GNU
   * General Public License Version 2 only ("GPL") or the Common Development
   * and Distribution License("CDDL") (collectively, the "License").  You
   * may not use this file except in compliance with the License.  You can
  * obtain a copy of the License at
  * http://glassfish.java.net/public/CDDL+GPL_1_1.html
  * or packager/legal/LICENSE.txt.  See the License for the specific
  * language governing permissions and limitations under the License.
  *
  * When distributing the software, include this License Header Notice in each
  * file and include the License file at packager/legal/LICENSE.txt.
  *
  * GPL Classpath Exception:
  * Oracle designates this particular file as subject to the "Classpath"
  * exception as provided by Oracle in the GPL Version 2 section of the License
  * file that accompanied this code.
  *
  * Modifications:
  * If applicable, add the following below the License Header, with the fields
  * enclosed by brackets [] replaced by your own identifying information:
  * "Portions Copyright [year] [name of copyright owner]"
  *
  * Contributor(s):
  * If you wish your version of this file to be governed by only the CDDL or
  * only the GPL Version 2, indicate your decision by adding "[Contributor]
  * elects to include this software in this distribution under the [CDDL or GPL
  * Version 2] license."  If you don't indicate a single choice of license, a
  * recipient has the option to distribute your version of this file under
  * either the CDDL, the GPL Version 2 or to extend the choice of license to
  * its licensees as provided above.  However, if you add GPL Version 2 code
  * and therefore, elected the GPL Version 2 license, then the option applies
  * only if the new code is made subject to such option by the copyright
  * holder.
  */
 package com.sun.jersey.server.wadl.generators.resourcedoc;
 
 
 import java.io.File;
 import java.util.List;
A com.sun.jersey.server.wadl.WadlGenerator implementation that enhances the generated wadl by information read from a resourcedoc (containing javadoc information about resource classes).

The resourcedoc information can either be provided via a java.io.File (setResourceDocFile(java.io.File)) reference or via an java.io.InputStream (setResourceDocStream(java.io.InputStream)).

The java.io.File should be used when using the maven-wadl-plugin for generating wadl offline, the java.io.InputStream should be used when the extended wadl is generated by jersey at runtime, e.g. using the com.sun.jersey.api.wadl.config.WadlGeneratorConfig for configuration.

Author(s):
Martin Grotzke
Version:
$Id: WadlGeneratorResourceDocSupport.java 5806 2012-11-14 13:48:06Z gdavison $
 
 public class WadlGeneratorResourceDocSupport implements WadlGenerator {
 
     private WadlGenerator _delegate;
     private File _resourceDocFile;
     private InputStream _resourceDocStream;
     private ResourceDocAccessor _resourceDoc;
    
    }
    public WadlGeneratorResourceDocSupportWadlGenerator wadlGeneratorResourceDocType resourceDoc ) {
         = wadlGenerator;
         = new ResourceDocAccessorresourceDoc );
    }
    public void setWadlGeneratorDelegateWadlGenerator delegate ) {
         = delegate;
    }
    
    
Set the resourceDocFile to the given file. Invoking this method is only allowed, as long as the resourceDocStream is not set, otherwise an java.lang.IllegalStateException will be thrown.

Parameters:
resourceDocFile the resourcedoc file to set.
    public void setResourceDocFileFile resourceDocFile ) {
        if (  != null ) {
            throw new IllegalStateException"The resourceDocStream property is already set," +
            		" therefore you cannot set the resourceDocFile property. Only one of both can be set at a time." );
        }
         = resourceDocFile;
    }
    
    
Set the resourceDocStream to the given file. Invoking this method is only allowed, as long as the resourceDocFile is not set, otherwise an java.lang.IllegalStateException will be thrown.

The resourcedoc stream must be closed by the client providing the stream.

Parameters:
resourceDocStream the resourcedoc stream to set.
    public void setResourceDocStreamInputStream resourceDocStream ) {
        if (  != null ) {
            throw new IllegalStateException"The resourceDocFile property is already set," +
                    " therefore you cannot set the resourceDocStream property. Only one of both can be set at a time." );
        }
         = resourceDocStream;
    }
    
    public void init() throws Exception {
        if (  == null &&  == null ) {
            throw new IllegalStateException"Neither the resourceDocFile nor the resourceDocStream" +
                    " is set, one of both is required." );
        }
        .init();
        final JAXBContext c = JAXBContext.newInstanceResourceDocType.class );
        final Unmarshaller m = c.createUnmarshaller();
        final Object resourceDocObj =  != null
            ? m.unmarshal ) : m.unmarshal );
        final ResourceDocType resourceDoc = ResourceDocType.class.castresourceDocObj );
         = new ResourceDocAccessorresourceDoc );
    }
    
        String name = Elements.class.getName();
        name = name.substring(0, name.lastIndexOf('.'));
        
        return .getRequiredJaxbContextPath() == null
            ? name
            : .getRequiredJaxbContextPath() + ":" + name;
    }

    
    public Application createApplication(UriInfo requestInfo) {
        return .createApplication(requestInfo);
    }

    
    public Resource createResourceAbstractResource rString path ) {
        final Resource result = .createResourcerpath );
        final ClassDocType classDoc = .getClassDocr.getResourceClass() );
        if ( classDoc != null && !isEmptyclassDoc.getCommentText() ) ) {
            final Doc doc = new Doc();
            doc.getContent().addclassDoc.getCommentText() );
            result.getDoc().adddoc );
        }
        return result;
    }

    
        final Method result = .createMethodrm );
        final MethodDocType methodDoc = .getMethodDocr.getResourceClass(), m.getMethod() );
        if ( methodDoc != null && !isEmptymethodDoc.getCommentText() ) ) {
            final Doc doc = new Doc();
            doc.getContent().addmethodDoc.getCommentText() );
            // doc.getOtherAttributes().put( new QName( "xmlns" ), "http://www.w3.org/1999/xhtml" );
            result.getDoc().adddoc );
        }
        return result;
    }

    
            AbstractResourceMethod mMediaType mediaType ) {
        final Representation result = .createRequestRepresentationrmmediaType );
        final RepresentationDocType requestRepresentation = .getRequestRepresentationr.getResourceClass(), m.getMethod(), result.getMediaType() );
        if ( requestRepresentation != null ) {
            result.setElementrequestRepresentation.getElement() );
            addDocForExampleresult.getDoc(), requestRepresentation.getExample() );
        }
        return result;
    }

    
        return .createRequestrm );
    }

    
        final ResponseDocType responseDoc = .getResponser.getResourceClass(), m.getMethod() );
        List<Responseresponses = new ArrayList<Response>();
        if ( responseDoc != null && responseDoc.hasRepresentations() ) {
            for ( RepresentationDocType representationDoc : responseDoc.getRepresentations() ) {
                Response response = new Response();
                final Representation wadlRepresentation = new Representation();
                wadlRepresentation.setElementrepresentationDoc.getElement() );
                wadlRepresentation.setMediaTyperepresentationDoc.getMediaType() );
                addDocForExamplewadlRepresentation.getDoc(), representationDoc.getExample() );
                addDocwadlRepresentation.getDoc(), representationDoc.getDoc() );
                response.getStatus().add(representationDoc.getStatus());
                response.getRepresentation().add(wadlRepresentation);
                responses.add(response);
            }
            if (!responseDoc.getWadlParams().isEmpty() ) {
                for ( WadlParamType wadlParamType : responseDoc.getWadlParams() ) {
                    final Param param = new Param();
                    param.setNamewadlParamType.getName() );
                    param.setStyle( ParamStyle.fromValuewadlParamType.getStyle() ) );
                    param.setTypewadlParamType.getType() );
                    addDocparam.getDoc(), wadlParamType.getDoc() );
                    for(Response response : responses) {
                        response.getParam().add(param);
                    }
                }
            }
            if (!isEmptyresponseDoc.getReturnDoc() ) ) {
                for(Response response : responses) {
                    addDocresponse.getDoc(), responseDoc.getReturnDoc() );
                }
            }
        } else {
            responses = .createResponses(rm);
        }
        return responses;
    }
    private void addDocForExamplefinal List<Docdocsfinal String example ) {
        if ( !isEmptyexample ) ) {
            final Doc doc = new Doc();
            
            final Elements pElement = Elements.el"p" )
                .add( Elements.val"h6""Example" ) )
                .add( Elements.el"pre" ).add( Elements.val"code"example ) ) );
            
            doc.getContent().addpElement );
            docs.adddoc );
        }
    }
    
    private void addDocfinal List<Docdocsfinal String text ) {
        if ( !isEmptytext ) ) {
            final Doc doc = new Doc();
            doc.getContent().addtext );
            docs.adddoc );
        }
    }

    
                             AbstractMethod mParameter p) {
        final Param result = .createParam(rmp);
        if (result != null) {
            final ParamDocType paramDoc = .getParamDocr.getResourceClass(), (m == null ? null : m.getMethod()), p );
            if(paramDoc != null && !isEmptyparamDoc.getCommentText())) {
                final Doc doc = new Doc();
                doc.getContent().addparamDoc.getCommentText() );
                result.getDoc().adddoc );
            }
        }
        return result;
    }

    
    public Resources createResources() {
        return .createResources();
    }
    private boolean isEmptyString text ) {
        return text == null || text.length() == 0 || "".equalstext.trim() );
    }
    // ================ methods for post build actions =======================
    
    @Override 
        return .createExternalGrammar();
    }
    @Override 
    public void attachTypes(ApplicationDescription egd) {
        .attachTypes(egd);
    }
New to GrepCode? Check out our FAQ X