package org.fluxtream.connectors.evernote; import java.util.ArrayList; import java.util.List; import org.fluxtream.core.connectors.SharedConnectorFilter; import org.fluxtream.core.domain.AbstractFacet; import org.fluxtream.core.domain.SharedConnector; import net.sf.json.JSONArray; import net.sf.json.JSONObject; import org.springframework.stereotype.Component; /** * User: candide * Date: 19/02/14 * Time: 16:42 */ @Component public class EvernoteSharedConnectorFilter implements SharedConnectorFilter { @Override public <T extends AbstractFacet> List<T> filterFacets(final SharedConnector sharedConnector, final List<T> facets) { if (sharedConnector.filterJson==null) return facets; JSONObject json = JSONObject.fromObject(sharedConnector.filterJson); final JSONArray notebooks = json.getJSONArray("notebooks"); List<String> sharedNotebookGuids = new ArrayList<String>(); for (int i=0; i<notebooks.size(); i++) { JSONObject notebook = notebooks.getJSONObject(i); boolean shared = notebook.getBoolean("shared"); if (shared) sharedNotebookGuids.add(notebook.getString("guid")); } List<T> filteredFacets = new ArrayList<T>(); for (T facet : facets) { if (facet instanceof EvernoteNoteFacet) { if(sharedNotebookGuids.contains(((EvernoteNoteFacet)facet).notebookGuid)) filteredFacets.add(facet); } } return filteredFacets; } }