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.samples.generatewadl.util;
 
 import  com.sun.jersey.api.model.AbstractMethod;
 import  com.sun.jersey.api.model.AbstractResource;
 import  com.sun.jersey.api.model.AbstractResourceMethod;
 import  com.sun.jersey.api.model.Parameter;
 import  com.sun.jersey.server.wadl.ApplicationDescription;
 import  com.sun.jersey.server.wadl.WadlGenerator;
 import  com.sun.jersey.server.wadl.generators.resourcedoc.ResourceDocAccessor;
 import  com.sun.jersey.server.wadl.generators.resourcedoc.model.MethodDocType;
 import  com.sun.jersey.server.wadl.generators.resourcedoc.model.ResourceDocType;
 import  com.sun.research.ws.wadl.Application;
 import  com.sun.research.ws.wadl.Doc;
 import  com.sun.research.ws.wadl.Method;
 import  com.sun.research.ws.wadl.Param;
 import  com.sun.research.ws.wadl.Representation;
 import  com.sun.research.ws.wadl.Request;
 import  com.sun.research.ws.wadl.Resource;
 import  com.sun.research.ws.wadl.Resources;
 import  com.sun.research.ws.wadl.Response;
 
 import  javax.ws.rs.core.MediaType;
 import java.io.File;
 import java.util.List;
This WadlGenerator shows how the custom information added by the ExampleDocProcessor to the resourcedoc.xml can be processed by this WadlGenerator and is used to extend the generated application.wadl
Created on: Jul 20, 2008

Author(s):
Martin Grotzke
Version:
$Id$
 
 public class ExampleWadlGenerator implements WadlGenerator {
     
     private static final Logger LOG = Logger.getLoggerExampleWadlGenerator.class.getName() );
 
     private WadlGenerator _delegate;
     private File _resourceDocFile;
     private ResourceDocAccessor _resourceDoc;
 
     /* (non-Javadoc)
      * @see com.sun.jersey.server.impl.wadl.WadlGenerator#setWadlGeneratorDelegate(com.sun.jersey.server.impl.wadl.WadlGenerator)
      */
     public void setWadlGeneratorDelegate( WadlGenerator delegate ) {
          = delegate;
     }
 
     /* (non-Javadoc)
      * @see com.sun.jersey.server.impl.wadl.WadlGenerator#getRequiredJaxbContextPath()
      */
     public String getRequiredJaxbContextPath() {
         return .getRequiredJaxbContextPath();
     }
     
    public void setResourceDocFileFile resourceDocFile ) {
         = resourceDocFile;
    }
    
    public void init() throws Exception {
        .init();
        final ResourceDocType resourceDoc = loadFile, ResourceDocType.class, ResourceDocType.classMyNamedValueType.class );
         = new ResourceDocAccessor( resourceDoc );
    }
    private <T> T loadFileFile fileToLoadClass<T> targetClassClass<?> ... classesToBeBound ) {
        if ( fileToLoad == null ) {
            throw new IllegalArgumentException"The resource-doc file to load is not set!" );
        }
        try {
            final JAXBContext c = JAXBContext.newInstanceclassesToBeBound );
            final Unmarshaller m = c.createUnmarshaller();
            return targetClass.castm.unmarshalfileToLoad ) );
        } catchException e ) {
            .log."Could not unmarshal file " + fileToLoade );
            throw new RuntimeException"Could not unmarshal file " + fileToLoade );
        }
    }
    public Application createApplication() {
        return .createApplication();
    }
    public Method createMethod( AbstractResource r,
            AbstractResourceMethod m ) {
        final Method result = .createMethod( rm );
        final MethodDocType methodDoc = .getMethodDoc( r.getResourceClass(), m.getMethod() );
        if ( methodDoc != null && methodDoc.getAny() != null && !methodDoc.getAny().isEmpty() ) {
            for ( Object any : methodDoc.getAny() ) {
                ..println"test: " + ( any instanceof MyNamedValueType ) + " any: " + any );
                if ( any instanceof MyNamedValueType ) {
                    final MyNamedValueType namedValue = (MyNamedValueTypeany;
                    if ( ..equalsnamedValue.getName() ) ) {
                        final Doc doc = new Doc();
                        doc.getContent().add( namedValue.getValue() );
                        result.getDoc().add( doc );
                    }
                }
            }
        }
        return result;
    }
    public Request createRequest( AbstractResource arg0,
            AbstractResourceMethod arg1 ) {
        return .createRequest( arg0arg1 );
    }
    public Param createParam( AbstractResource arg0,
            AbstractMethod arg1, Parameter arg2 ) {
        return .createParam( arg0arg1arg2 );
    }
    public Representation createRequestRepresentation(
            AbstractResource arg0, AbstractResourceMethod arg1, MediaType arg2 ) {
        return .createRequestRepresentation( arg0arg1arg2 );
    }
    public Resource createResource( AbstractResource arg0String arg1 ) {
        return .createResource( arg0arg1 );
    }
    public Resources createResources() {
        return .createResources();
    }
    public List<Response> createResponses( AbstractResource arg0,
            AbstractResourceMethod arg1 ) {
        return .createResponses( arg0arg1 );
    }

    
    
Delegate the creation of an external grammar.

Returns:
    @Override
    public ExternalGrammarDefinition createExternalGrammar() {
        return .createExternalGrammar();
    }
    @Override
    public void attachTypes(ApplicationDescription egd) {
        .attachTypes(egd);
    }
    
New to GrepCode? Check out our FAQ X