/* * Copyright (C) 2014 Civilian Framework. * * Licensed under the Civilian License (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.civilian-framework.org/license.txt * * 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.civilian.internal.admin.app; import java.util.ArrayList; import org.civilian.annotation.Get; import org.civilian.annotation.Produces; import org.civilian.annotation.Parameter; import org.civilian.content.ContentType; import org.civilian.controller.ControllerMethod; import org.civilian.controller.ControllerType; import org.civilian.template.Template; /** * Controller for the resource "/<app-id>resources". */ public class ResourcesController extends AppController { @Override protected Template getContentTemplate() { ResourcesTemplate t = new ResourcesTemplate(viewedApp_); return new AppTemplate(viewedApp_, t, 1); } @Produces(ContentType.Strings.APPLICATION_JSON) @Get public void getDetails(@Parameter("controller") String signature) throws Exception { ControllerType type = viewedApp_.getControllerService().getControllerType(signature); if (type == null) getResponse().writeJson("?"); else { ArrayList<ActionInfo> infos = new ArrayList<>(); for (ControllerMethod action : type) infos.add(new ActionInfo(action)); getResponse().writeJson(infos); } } @SuppressWarnings("unused") private static class ActionInfo { public ActionInfo(ControllerMethod action) { this.method = action.getJavaMethod().getName(); this.info = action.getInfo(); } public final String method; public final String info; } }