List of usage examples for org.apache.commons.collections4 MultiMap put
Object put(K key, Object value);
From source file:name.abhijitsarkar.programminginterviews.hashtables.PracticeQuestionsCh12.java
@SuppressWarnings("unchecked") public static List<List<String>> anagrams(final List<String> dictionary) { final MultiMap<Integer, Integer> anagramMap = new MultiValueMap<Integer, Integer>(); char[] arr = null; int hashCode = -1; for (int i = 0; i < dictionary.size(); ++i) { arr = dictionary.get(i).toCharArray(); Arrays.sort(arr);//from w w w.j a v a2 s .c om hashCode = String.valueOf(arr).hashCode(); anagramMap.put(hashCode, i); } final List<List<String>> anagrams = new ArrayList<>(); final Set<Entry<Integer, Object>> anagramIndices = anagramMap.entrySet(); List<Integer> aSet = null; for (final Object o : anagramIndices) { aSet = (List<Integer>) ((Entry<Integer, Object>) o).getValue(); if (aSet.size() > 1) { final List<String> an = new ArrayList<>(); for (final int i : aSet) { an.add(dictionary.get(i)); } anagrams.add(an); } } return anagrams; }
From source file:fr.cph.chicago.data.BusData.java
/** * Load from CTA API a bus stop list//ww w. jav a 2 s .c o m * * @param stopId * the stop id * @param bound * the direction * @return a bus stop list * @throws ConnectException * a connect exception * @throws ParserException * a parser exception */ public final List<BusStop> loadBusStop(final String stopId, final String bound) throws ConnectException, ParserException { CtaConnect connect = CtaConnect.getInstance(); MultiMap<String, String> param = new MultiValueMap<String, String>(); param.put("rt", stopId); param.put("dir", bound); List<BusStop> busStops = null; String xmlResult = connect.connect(CtaRequestType.BUS_STOP_LIST, param); Xml xml = new Xml(); busStops = xml.parseBusBounds(xmlResult); return busStops; }
From source file:fr.cph.chicago.activity.BaseActivity.java
/** * Connect to CTA API and get arrivals trains and buses from favorites * /*w w w .j a v a2 s . co m*/ * @throws ParserException * the exception */ private void loadData() throws ParserException { MultiMap<String, String> params = new MultiValueMap<String, String>(); List<Integer> favorites = Preferences.getTrainFavorites(ChicagoTracker.PREFERENCE_FAVORITES_TRAIN); for (Integer fav : favorites) { params.put("mapid", String.valueOf(fav)); } MultiMap<String, String> params2 = new MultiValueMap<String, String>(); List<String> busFavorites = Preferences.getBusFavorites(ChicagoTracker.PREFERENCE_FAVORITES_BUS); for (String str : busFavorites) { String[] fav = Util.decodeBusFavorite(str); params2.put("rt", fav[0]); params2.put("stpid", fav[1]); } // Get preferences to know if trains and buses need to be loaded SharedPreferences sharedPref = PreferenceManager.getDefaultSharedPreferences(this); boolean loadTrain = true; boolean loadBus = true; if (sharedPref.contains("cta_train")) { loadTrain = sharedPref.getBoolean("cta_train", true); } else { SharedPreferences.Editor editor = sharedPref.edit(); editor.putBoolean("cta_train", true); editor.commit(); } if (sharedPref.contains("cta_bus")) { loadBus = sharedPref.getBoolean("cta_bus", true); } else { SharedPreferences.Editor editor = sharedPref.edit(); editor.putBoolean("cta_bus", true); editor.commit(); } GlobalConnectTask task = new GlobalConnectTask(this, BaseActivity.class, CtaRequestType.TRAIN_ARRIVALS, params, CtaRequestType.BUS_ARRIVALS, params2, loadTrain, loadBus, false); task.execute((Void) null); if (loadTrain) { Util.trackAction(BaseActivity.this, R.string.analytics_category_req, R.string.analytics_action_get_train, R.string.analytics_action_get_train_arrivals, 0); } if (loadBus) { Util.trackAction(BaseActivity.this, R.string.analytics_category_req, R.string.analytics_action_get_bus, R.string.analytics_action_get_bus_arrival, 0); } }
From source file:fr.cph.chicago.task.GlobalConnectTask.java
@Override protected final Boolean doInBackground(final Void... connects) { mTrainBoolean = true;//from w w w. j a va 2 s .co m mBusBoolean = true; mBikeBoolean = true; mNetworkAvailable = Util.isNetworkAvailable(); if (mNetworkAvailable) { CtaConnect ctaConnect = CtaConnect.getInstance(); DivvyConnect divvyConnect = DivvyConnect.getInstance(); if (mLoadTrains) { try { for (Entry<String, Object> entry : mParams.entrySet()) { String key = entry.getKey(); if (key.equals("mapid")) { Object value = entry.getValue(); if (value instanceof String) { String xmlResult = ctaConnect.connect(mRequestType, mParams); this.mTrainArrivals = mXml.parseArrivals(xmlResult, mData); } else if (value instanceof List) { @SuppressWarnings("unchecked") List<String> list = (List<String>) value; if (list.size() < 5) { String xmlResult = ctaConnect.connect(mRequestType, mParams); this.mTrainArrivals = mXml.parseArrivals(xmlResult, mData); } else { int size = list.size(); SparseArray<TrainArrival> tempArrivals = new SparseArray<TrainArrival>(); int start = 0; int end = 4; while (end < size + 1) { List<String> subList = list.subList(start, end); MultiMap<String, String> paramsTemp = new MultiValueMap<String, String>(); for (String sub : subList) { paramsTemp.put(key, sub); } String xmlResult = ctaConnect.connect(mRequestType, paramsTemp); SparseArray<TrainArrival> temp = mXml.parseArrivals(xmlResult, mData); for (int j = 0; j < temp.size(); j++) { tempArrivals.put(temp.keyAt(j), temp.valueAt(j)); } start = end; if (end + 3 >= size - 1 && end != size) { end = size; } else { end = end + 3; } } this.mTrainArrivals = tempArrivals; } } } } // Apply filters int index = 0; while (index < mTrainArrivals.size()) { TrainArrival arri = mTrainArrivals.valueAt(index++); List<Eta> etas = arri.getEtas(); // Sort Eta by arriving time Collections.sort(etas); // Copy data into new list to be able to avoid looping on a list that we want to // modify List<Eta> etas2 = new ArrayList<Eta>(); etas2.addAll(etas); int j = 0; Eta eta = null; Station station = null; TrainLine line = null; TrainDirection direction = null; for (int i = 0; i < etas2.size(); i++) { eta = etas2.get(i); station = eta.getStation(); line = eta.getRouteName(); direction = eta.getStop().getDirection(); boolean toRemove = Preferences.getTrainFilter(station.getId(), line, direction); if (!toRemove) { etas.remove(i - j++); } } } } catch (ConnectException e) { mTrainBoolean = false; this.mTrackerTrainException = e; } catch (ParserException e) { mTrainBoolean = false; this.mTrackerTrainException = e; } } if (mLoadBuses) { try { List<String> rts = new ArrayList<String>(); List<String> stpids = new ArrayList<String>(); for (Entry<String, Object> entry : mParams2.entrySet()) { String key = entry.getKey(); StringBuilder str = new StringBuilder(); int i = 0; @SuppressWarnings("unchecked") List<String> values = (ArrayList<String>) entry.getValue(); for (String v : values) { str.append(v + ","); if (i == 9 || i == values.size() - 1) { if (key.equals("rt")) { rts.add(str.toString()); } else if (key.equals("stpid")) { stpids.add(str.toString()); } str = new StringBuilder(); i = -1; } i++; } } for (int i = 0; i < rts.size(); i++) { MultiMap<String, String> para = new MultiValueMap<String, String>(); para.put("rt", rts.get(i)); para.put("stpid", stpids.get(i)); String xmlResult = ctaConnect.connect(mRequestType2, para); this.mBusArrivals.addAll(mXml.parseBusArrivals(xmlResult)); } } catch (ConnectException e) { mBusBoolean = false; this.mTrackerBusException = e; } catch (ParserException e) { mBusBoolean = false; this.mTrackerBusException = e; } } if (mLoadBikes) { try { String bikeContent = divvyConnect.connect(); this.mBikeStations = mJson.parseStations(bikeContent); Collections.sort(this.mBikeStations, Util.BIKE_COMPARATOR_NAME); } catch (ParserException e) { mBikeBoolean = false; this.mTrackerBikeException = e; } catch (ConnectException e) { mBikeBoolean = false; this.mTrackerBikeException = e; } finally { if (!(mBusBoolean && mTrainBoolean)) { if (mParams2.size() == 0 && mBusBoolean) { mBusBoolean = false; } if (mParams.size() == 0 && mTrainBoolean) { mTrainBoolean = false; } } } } return mTrainBoolean || mBusBoolean || mBikeBoolean; } else { return mNetworkAvailable; } }
From source file:eu.artist.postmigration.eubt.executiontrace.IndependentSOAPTrace.java
/** * Not recursive! Only element's children's children * //w w w . jav a2s. c o m * @param element * @return */ private MultiMap<OMElement, OMElement> obtainElementChildrenMap(OMElement element) { // obtain elements and children's name MultiMap<OMElement, OMElement> elementChildrenMultiMap = new MultiValueMap<>(); Iterator<?> elementIterator = element.getChildElements(); while (elementIterator.hasNext()) { OMElement elementChild = (OMElement) elementIterator.next(); Iterator<?> childrenIterator = elementChild.getChildElements(); while (childrenIterator.hasNext()) { OMElement elementChildChild = (OMElement) childrenIterator.next(); elementChildrenMultiMap.put(elementChild, elementChildChild); } } return elementChildrenMultiMap; }
From source file:fr.cph.chicago.activity.StationActivity.java
@SuppressWarnings("unchecked") @Override//from w ww .java 2 s .com protected final void onCreate(final Bundle savedInstanceState) { super.onCreate(savedInstanceState); ChicagoTracker.checkTrainData(this); if (!this.isFinishing()) { // Load data DataHolder dataHolder = DataHolder.getInstance(); this.mTrainData = dataHolder.getTrainData(); mIds = new HashMap<String, Integer>(); // Load right xml setContentView(R.layout.activity_station); // Get station id from bundle extra if (mStationId == null) { mStationId = getIntent().getExtras().getInt("stationId"); } // Get station from station id mStation = mTrainData.getStation(mStationId); MultiMap<String, String> reqParams = new MultiValueMap<String, String>(); reqParams.put("mapid", String.valueOf(mStation.getId())); new LoadData().execute(reqParams); // Call google street api to load image new DisplayGoogleStreetPicture().execute(mStation.getStops().get(0).getPosition()); this.mIsFavorite = isFavorite(); TextView textView = (TextView) findViewById(R.id.activity_bike_station_station_name); textView.setText(mStation.getName().toString()); mStreetViewImage = (ImageView) findViewById(R.id.activity_bike_station_streetview_image); mStreetViewText = (TextView) findViewById(R.id.activity_bike_station_steetview_text); mMapImage = (ImageView) findViewById(R.id.activity_bike_station_map_image); mDirectionImage = (ImageView) findViewById(R.id.activity_bike_station_map_direction); mFavoritesImage = (ImageView) findViewById(R.id.activity_bike_station_favorite_star); if (mIsFavorite) { mFavoritesImage.setImageDrawable(getResources().getDrawable(R.drawable.ic_save_active)); } mFavoritesImage.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { StationActivity.this.switchFavorite(); } }); LinearLayout stopsView = (LinearLayout) findViewById(R.id.activity_bike_station_details); this.mParamsStop = new LinearLayout.LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT); Map<TrainLine, List<Stop>> stops = mStation.getStopByLines(); CheckBox checkBox = null; for (Entry<TrainLine, List<Stop>> e : stops.entrySet()) { final TrainLine line = e.getKey(); List<Stop> stopss = e.getValue(); Collections.sort(stopss); LayoutInflater layoutInflater = (LayoutInflater) ChicagoTracker.getAppContext() .getSystemService(Context.LAYOUT_INFLATER_SERVICE); View view = layoutInflater.inflate(R.layout.activity_station_line_title, null); TextView lineTextView = (TextView) view.findViewById(R.id.activity_bus_station_value); lineTextView.setText(line.toStringWithLine()); TextView lineColorTextView = (TextView) view.findViewById(R.id.activity_bus_color); lineColorTextView.setBackgroundColor(line.getColor()); stopsView.addView(view); for (final Stop stop : stopss) { LinearLayout line2 = new LinearLayout(this); line2.setOrientation(LinearLayout.HORIZONTAL); line2.setLayoutParams(mParamsStop); checkBox = new CheckBox(this); checkBox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() { @Override public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { Preferences.saveTrainFilter(mStationId, line, stop.getDirection(), isChecked); } }); checkBox.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // Update timing MultiMap<String, String> reqParams = new MultiValueMap<String, String>(); reqParams.put("mapid", String.valueOf(mStation.getId())); new LoadData().execute(reqParams); } }); checkBox.setChecked(Preferences.getTrainFilter(mStationId, line, stop.getDirection())); checkBox.setText(stop.getDirection().toString()); checkBox.setTextColor(getResources().getColor(R.color.grey)); line2.addView(checkBox); stopsView.addView(line2); LinearLayout line3 = new LinearLayout(this); line3.setOrientation(LinearLayout.VERTICAL); line3.setLayoutParams(mParamsStop); int id3 = Util.generateViewId(); line3.setId(id3); mIds.put(line.toString() + "_" + stop.getDirection().toString(), id3); stopsView.addView(line3); } } getActionBar().setDisplayHomeAsUpEnabled(true); Util.trackScreen(this, R.string.analytics_train_details); } }
From source file:eu.artist.postmigration.eubt.migrationtracemodel.wsmigrationtrace.loader.WSMigrationTraceHandler.java
public MultiMap<SourceElement, SourceParameter> getSourceParameters(TargetElement targetElement, TargetParameter targetParameter) { MultiMap<SourceElement, SourceParameter> sourceMultiMap = new MultiValueMap<>(); for (SourceElement sourceElement : getSourceElements(targetElement)) { for (SourceParameter sourceParameter : sourceElement.getParameters()) { for (TargetParameter matchingTargetParameter : sourceParameter.getTargetParameter()) { if (targetParameter.equals(matchingTargetParameter)) { sourceMultiMap.put(sourceElement, sourceParameter); }/*www . j a v a2 s . c o m*/ } } } return sourceMultiMap; }
From source file:eu.artist.postmigration.eubt.migrationtracemodel.wsmigrationtrace.loader.WSMigrationTraceHandler.java
/** * Retrieves a multi value list of target elements and target parameters corresponding to a given source element and source parameter * /*from w w w . ja v a2 s . c o m*/ * @param sourceElement source element used to find corresponding target elements for * @param sourceParameter source parameter used to find corresponding target parameters for * @return a multi value list of target elements and target parameters corresponding to a given source element and source parameter */ public MultiMap<TargetElement, TargetParameter> getTargetParameters(SourceElement sourceElement, SourceParameter sourceParameter) { MultiMap<TargetElement, TargetParameter> targetMultiMap = new MultiValueMap<TargetElement, TargetParameter>(); for (TargetParameter targetParameter : sourceParameter.getTargetParameter()) { for (TargetElement targetElement : getTargetElements(sourceElement)) { for (TargetParameter matchingTargetParameter : targetElement.getParameters()) { if (targetParameter.equals(matchingTargetParameter)) { targetMultiMap.put(targetElement, targetParameter); } } } } return targetMultiMap; }
From source file:fr.cph.chicago.activity.StationActivity.java
@SuppressWarnings("unchecked") @Override/*from www. ja v a 2s . c o m*/ public final boolean onOptionsItemSelected(final MenuItem item) { switch (item.getItemId()) { case android.R.id.home: finish(); return true; case R.id.action_refresh: MenuItem menuItem = item; menuItem.setActionView(R.layout.progressbar); menuItem.expandActionView(); MultiMap<String, String> params = new MultiValueMap<String, String>(); List<Integer> favorites = Preferences.getTrainFavorites(ChicagoTracker.PREFERENCE_FAVORITES_TRAIN); for (Integer fav : favorites) { params.put("mapid", String.valueOf(fav)); } MultiMap<String, String> reqParams = new MultiValueMap<String, String>(); reqParams.put("mapid", String.valueOf(mStation.getId())); new LoadData().execute(reqParams); return true; } return super.onOptionsItemSelected(item); }
From source file:fr.cph.chicago.activity.MainActivity.java
@Override public final boolean onOptionsItemSelected(final MenuItem item) { switch (item.getItemId()) { case R.id.action_refresh: if (mCurrentPosition != POSITION_DIVVY && mCurrentPosition != POSITION_NEARBY && mCurrentPosition != POSITION_ALERTS) { MenuItem menuItem = item; menuItem.setActionView(R.layout.progressbar); menuItem.expandActionView(); SharedPreferences sharedPref = PreferenceManager.getDefaultSharedPreferences(MainActivity.this); boolean loadTrain = sharedPref.getBoolean("cta_train", true); boolean loadBus = sharedPref.getBoolean("cta_bus", true); boolean loadBike = sharedPref.getBoolean("divvy_bike", true); boolean loadAlert = sharedPref.getBoolean("cta_alert", true); MultiMap<String, String> params = new MultiValueMap<String, String>(); List<Integer> trainFavorites = Preferences .getTrainFavorites(ChicagoTracker.PREFERENCE_FAVORITES_TRAIN); for (Integer fav : trainFavorites) { params.put("mapid", String.valueOf(fav)); }//ww w.j a v a 2s. c o m MultiMap<String, String> params2 = new MultiValueMap<String, String>(); List<String> busFavorites = Preferences.getBusFavorites(ChicagoTracker.PREFERENCE_FAVORITES_BUS); for (String str : busFavorites) { String[] fav = Util.decodeBusFavorite(str); params2.put("rt", fav[0]); params2.put("stpid", fav[1]); } GlobalConnectTask task; try { task = new GlobalConnectTask(mFavoritesFragment, FavoritesFragment.class, CtaRequestType.TRAIN_ARRIVALS, params, CtaRequestType.BUS_ARRIVALS, params2, loadTrain, loadBus, loadBike); task.execute((Void) null); } catch (ParserException e) { ChicagoTracker.displayError(this, e); return true; } // Google analytics if (loadTrain) { Util.trackAction(MainActivity.this, R.string.analytics_category_req, R.string.analytics_action_get_train, R.string.analytics_action_get_train_arrivals, 0); } if (loadBus) { Util.trackAction(MainActivity.this, R.string.analytics_category_req, R.string.analytics_action_get_bus, R.string.analytics_action_get_bus_arrival, 0); } if (loadBike) { Util.trackAction(MainActivity.this, R.string.analytics_category_req, R.string.analytics_action_get_divvy, R.string.analytics_action_get_divvy_all, 0); } // Check if bus/bike or alert data are not loaded. If not, load them. // Can happen when the app has been loaded without any data connection boolean loadData = false; DataHolder dataHolder = DataHolder.getInstance(); BusData busData = dataHolder.getBusData(); AlertData alertData = dataHolder.getAlertData(); Bundle bundle = getIntent().getExtras(); List<BikeStation> bikeStations = bundle.getParcelableArrayList("bikeStations"); if (loadBus && busData.getRoutes() != null && busData.getRoutes().size() == 0) { loadData = true; } if (!loadData && loadAlert && alertData.getAlerts() != null && alertData.getAlerts().size() == 0) { loadData = true; } if (!loadData && loadBike && bikeStations == null) { loadData = true; } if (loadData) { startRefreshAnimation(); new LoadData().execute(); } Util.trackAction(this, R.string.analytics_category_ui, R.string.analytics_action_press, R.string.analytics_action_refresh_fav, 0); } else if (mCurrentPosition == POSITION_NEARBY) { mNearbyFragment.reloadData(); Util.trackAction(this, R.string.analytics_category_ui, R.string.analytics_action_press, R.string.analytics_action_refresh_nearby, 0); } return false; case R.id.action_search: Util.trackAction(this, R.string.analytics_category_ui, R.string.analytics_action_press, R.string.analytics_action_search, 0); return true; } return super.onOptionsItemSelected(item); }