/* * Copyright 2012-2014 eBay Software Foundation and selendroid committers. * * Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except * in compliance with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software distributed under the License * is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express * or implied. See the License for the specific language governing permissions and limitations under * the License. */ package io.selendroid.server.internal; import java.util.HashMap; import java.util.Map; public class Capabilities { public static final String AUT = "aut"; public static final String LOCALE = "locale"; public static final String MAX_INSTANCES = "maxInstances"; public static final String NAME = "browserName"; public static final String SDK_VERSION = "sdkVersion"; public static Capabilities android(String app, String sdkVersion, String locale) { Capabilities res = new Capabilities(); res.setCapability(NAME, "selendroid"); res.setCapability(LOCALE, locale); res.setCapability(AUT, app); res.setCapability(SDK_VERSION, sdkVersion); res.setCapability(MAX_INSTANCES, 1); return res; } // public static Capabilities fromJSON(JSONObject capa) { // Capabilities desiredCapability = new Capabilities(); // desiredCapability.setName(capa.get(Capabilities.NAME).getAsString()); // desiredCapability.setMaxInstances(capa.get(Capabilities.MAX_INSTANCES).getAsInt()); // desiredCapability.setLocale(capa.get(Capabilities.LOCALE).getAsString()); // // desiredCapability.setSDKVersion(capa.get(Capabilities.SDK_VERSION).getAsString()); // desiredCapability.setAut(capa.get(Capabilities.AUT).getAsString()); // // return desiredCapability; // } private final Map<String, Object> raw = new HashMap<String, Object>(); public Capabilities() {} public Capabilities(Map<String, Object> from) { raw.putAll(from); } public String getApplication() { Object o = raw.get(AUT); return ((String) o); } public String getLocale() { Object o = raw.get(LOCALE); return ((String) o); } public String getMaxInstances() { Object o = raw.get(MAX_INSTANCES); return ((String) o); } public String getSDKVersion() { Object o = raw.get(SDK_VERSION); return ((String) o); } public void setCapability(String key, Object value) { raw.put(key, value); } public void setLocale(String locale) { raw.put(LOCALE, locale); } public void setMaxInstances(Integer maxInstances) { raw.put(MAX_INSTANCES, maxInstances); } public void setSDKVersion(String sdkVersion) { raw.put(SDK_VERSION, sdkVersion); } public void setName(String name) { raw.put(NAME, name); } public void setAut(String aut) { raw.put(AUT, aut); } /* * (non-Javadoc) * * @see java.lang.Object#hashCode() */ @Override public int hashCode() { final int prime = 31; int result = 1; result = prime * result + ((getLocale() == null) ? 0 : getLocale().hashCode()); result = prime * result + ((getSDKVersion() == null) ? 0 : getSDKVersion().hashCode()); return result; } /* * (non-Javadoc) * * @see java.lang.Object#equals(java.lang.Object) */ @Override public boolean equals(Object obj) { if (this == obj) return true; if (obj == null) return false; if (getClass() != obj.getClass()) return false; Capabilities other = (Capabilities) obj; if (getLocale() == null) { if (other.getLocale() != null) return false; } else if (!getLocale().equals(other.getLocale())) return false; if (getSDKVersion() == null) { if (other.getSDKVersion() != null) return false; } else if (!getSDKVersion().equals(other.getSDKVersion())) return false; return true; } public Map<String, Object> asMap() { return raw; } /* * (non-Javadoc) * * @see java.lang.Object#toString() */ @Override public String toString() { return "Selendroid Capabilities [raw=" + raw + ", getLocale()=" + getLocale() + ", getSDKVersion()=" + getSDKVersion() + "]"; } }