Package org.fluxtream.mvc.controllers

Source Code of org.fluxtream.mvc.controllers.OpenGraphController

package org.fluxtream.mvc.controllers;

import org.fluxtream.core.Configuration;
import org.fluxtream.core.connectors.Connector;
import org.fluxtream.core.connectors.ObjectType;
import org.fluxtream.core.connectors.vos.AbstractFacetVO;
import org.fluxtream.core.domain.AbstractFacet;
import org.fluxtream.core.services.ApiDataService;
import org.fluxtream.core.services.MetadataService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;

import java.io.UnsupportedEncodingException;
import java.net.URLDecoder;

/**
* User: candide
* Date: 21/09/13
* Time: 15:46
*/
@Controller
@RequestMapping("/openGraph")
public class OpenGraphController {

    @Autowired
    ApiDataService apiDataService;

    @Autowired
    MetadataService metadataService;

    @Autowired
    Configuration env;

    @RequestMapping("/{encryptedParameters}.html")
    public ModelAndView index(@PathVariable("encryptedParameters") String encryptedParameters) throws UnsupportedEncodingException {
        String params = env.decrypt(encryptedParameters);
        params = URLDecoder.decode(params, "UTF-8");
        final String[] parameters = params.split("/");
        if (parameters.length!=3)
            throw new RuntimeException("Unexpected number of parameters: " + parameters.length);
        int api = Integer.valueOf(parameters[0]);
        int objectType = Integer.valueOf(parameters[1]);
        long facetId = Long.valueOf(parameters[2]);
        final AbstractFacetVO<AbstractFacet> facet = apiDataService.getFacet(api, objectType, facetId);
        final Connector connector = Connector.fromValue(facet.api);
        String facetName = String.format("%s.%s", connector.getName(), ObjectType.getObjectType(connector, facet.objectType));
        ModelAndView mav = new ModelAndView("openGraph/" + facetName);
        mav.addObject("facet", facet);
        mav.addObject("metadataService", metadataService);
        return mav;
    }
}
TOP

Related Classes of org.fluxtream.mvc.controllers.OpenGraphController

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.