Example usage for org.apache.commons.collections4 MultiMap put

List of usage examples for org.apache.commons.collections4 MultiMap put

Introduction

In this page you can find the example usage for org.apache.commons.collections4 MultiMap put.

Prototype

Object put(K key, Object value);

Source Link

Document

Adds the value to the collection associated with the specified key.

Usage

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);
}