001 package com.khubla.pragmatach.plugin.adminapp;
002
003 import com.khubla.pragmatach.framework.annotation.Controller;
004 import com.khubla.pragmatach.framework.annotation.Route;
005 import com.khubla.pragmatach.framework.annotation.Route.HttpMethod;
006 import com.khubla.pragmatach.framework.annotation.View;
007 import com.khubla.pragmatach.framework.api.PragmatachException;
008 import com.khubla.pragmatach.framework.api.Response;
009 import com.khubla.pragmatach.framework.router.Router;
010
011 /**
012 * @author tome
013 */
014 @Controller(name = "pragmatachShowRouteCacheController")
015 @View(view = "pragmatach/admin/routecache.html")
016 public class ShowRouteCacheController extends SecuredAdminController {
017 private long size;
018 private long totalHits;
019 private long totalRequests;
020 private float hitRatio;
021
022 @Route(uri = "/pragmatach/admin/routecache/clear", method = HttpMethod.post)
023 public Response clearCache() throws PragmatachException {
024 Router.getRoutecache().clear();
025 return super.render();
026 }
027
028 public float getHitRatio() {
029 return hitRatio;
030 }
031
032 public long getSize() {
033 return size;
034 }
035
036 public long getTotalHits() {
037 return totalHits;
038 }
039
040 public long getTotalRequests() {
041 return totalRequests;
042 }
043
044 @Route(uri = "/pragmatach/admin/routecache")
045 public Response render() throws PragmatachException {
046 size = Router.getRoutecache().size();
047 totalHits = Router.getRoutecache().getTotalHits();
048 totalRequests = Router.getRoutecache().getTotalRequests();
049 if (0 != totalRequests) {
050 hitRatio = 100 * ((float) totalHits / (float) totalRequests);
051 } else {
052 hitRatio = 0;
053 }
054 return super.render();
055 }
056
057 public void setHitRatio(float hitRatio) {
058 this.hitRatio = hitRatio;
059 }
060
061 public void setSize(long size) {
062 this.size = size;
063 }
064
065 public void setTotalHits(long totalHits) {
066 this.totalHits = totalHits;
067 }
068
069 public void setTotalRequests(long totalRequests) {
070 this.totalRequests = totalRequests;
071 }
072 }