/*
Copyright 2007-2010 Selenium 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 org.openqa.selenium.interactions;

/**
 * Interface representing basic keyboard operations.
 * 
 */
public interface Keyboard {
  void sendKeys(CharSequence... keysToSend);

  void pressKey(CharSequence keyToPress);

  void releaseKey(CharSequence keyToRelease);
}

@@ -1,11 +1,55 @@
 /*%0A
+Copyright 2013 Software Freedom Conservancy%0A
 Copyrigh
@@ -606,17 +606,16 @@
 icense.%0A
- 
 */%0A%0Apack
@@ -688,16 +688,27 @@
 ng basic
+, low-level
  keyboar
@@ -724,133 +724,1757 @@
 ons.
-%0A * %0A */%0Apublic interface Keyboard %7B%0A  void sendKeys(CharSequence... keysToSend);%0A%0A  void pressKey(CharSequence keyToPress);%0A
+  It offers a set of low-level %E2%80%9Cdo as%0A * I say%E2%80%9D commands to allow precise emulation of user input.%0A */%0Apublic interface Keyboard %7B%0A%0A  /**%0A   * Sends keys to the keyboard representation in the browser.%0A   *%0A   * Special keys that are not text, represented as %7B@link org.openqa.selenium.Keys%7D are recognized%0A   * both as part of sequences of characters, or individually.%0A   *%0A   * Modifier keys are preserved throughout the lifetime of the send keys operation, and are%0A   * released upon this method returning.%0A   *%0A   * @param keysToSend one or more sequences of characters or key representations to type on the%0A   *                   keyboard%0A   */%0A  void sendKeys(CharSequence... keysToSend);%0A%0A  /**%0A   * Press a key on the keyboard that isn't text.  Please see %7B@link org.openqa.selenium.Keys%7D for%0A   * an exhaustive list of recognized pressable keys.%0A   *%0A   * If %3Ccode%3EkeyToPress%3C/code%3E is a sequence of characters, different driver implementations may%0A   * choose to throw an exception or to read only the first character in the sequence.%0A   *%0A   * @param keyToPress the key to press, if a sequence only the first character will be read or an%0A   *                   exception is thrown%0A   */%0A  void pressKey(CharSequence keyToPress);%0A%0A  /**%0A   * Release a key on the keyboard that isn't text.  Please see %7B@link org.openqa.selenium.Keys%7D for%0A   * an exhaustive list of recognized pressable keys.%0A   *%0A   * If %3Ccode%3EkeyToRelease%3C/code%3E is a sequence of characters, different driver implementations may%0A   * choose to throw an exception or to read only the first character in the sequence.%0A   *%0A   * @param keyToRelease the key to press, if a sequence only the first character will be read or an%0A   *                     exception is thrown%0A   */
 %0A  v
@@ -2516,10 +2516,11 @@
 lease);%0A
+%0A
 %7D%0A

Document new Keyboard interface