Full covered Java sources example for routes compilation by ihostage · Pull Request #13004 · playframework/playframework · GitHub
Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
/*
* Copyright (C) from 2022 The Play Framework Contributors <https://github.com/playframework>, 2011-2021 Lightbend Inc. <https://www.lightbend.com>
*/

package controllers;

public class BooleanController extends ParamController<Boolean> {}
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
/*
* Copyright (C) from 2022 The Play Framework Contributors <https://github.com/playframework>, 2011-2021 Lightbend Inc. <https://www.lightbend.com>
*/

package controllers;

public class CharacterController extends ParamController<Character> {}
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
/*
* Copyright (C) from 2022 The Play Framework Contributors <https://github.com/playframework>, 2011-2021 Lightbend Inc. <https://www.lightbend.com>
*/

package controllers;

public class DoubleController extends ParamController<Double> {}
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
/*
* Copyright (C) from 2022 The Play Framework Contributors <https://github.com/playframework>, 2011-2021 Lightbend Inc. <https://www.lightbend.com>
*/

package controllers;

public class FloatController extends ParamController<Float> {}
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
/*
* Copyright (C) from 2022 The Play Framework Contributors <https://github.com/playframework>, 2011-2021 Lightbend Inc. <https://www.lightbend.com>
*/

package controllers;

import jakarta.inject.Inject;
import play.mvc.Controller;
import play.mvc.Result;

public class InstanceController extends Controller {

@Inject
public InstanceController() {}

public Result index() {
return ok();
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
/*
* Copyright (C) from 2022 The Play Framework Contributors <https://github.com/playframework>, 2011-2021 Lightbend Inc. <https://www.lightbend.com>
*/

package controllers;

public class IntegerController extends ParamController<Integer> {}
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
/*
* Copyright (C) from 2022 The Play Framework Contributors <https://github.com/playframework>, 2011-2021 Lightbend Inc. <https://www.lightbend.com>
*/

package controllers;

public class LongController extends ParamController<Long> {}
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
/*
* Copyright (C) from 2022 The Play Framework Contributors <https://github.com/playframework>, 2011-2021 Lightbend Inc. <https://www.lightbend.com>
*/

package controllers;

import static play.mvc.Http.HttpVerbs.DELETE;
import static play.mvc.Http.HttpVerbs.GET;
import static play.mvc.Http.HttpVerbs.HEAD;
import static play.mvc.Http.HttpVerbs.OPTIONS;
import static play.mvc.Http.HttpVerbs.PATCH;
import static play.mvc.Http.HttpVerbs.POST;
import static play.mvc.Http.HttpVerbs.PUT;

import play.mvc.Controller;
import play.mvc.Result;

public class MethodController extends Controller {

public Result get() {
return ok(GET);
}

public Result post() {
return ok(POST);
}

public Result put() {
return ok(PUT);
}

public Result head() {
return ok(HEAD);
}

public Result delete() {
return ok(DELETE);
}

public Result patch() {
return ok(PATCH);
}

public Result options() {
return ok(OPTIONS);
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
/*
* Copyright (C) from 2022 The Play Framework Contributors <https://github.com/playframework>, 2011-2021 Lightbend Inc. <https://www.lightbend.com>
*/

package controllers;

import play.mvc.Controller;
import play.mvc.Result;

import java.util.OptionalDouble;
import java.util.OptionalInt;
import java.util.OptionalLong;

@SuppressWarnings("OptionalUsedAsFieldOrParameterType")
public class OptionalController extends Controller {

public Result queryInt(OptionalInt x) {
return ok(x.isPresent() ? String.valueOf(x.getAsInt()) : "emptyOptionalInt");
}

public Result queryLong(OptionalLong x) {
return ok(x.isPresent() ? String.valueOf(x.getAsLong()) : "emptyOptionalLong");
}

public Result queryDouble(OptionalDouble x) {
return ok(x.isPresent() ? String.valueOf(x.getAsDouble()) : "emptyOptionalDouble");
}

public Result queryIntDefault(OptionalInt x) {
return ok(x.isPresent() ? String.valueOf(x.getAsInt()) : "emptyOptionalInt");
}

public Result queryLongDefault(OptionalLong x) {
return ok(x.isPresent() ? String.valueOf(x.getAsLong()) : "emptyOptionalLong");
}

public Result queryDoubleDefault(OptionalDouble x) {
return ok(x.isPresent() ? String.valueOf(x.getAsDouble()) : "emptyOptionalDouble");
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,69 @@
/*
* Copyright (C) from 2022 The Play Framework Contributors <https://github.com/playframework>, 2011-2021 Lightbend Inc. <https://www.lightbend.com>
*/

package controllers;

import static java.util.stream.Collectors.joining;

import java.util.List;
import java.util.Optional;
import play.mvc.Controller;
import play.mvc.Result;

@SuppressWarnings("OptionalUsedAsFieldOrParameterType")
public abstract class ParamController<T> extends Controller {
public Result path(T x) {
return ok(x.toString());
}

public Result query(T x) {
return ok(x.toString());
}

public Result queryDefault(T x) {
return ok(x.toString());
}

public Result queryFixed(T x) {
return ok(x.toString());
}

public Result queryNullable(T x) {
return ok(x == null ? "null" : x.toString());
}

public Result queryOptional(Optional<T> x) {
return ok(x.map(Object::toString).orElse("emptyOptional"));
}

public Result queryOptionalDefault(Optional<T> x) {
return ok(x.map(Object::toString).orElse("emptyOptional"));
}

public Result queryList(List<T> x) {
return ok(x.stream().map(this::listElementToString).collect(joining(",")));
}

public Result queryListDefault(List<T> x) {
return ok(x.stream().map(this::listElementToString).collect(joining(",")));
}

public Result queryListNullable(List<T> x) {
return ok(x == null ? "null" : x.stream().map(this::listElementToString).collect(joining(",")));
}

public Result queryListOptional(Optional<List<T>> x) {
return ok(
x.map(o -> o.stream().map(this::listElementToString).collect(joining(","))).orElse("emptyOptional"));
}

public Result queryListOptionalDefault(Optional<List<T>> x) {
return ok(
x.map(o -> o.stream().map(this::listElementToString).collect(joining(","))).orElse("emptyOptional"));
}

protected String listElementToString(T s) {
return s.toString();
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
/*
* Copyright (C) from 2022 The Play Framework Contributors <https://github.com/playframework>, 2011-2021 Lightbend Inc. <https://www.lightbend.com>
*/

package controllers;

public class ShortController extends ParamController<Short> {}
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
/*
* Copyright (C) from 2022 The Play Framework Contributors <https://github.com/playframework>, 2011-2021 Lightbend Inc. <https://www.lightbend.com>
*/

package controllers;

public class StringController extends ParamController<String> {
@Override
protected String listElementToString(String s) {
return s.isEmpty() ? "empty" : s;
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
/*
* Copyright (C) from 2022 The Play Framework Contributors <https://github.com/playframework>, 2011-2021 Lightbend Inc. <https://www.lightbend.com>
*/

package controllers;

import java.util.UUID;

public class UUIDController extends ParamController<UUID> {}
Loading