package com.github.scribejava.core.model; import com.github.scribejava.core.utils.OAuthEncoder; public class Parameter implements Comparable<Parameter> { private final String key; private final String value; public Parameter(String key, String value) { this.key = key; this.value = value; } public String asUrlEncodedPair() { return OAuthEncoder.encode(key).concat("=").concat(OAuthEncoder.encode(value)); } @Override public boolean equals(Object other) { if (other == null) { return false; } if (other == this) { return true; } if (!(other instanceof Parameter)) { return false; } final Parameter otherParam = (Parameter) other; return otherParam.getKey().equals(key) && otherParam.getValue().equals(value); } public String getKey() { return key; } public String getValue() { return value; } @Override public int hashCode() { return key.hashCode() + value.hashCode(); } @Override public int compareTo(Parameter parameter) { final int keyDiff = key.compareTo(parameter.getKey()); return keyDiff == 0 ? value.compareTo(parameter.getValue()) : keyDiff; } }