Package com.jayway.jaxrs.hateoas.core

Source Code of com.jayway.jaxrs.hateoas.core.HateoasApplication

/*
* Copyright 2011 the original author or authors.
* 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 com.jayway.jaxrs.hateoas.core;

import com.jayway.jaxrs.hateoas.CollectionWrapperStrategy;
import com.jayway.jaxrs.hateoas.HateoasContextProvider;
import com.jayway.jaxrs.hateoas.HateoasLinkInjector;
import com.jayway.jaxrs.hateoas.HateoasVerbosity;
import com.jayway.jaxrs.hateoas.core.HateoasResponse.HateoasResponseBuilder;
import com.jayway.jaxrs.hateoas.support.DefaultCollectionWrapperStrategy;
import com.jayway.jaxrs.hateoas.support.DefaultHateoasViewFactory;
import com.jayway.jaxrs.hateoas.support.JavassistHateoasLinkInjector;
import com.jayway.jaxrs.hateoas.support.StrategyBasedLinkInjector;

import javax.ws.rs.core.Application;
import java.util.Set;

/**
* Plain JAX-RS application adding HATEOAS capability. Subclass this to add hypermedia capability to a plain JAX-RS
* application.
*
* @author Mattias Hellborg Arthursson
* @author Kalle Stenflo
*/
public class HateoasApplication extends Application {
  public HateoasApplication() {
    this(HateoasVerbosity.MAXIMUM);
  }

  public HateoasApplication(HateoasVerbosity verbosity) {
    this(new StrategyBasedLinkInjector(), new DefaultCollectionWrapperStrategy(), verbosity);
  }

  public HateoasApplication(HateoasLinkInjector<Object> linkInjector,
                              CollectionWrapperStrategy collectionWrapperStrategy, HateoasVerbosity verbosity) {

    Set<Class<?>> allClasses = getClasses();
    for (Class<?> clazz : allClasses) {
      HateoasContextProvider.getDefaultContext().mapClass(clazz);
    }

    HateoasResponseBuilder.configure(linkInjector, collectionWrapperStrategy, new DefaultHateoasViewFactory());
        HateoasVerbosity.setDefaultVerbosity(verbosity);
  }
}
TOP

Related Classes of com.jayway.jaxrs.hateoas.core.HateoasApplication

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.