Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
   * To change this template, choose Tools | Templates
   * and open the template in the editor.
   */
  package pt.webdetails.cda.utils;
  
  import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 import  org.apache.commons.logging.Log;
 import  org.apache.commons.logging.LogFactory;
 import  org.codehaus.jackson.map.ObjectMapper;
 import  org.pentaho.reporting.engine.classic.core.util.TypedTableModel;
 import  pt.webdetails.cpf.InterPluginCall;

Author(s):
pedro
 
 public class InterPluginUtils
 {
 
   private static final Log logger = LogFactory.getLog(TableModelUtils.class);
   private static InterPluginUtils _instance;
 
 
   public static synchronized InterPluginUtils getInstance()
   {
 
     if ( == null)
     {
        = new InterPluginUtils();
     }
 
     return ;
   }
 
 
   public static TableModel getTableModelFromJsonPluginCall(String pluginString method)
   {
     return getTableModelFromJsonPluginCall(pluginmethodnew HashMap<StringObject>());
   }
 
 
   public static TableModel getTableModelFromJsonPluginCall(String pluginString methodMap<StringObjectparams)
   {
 
 
     InterPluginCall pluginCall = new InterPluginCall(new InterPluginCall.Plugin(plugin), methodparams);
 
     return InterPluginUtils.getInstance().getTableModelFromJSONArray(pluginCall.call(), params);
 
   }
 
 
   public TableModel getTableModelFromJSONArray(String jsonMap<StringObjectparams)
   {
 
 
     ObjectMapper mapper = new ObjectMapper();
     try
     {
       List<Maplist = mapper.readValue(jsonList.class);
 
       // Get columnNames and columnClasses
       Map<ObjectClasscols = new LinkedHashMap<ObjectClass>();
 
       for (Map map : list)
       {
         for (Object key : map.keySet())
         {
           if (!cols.containsKey(key))
           {
             cols.put(keykey.getClass());
           }
         }
       }
 
       // Do we have columns parameter? If so, add that
       Map<ObjectClasscolumnOutputs;
       if (params != null && params.containsKey("columns"))
       {
         String[] columns = (String[]) params.get("columns");
         columnOutputs = new LinkedHashMap<ObjectClass>();
         for (int i = 0; i < columns.lengthi++)
         {
           String column = columns[i];
           // Do we have this in our mapping?
           if (cols.containsKey(column))
           {
             columnOutputs.put(columncols.get(column));
           }
           else
           {
             columnOutputs.put(columnString.class);
           }
        }
      }
      else
      {
        columnOutputs = cols;
      }
      TypedTableModel tm = new TypedTableModel(columnOutputs.keySet().toArray(new String[0]), columnOutputs.values().toArray(new Class[0]), list.size());
      .debug("Done. columnOutputs has " + columnOutputs.size() + " entries");
      // Fill the table model
      for (int i = 0; i < list.size(); i++)
      {
        Map map = list.get(i);
        // Iterate through the columnOutputs
        Object[] keyset = columnOutputs.keySet().toArray();
        for (int j = 0; j < keyset.lengthj++)
        {
          Object key = keyset[j];
          if (map.containsKey(key))
          {
            tm.setValueAt(map.get(key), ij);
          }
        }
      }
      return tm;
    }
    catch (IOException ex)
    {
      .error("Error parsing json: " + jsonex);
    }
    return null;
  }
  public static final void main(String[] args)
  {
    ..println("TEST");
    TableModel tm1 = InterPluginUtils.getInstance().getTableModelFromJSONArray("[{\"id\":1,\"type\":\"query\",\"name\":\"Test 1\",\"group\":\"CDV Sample Tests\",\"createdBy\":\"Pedro\",\"createdAt\":1339430893246,\"validation\":\"/plugin-samples/cda/cdafiles/sql-jndi.cda[1] \\n/plugin-samples/cda/cdafiles/sql-jndi.cda[1] (status: Cancelled)\",\"validationName\":\"Test Existence\",\"validationType\":\"custom\",\"expected\":100,\"warnPercentage\":0.3,\"errorPercentage\":0.7,\"errorOnLow\":true,\"cron\":\"0 2 * * ? *\"},{\"id\":2,\"type\":\"query\",\"name\":\"Test 2\",\"group\":\"CDV Sample Tests\",\"createdBy\":\"Pedro\",\"createdAt\":1339430893246,\"validation\":\"/plugin-samples/cda/cdafiles/mondrian-jndi.cda[1] \\n/plugin-samples/cda/cdafiles/mondrian-jndi.cda[1] (status: Cancelled)\",\"validationName\":\"Test Existence\",\"validationType\":\"custom\",\"expected\":100,\"warnPercentage\":0.3,\"errorPercentage\":0.7,\"errorOnLow\":true,\"cron\":\"0 2 * * ? *\"}]"null);
    HashMap params = new HashMap<StringObject>();
    params.put("columns"new String[]
            {
//              "timestamp", "file", "parameters", "message"
              "id""XXX","group"
            });
    TableModel tm2 = InterPluginUtils.getInstance().getTableModelFromJSONArray("[{\"id\":1,\"type\":\"query\",\"name\":\"Test 1\",\"group\":\"CDV Sample Tests\",\"createdBy\":\"Pedro\",\"createdAt\":1339430893246,\"validation\":\"/plugin-samples/cda/cdafiles/sql-jndi.cda[1] \\n/plugin-samples/cda/cdafiles/sql-jndi.cda[1] (status: Cancelled)\",\"validationName\":\"Test Existence\",\"validationType\":\"custom\",\"expected\":100,\"warnPercentage\":0.3,\"errorPercentage\":0.7,\"errorOnLow\":true,\"cron\":\"0 2 * * ? *\"},{\"id\":2,\"type\":\"query\",\"name\":\"Test 2\",\"group\":\"CDV Sample Tests\",\"createdBy\":\"Pedro\",\"createdAt\":1339430893246,\"validation\":\"/plugin-samples/cda/cdafiles/mondrian-jndi.cda[1] \\n/plugin-samples/cda/cdafiles/mondrian-jndi.cda[1] (status: Cancelled)\",\"validationName\":\"Test Existence\",\"validationType\":\"custom\",\"expected\":100,\"warnPercentage\":0.3,\"errorPercentage\":0.7,\"errorOnLow\":true,\"cron\":\"0 2 * * ? *\"}]"params);
  }
New to GrepCode? Check out our FAQ X