package com.walker.web.agent.impl; import com.walker.web.agent.BrowsCapField; import com.walker.web.agent.Capabilities; import java.util.Arrays; import java.util.Map; import static com.walker.web.agent.BrowsCapField.BROWSER; import static com.walker.web.agent.BrowsCapField.BROWSER_MAJOR_VERSION; import static com.walker.web.agent.BrowsCapField.BROWSER_TYPE; import static com.walker.web.agent.BrowsCapField.DEVICE_TYPE; import static com.walker.web.agent.BrowsCapField.PLATFORM; import static com.walker.web.agent.BrowsCapField.PLATFORM_VERSION; public class CapabilitiesImpl implements Capabilities{ private final String[] myValues; private final Mapper myMapper; CapabilitiesImpl(final String[] values, final Mapper mapper) { myValues = values; myMapper = mapper; } @Override public String getValue(final BrowsCapField field) { return myMapper.getValue(myValues, field); } /** * {@inheritDoc} */ @Override public String getBrowser() { return getValue(BROWSER); } /** * {@inheritDoc} */ @Override public String getBrowserType() { return getValue(BROWSER_TYPE); } /** * {@inheritDoc} */ @Override public String getBrowserMajorVersion() { return getValue(BROWSER_MAJOR_VERSION); } /** * {@inheritDoc} */ @Override public String getPlatform() { return getValue(PLATFORM); } /** * {@inheritDoc} */ @Override public String getPlatformVersion() { return getValue(PLATFORM_VERSION); } /** * {@inheritDoc} */ @Override public String getDeviceType() { return getValue(DEVICE_TYPE); } /** * {@inheritDoc} */ @Override public Map getValues() { return myMapper.getAll(myValues); } /** * {@inheritDoc} */ @Override public int hashCode() { return Arrays.hashCode(myValues); } /** * {@inheritDoc} */ @Override public boolean equals(final Object obj) { if (this == obj) { return true; } if (!(obj instanceof CapabilitiesImpl)) { return false; } final CapabilitiesImpl other = (CapabilitiesImpl) obj; if (myMapper != other.myMapper) { return false; } return Arrays.equals(myValues, other.myValues); } @Override public String toString() { return "CapabilitiesImpl [myValues=" + getValues() + "]"; } }