blob: 9899072fa87f42cae9616f0eb4c7a6ce1b5d5e32 [file] [log] [blame]
/**
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you 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.apache.ambari.view.proxy;
import org.apache.ambari.view.ViewContext;
import javax.inject.Inject;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;
import javax.ws.rs.core.Context;
import javax.ws.rs.core.HttpHeaders;
import javax.ws.rs.core.Response;
import javax.ws.rs.core.UriInfo;
import java.io.IOException;
/**
* The calculator resource.
*/
public class CalculatorResource {
/**
* The view context.
*/
@Inject
ViewContext context;
/**
* Handles: GET /calculator Get the calculator usage.
*
* @param headers http headers
* @param ui uri info
*
* @return the response including the usage of the calculator resource
*/
@GET
@Produces({"text/html"})
public Response getUsage(@Context HttpHeaders headers, @Context UriInfo ui) throws IOException{
String entity = "<h2>Usage of calculator</h2><br>" +
"<ul>" +
"<li><b>calculator/add/{a}/{b}</b> - add {a} to {b}</li>" +
"<li><b>calculator/subtract/{a}/{b}</b> - subtract {a} from {b}</li>" +
"<li><b>calculator/multiply/{a}/{b}</b> - multiply {a} with {b}</li>" +
"<li><b>calculator/divide/{a}/{b}</b> - divide {a} by {b}</li>" +
"</ul>"
;
return Response.ok(entity).type("text/html").build();
}
/**
* Handles: GET /calculator/add/{a}/{b} Get the results of a + b.
*
* @param a the left side operand
* @param b the right side operand
*
* @return the response including the result of a + b
*/
@GET
@Path("/add/{a}/{b}")
@Produces({"text/html"})
public Response add(@PathParam("a") double a, @PathParam("b") double b) {
String result = a + " + " + b + " = " + (a + b);
return Response.ok("<b>" + result + "</b>").type("text/html").build();
}
/**
* Handles: GET /calculator/subtract/{a}/{b} Get the results of a - b.
*
* @param a the left side operand
* @param b the right side operand
*
* @return the response including the result of a - b
*/
@GET
@Path("/subtract/{a}/{b}")
@Produces({"text/html"})
public Response subtract(@PathParam("a") double a, @PathParam("b") double b) {
String result = a + " - " + b + " = " + (a - b);
return Response.ok("<b>" + result + "</b>").type("text/html").build();
}
/**
* Handles: GET /calculator/multiply/{a}/{b} Get the results of a * b.
*
* @param a the left side operand
* @param b the right side operand
*
* @return the response including the result of a * b
*/
@GET
@Path("/multiply/{a}/{b}")
@Produces({"text/html"})
public Response multiply(@PathParam("a") double a, @PathParam("b") double b) {
String result = a + " * " + b + " = " + (a * b);
return Response.ok("<b>" + result + "</b>").type("text/html").build();
}
/**
* Handles: GET /calculator/divide/{a}/{b} Get the results of a / b.
*
* @param a the left side operand
* @param b the right side operand
*
* @return the response including the result of a / b
*/
@GET
@Path("/divide/{a}/{b}")
@Produces({"text/html"})
public Response divide(@PathParam("a") double a, @PathParam("b") double b) {
String result = a + " / " + b + " = " + (a / b);
return Response.ok("<b>" + result + "</b>").type("text/html").build();
}
}