[
  {
    "path": ".gitignore",
    "content": "# Built application files\n*.apk\n*.ap_\n\n# Files for the Dalvik VM\n*.dex\n\n# Java class files\n*.class\n\n# Generated files\nbin/\ngen/\n\n# Gradle files\n.gradle/\nbuild/\n\n# Local configuration file (sdk path, etc)\nlocal.properties\n\n# Proguard folder generated by Eclipse\nproguard/\n\n# Log Files\n*.log\n\n# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm\n*.iml\n.idea/\n\n## Directory-based project format:\n\n# User-specific stuff:\n .idea/workspace.xml\n .idea/tasks.xml\n .idea/dictionaries\n\n# Sensitive or high-churn files:\n .idea/dataSources.ids\n .idea/dataSources.xml\n .idea/sqlDataSources.xml\n .idea/dynamic.xml\n .idea/uiDesigner.xml\n\n# Gradle:\n .idea/gradle.xml\n .idea/libraries\n\n# Mongo Explorer plugin:\n .idea/mongoSettings.xml\n\n## File-based project format:\n*.ipr\n*.iws\n\n.DS_Store\n"
  },
  {
    "path": ".travis.yml",
    "content": "language: android\n\nenv:\n  global:\n    - ADB_INSTALL_TIMEOUT=8\n\n  matrix:\n    - ANDROID_TARGET=15 ANDROID_ABI=default/armeabi-v7a\n    - ANDROID_TARGET=21 ANDROID_ABI=default/armeabi-v7a\n\nandroid:\n  components:\n  - platform-tools\n  - extra\n  - android-23\n  - build-tools-23.0.1\n\nbefore_script:\n  - echo no | android create avd --force -n test -t android-$ANDROID_TARGET --abi $ANDROID_ABI\n  - emulator -avd test -no-skin -no-audio -no-window &\n  - android-wait-for-emulator\n  - adb shell input keyevent 82 &\n\nbefore_install:\n  - chmod +x gradlew\n\nscript:\n  - ./gradlew clean assemble\n  - ./gradlew connectedAndroidTest\n"
  },
  {
    "path": "LICENSE",
    "content": "OneDrive SDK Android\n\nCopyright (c) 2015 Microsoft Corporation\n\nAll rights reserved.\n\nMIT License\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n"
  },
  {
    "path": "README.md",
    "content": "# OneDrive SDK for Android\n\n[ ![Download](https://api.bintray.com/packages/onedrive/Maven/onedrive-sdk-android/images/download.svg) ](https://bintray.com/onedrive/Maven/onedrive-sdk-android/_latestVersion)\n[![Build Status](https://travis-ci.org/OneDrive/onedrive-sdk-android.svg?branch=master)](https://travis-ci.org/OneDrive/onedrive-sdk-android)\n\nIntegrate the [OneDrive API](https://dev.onedrive.com/README.htm) into your Android application!\n\n## 1. Installation\n### 1.1 Install AAR via Gradle\nAdd the maven central repository to your projects build.gradle file then add a compile dependency for com.onedrive.sdk:onedrive-sdk-android:1.3+\n\n```gradle\nrepository {\n    jcenter()\n}\n\ndependency {\n    // Include the sdk as a dependency\n    compile ('com.onedrive.sdk:onedrive-sdk-android:1.3+') {\n        transitive = false\n    }\n\n    // Include the gson dependency\n    compile ('com.google.code.gson:gson:2.3.1')\n\n    // Include supported authentication methods for your application\n    compile ('com.microsoft.services.msa:msa-auth:0.8.+')\n    compile ('com.microsoft.aad:adal:1.1.+')\n}\n```\n\n## 2. Getting started\n\n### 2.1 Register your application\n\nRegister your application by following [these](https://dev.onedrive.com/app-registration.htm) steps.\n\n### 2.2 Set your application Id and scopes\n\nThe OneDrive SDK for Android comes with Authenticator objects that have already been initialized for OneDrive with Microsoft accounts and Azure Activity Directory accounts. Replace the current settings with the required settings to start authenticating.\n\nApplication that authenicate via MSA need to have a [scope of access](https://github.com/OneDrive/onedrive-api-docs/blob/master/auth/msa_oauth.md#authentication-scopes) defined to use features on OneDrive.  If your application is being used in for OneDrive for business AAD will need the [administrators consent](https://dev.onedrive.com/app-registration.htm) for your application to communicate with OneDrive.\n\nNote that your _msa-client-id_ and _adal-client-id_ should look be in GUID format like `00000000-0000-0000-0000-000000000000`. For legacy MSA application, the _msa-client-id_ should look like `0000000000000000`.\n\n```java\nfinal MSAAuthenticator msaAuthenticator = new MSAAuthenticator() {\n    @Override\n    public String getClientId() {\n        return \"<msa-client-id>\";\n    }\n\n    @Override\n    public String[] getScopes() {\n        return new String[] { \"onedrive.appfolder\" };\n    }\n}\n\nfinal ADALAuthenticator adalAuthenticator = new ADALAuthenticator() {\n    @Override\n    public String getClientId() {\n        return \"<adal-client-id>\";\n    }\n\n    @Override\n    protected String getRedirectUrl() {\n        return \"https://localhost\";\n    }\n}\n```\n\n### 2.3 Get a OneDriveClient object\n\nOnce you have set the correct application Id and scopes, you must get a **OneDriveClient** object to make requests against the service. The SDK will store the account information for you, but when a user logs on for the first time, it will invoke UI to get the user's account information.\n\n```java\nfinal IClientConfig oneDriveConfig = DefaultClientConfig.createWithAuthenticators(\n                                            msaAuthenticator,\n                                            adalAuthenticator);\n                                            \nfinal DefaultCallback<IOneDriveClient> callback = new DefaultCallback<IOneDriveClient>(activity) {\n            @Override\n            public void success(final IOneDriveClient result) {\n                // OneDrive client created successfully.\n            }\n\n            @Override\n            public void failure(final ClientException error) {\n                // Exception happened during creation.\n            }\n        };\n        \nfinal IOneDriveClient oneDriveClient = new OneDriveClient.Builder()\n                                            .fromConfig(oneDriveConfig)\n                                            .loginAndBuildClient(getActivity(), callback);\n\n```\n\n## 3. Make requests against the service\n\nOnce you have an OneDriveClient that is authenticated you can begin making calls against the service. The requests against the service look like our [REST API](https://dev.onedrive.com/README.htm).\n\n### Get the drive\n\nTo retrieve a user's drive:\n\n```java\noneDriveClient\n    .getDrive()\n    .buildRequest()\n    .get(new ICallback<Drive>() {\n  @Override\n  public void success(final Drive result) {\n    final String msg = \"Found Drive \" + result.id;\n    Toast.makeText(getActivity(), msg, Toast.LENGTH_SHORT)\n        .show();\n  }\n  ...\n  // Handle failure case\n});\n```\n\n### Get the root folder\n\nTo get a user's root folder of their drive:\n\n```java\noneDriveClient\n    .getDrive()\n    .getRoot()\n    .buildRequest()\n    .get(new ICallback<Item>() {\n  @Override\n  public void success(final Item result) {\n    final String msg = \"Found Root \" + result.id;\n    Toast.makeText(getActivity(), msg, Toast.LENGTH_SHORT)\n        .show();\n  }\n  ...\n  // Handle failure case\n});\n```\n\nFor a general overview of how the SDK is designed, see [overview](docs/overview.md).\n\n## 4. Documentation\n\nFor a more detailed documentation see:\n\n* [Overview](docs/overview.md)\n* [Authentication](docs/authentication.md)\n* [Extensibility](docs/extensibility.md)\n* [Items](docs/items.md)\n* [Collections](docs/collections.md)\n* [Errors](docs/errors.md)\n* [Contributions](docs/contributions.md)\n\n## 5. Issues\n\nFor known issues, see [issues](https://github.com/OneDrive/onedrive-sdk-android/issues).\n\n## 6. Contributions\n\nThe OneDrive SDK is open for contribution. Please read how to contribute to this project [here](docs/contributions.md).\n\n## 7. Supported Android Versions\nThe OneDrive SDK for Android library is supported at runtime for [Android API revision 15](http://source.android.com/source/build-numbers.html) and greater. To build the sdk you need to install Android API revision 23 or greater.\n\n## 8. License\n\n[License](LICENSE)\n\n## 9. Third Party Notices\n\n[Third Party Notices](THIRD PARTY NOTICES)\n\n## 10. Code of Conduct\n\nThis project has adopted the [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/). For more information see the [Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/) or contact [opencode@microsoft.com](mailto:opencode@microsoft.com) with any additional questions or comments.\n"
  },
  {
    "path": "THIRD PARTY NOTICES",
    "content": "This file is based on or incorporates material from the projects listed below\n(Third Party IP). The original copyright notice and the license under which\nMicrosoft received such Third Party IP, are set forth below. Such licenses and\nnotices are provided for informational purposes only. Microsoft licenses the\nThird Party IP to you under the licensing terms for the Microsoft product.\nMicrosoft reserves all other rights not expressly granted under this agreement,\nwhether by implication, estoppel or otherwise.\n\nGson\nCopyright 2008-2011 Google Inc.\n\nProvided for Informational Purposes Only\n\nApache 2.0 License\n\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\nthis file except in compliance with the License. You may obtain a copy of the\nLicense at http://www.apache.org/licenses/LICENSE-2.0\n\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF\nANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\nMERCHANTABLITY OR NON-INFRINGEMENT.\n\nSee the Apache Version 2.0 License for specific language governing permissions\nand limitations under the License.\n"
  },
  {
    "path": "build.gradle",
    "content": "// Top-level build file where you can add configuration options common to all sub-projects/modules.\n\nbuildscript {\n    repositories {\n        jcenter()\n    }\n    dependencies {\n        classpath 'com.android.tools.build:gradle:1.3.0'\n    }\n}\n\nallprojects {\n    repositories {\n        maven {\n            url project.nightliesUrl\n        }\n        jcenter()\n    }\n}\n"
  },
  {
    "path": "checkstyle.xml",
    "content": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<!DOCTYPE module PUBLIC \"-//Puppy Crawl//DTD Check Configuration 1.3//EN\" \"http://www.puppycrawl.com/dtds/configuration_1_3.dtd\">\n\n<!--\n    This configuration file was written by the eclipse-cs plugin configuration editor\n-->\n<!--\n    Checkstyle-Configuration: Default\n    Description: none\n-->\n<module name=\"Checker\">\n  <property name=\"severity\" value=\"warning\"/>\n  <module name=\"TreeWalker\">\n    <property name=\"tabWidth\" value=\"4\"/>\n    <module name=\"JavadocMethod\">\n      <property name=\"suppressLoadErrors\" value=\"true\"/>\n    </module>\n    <module name=\"JavadocType\"/>\n    <module name=\"JavadocVariable\"/>\n    <module name=\"ConstantName\"/>\n    <module name=\"LocalFinalVariableName\"/>\n    <module name=\"LocalVariableName\"/>\n    <module name=\"MemberName\">\n      <metadata name=\"net.sf.eclipsecs.core.comment\" value=\"only public starts without m\"/>\n      <property name=\"applyToProtected\" value=\"false\"/>\n      <property name=\"applyToPrivate\" value=\"false\"/>\n    </module>\n    <module name=\"MethodName\"/>\n    <module name=\"PackageName\"/>\n    <module name=\"ParameterName\"/>\n    <module name=\"StaticVariableName\">\n      <metadata name=\"net.sf.eclipsecs.core.comment\" value=\"starts with 's'\"/>\n      <property name=\"format\" value=\"^[s][a-zA-Z0-9]*$\"/>\n    </module>\n    <module name=\"TypeName\"/>\n    <module name=\"IllegalImport\"/>\n    <module name=\"RedundantImport\"/>\n    <module name=\"UnusedImports\"/>\n    <module name=\"LineLength\">\n      <property name=\"severity\" value=\"ignore\"/>\n      <metadata name=\"net.sf.eclipsecs.core.lastEnabledSeverity\" value=\"inherit\"/>\n    </module>\n    <module name=\"EmptyForIteratorPad\"/>\n    <module name=\"MethodParamPad\"/>\n    <module name=\"NoWhitespaceBefore\"/>\n    <module name=\"OperatorWrap\"/>\n    <module name=\"ParenPad\"/>\n    <module name=\"TypecastParenPad\"/>\n    <module name=\"WhitespaceAfter\">\n      <property name=\"tokens\" value=\"COMMA,SEMI\"/>\n    </module>\n    <module name=\"WhitespaceAround\"/>\n    <module name=\"ModifierOrder\"/>\n    <module name=\"RedundantModifier\"/>\n    <module name=\"AvoidNestedBlocks\"/>\n    <module name=\"EmptyBlock\"/>\n    <module name=\"LeftCurly\"/>\n    <module name=\"NeedBraces\"/>\n    <module name=\"RightCurly\"/>\n    <module name=\"AvoidInlineConditionals\"/>\n    <module name=\"EmptyStatement\"/>\n    <module name=\"EqualsHashCode\"/>\n    <module name=\"HiddenField\"/>\n    <module name=\"IllegalInstantiation\"/>\n    <module name=\"InnerAssignment\"/>\n    <module name=\"MagicNumber\"/>\n    <module name=\"MissingSwitchDefault\"/>\n    <module name=\"SimplifyBooleanExpression\"/>\n    <module name=\"SimplifyBooleanReturn\"/>\n    <module name=\"DesignForExtension\">\n      <property name=\"severity\" value=\"ignore\"/>\n      <metadata name=\"net.sf.eclipsecs.core.lastEnabledSeverity\" value=\"inherit\"/>\n    </module>\n    <module name=\"FinalClass\"/>\n    <module name=\"HideUtilityClassConstructor\"/>\n    <module name=\"InterfaceIsType\"/>\n    <module name=\"VisibilityModifier\"/>\n    <module name=\"ArrayTypeStyle\"/>\n    <module name=\"TodoComment\">\n      <property name=\"severity\" value=\"ignore\"/>\n      <metadata name=\"net.sf.eclipsecs.core.lastEnabledSeverity\" value=\"inherit\"/>\n    </module>\n    <module name=\"UpperEll\"/>\n    <module name=\"MemberName\">\n      <metadata name=\"net.sf.eclipsecs.core.comment\" value=\"non public members should start with m\"/>\n      <property name=\"applyToPublic\" value=\"false\"/>\n      <property name=\"format\" value=\"^[m][a-zA-Z0-9]*$\"/>\n    </module>\n    <module name=\"LineLength\">\n      <property name=\"max\" value=\"120\"/>\n    </module>\n    <module name=\"NoWhitespaceAfter\"/>\n    <module name=\"JavadocStyle\">\n      <property name=\"checkEmptyJavadoc\" value=\"true\"/>\n      <property name=\"checkFirstSentence\" value=\"false\"/>\n    </module>\n    <module name=\"FinalParameters\">\n      <property name=\"tokens\" value=\"METHOD_DEF,CTOR_DEF,LITERAL_CATCH\"/>\n    </module>\n  </module>\n  <module name=\"NewlineAtEndOfFile\">\n    <property name=\"severity\" value=\"ignore\"/>\n    <metadata name=\"net.sf.eclipsecs.core.lastEnabledSeverity\" value=\"inherit\"/>\n  </module>\n  <module name=\"Translation\"/>\n  <module name=\"FileTabCharacter\">\n    <property name=\"severity\" value=\"ignore\"/>\n    <metadata name=\"net.sf.eclipsecs.core.lastEnabledSeverity\" value=\"inherit\"/>\n  </module>\n  <module name=\"RegexpSingleline\">\n    <property name=\"severity\" value=\"ignore\"/>\n    <property name=\"format\" value=\"\\s+$\"/>\n    <property name=\"message\" value=\"Line has trailing spaces.\"/>\n    <metadata name=\"net.sf.eclipsecs.core.lastEnabledSeverity\" value=\"inherit\"/>\n  </module>\n  <module name=\"Header\">\n    <property name=\"header\" value=\"// Copyright 2014 Microsoft Corporation\"/>\n    <property name=\"ignoreLines\" value=\"1\"/>\n  </module>\n</module>\n"
  },
  {
    "path": "docs/authentication.md",
    "content": "# Authenticating with the OneDrive SDK for Android\nThe OneDrive SDK requires that all requests are authenticated with OneDrive. This SDK is built to make it easy to incorporate any application with the authentication provider.\n\n## Authenticators\n\nAuthenticators are provided with the SDK to handle authentication settings.\n\n### Disambiguation Authenticator\nIn order to support as many different users as possible with a single application, we supplied a disambiguation authenticator to provide a user experience that determines which authenticator that user requires. This is the recommended way to distribute your application.\n\n### MSA Authenticator\nUse the **MSAAuthenticator** object for any account that needs to authenticate with the Microsoft account service.\n\nOnce you have your client id, you need to determine the appropriate scopes of authority that your application will need. For a complete list of scopes, consult the OAuth [documentation](https://dev.onedrive.com/auth/msa_oauth.htm#authentication-scopes).\n\n* For applications that need to store data, use the __onedrive.appfolder__ scope and interact with /drive/special/approot.\n* For applications that need to read only the contents of user's OneDrive, request the __onedrive.readonly__ scope.\n\nYour client id should be formatted like `0000000000000000`.\n```java\nfinal MSAAuthenticator msaAuthenticator = new MSAAuthenticator {\n    @Override\n    public String getClientId() {\n        return \"0000000000000000\";\n    }\n\n    @Override\n    public String[] getScopes() {\n        return new String[] { \"onedrive.appfolder\" };\n    }\n}\n```\n\n### ADAL Authenticator\nUse the **ADALAuthenticator** object for accounts that are hosted on Azure Active Directory.\n\nAfter you've [configured](https://dev.onedrive.com/auth/aad_oauth.htm) your service to allow access to an application for OneDrive, you will need create an **ADALAuthenticator** object with the client id and the redirect url in your application. Your client id should be formatted like `00000000-0000-0000-0000-000000000000`.\n\n```java\nfinal ADALAuthenticator adalAuthenticator = new ADALAuthenticator {\n    @Override\n    public String getClientId() {\n        return \"<client_id>\";\n    }\n\n    @Override\n    protected String getRedirectUrl() {\n        return \"https://localhost\";\n    }\n}\n```\n\n## Using Authenticators in your application\nCreating the **OneDriveClient** object enables the silent or interactive login appropriately, but the only functionality that needs be implemented is the sign out user experience. All the provided authenticators will clear preserved tokens after a sign out has completed, ensuring your application has a clean state.\n\n```java\noneDriveClient.getAuthenticator().logout(new ICallback<Void>() {\n    @Override\n    public void success(final Void result) {\n        // Handle any state change your application needs to undergo\n    }\n    ...\n    // Handle failure\n```\n"
  },
  {
    "path": "docs/collections.md",
    "content": "# Collections in the OneDrive SDK for Android\nThe OneDrive SDK for Android allows you to work with item collections in OneDrive.\n\nCollection information is contained within a `BaseCollectionPage` object, to which there are three core aspects:\n* `getCurrentPage` The list of items within the current page.\n* `getNextPage` The next page request builder. `null` if there are no additional pages.\n* `getRawObject` The json that represents this page response, containing additional data.\n\n## Getting a children collection by expansion\nThere are several navigation properties within the OneDrive service which can be expanded and returned in collections pages.  In order to access these properties, the service request needs to call `expand(...)` once the request is issued.\n\n#### Parameters\n\n|Name|Description|\n|----|-----------|\n|_itemId_|The item id of the item that has the children.|\n|_propertyToExpand_|The name of the navigation property to expand.|\n|_callback_|The callback when the get call is returned.|\n\n```java\nfinal String itemId = \"0000000000000000000000\";\nfinal String propertyToExpand = \"children\";\nfinal ICallback<Item> callback = new ICallback<Item> {\n    @Override\n    public void success(final Item result) {\n        final IItemCollectionPage page = result.children;\n        Toast.makeText(getActivity(), \"Got children\", Toast.LENGTH_LONG).show();\n    }\n    ...\n    // Handle failure\n}\n\noneDriveClient\n    .getDrive()\n    .getItems(itemId)\n    .buildRequest()\n    .expand(propertyToExpand)\n    .get(callback);\n```\n\n## Getting a children collection by request\n\nYou can reference navigation properties directly by using the `getChildren()` function within the item's request builder.\n\n#### Parameters\n\n|Name|Description|\n|----|-----------|\n|_itemId_|The item id of the item that has the children.|\n|_callback_|The callback when the get call is returned.|\n\n```java\nfinal String itemId = \"0000000000000000000000\";\nfinal ICallback<IItemCollectionPage> callback = new ICallback<IItemCollectionPage> {\n    @Override\n    public void success(final IItemCollectionPage result) {\n        Toast.makeText(getActivity(), \"Got children\", Toast.LENGTH_LONG).show();\n    }\n    ...\n    // Handle failure\n}\n\noneDriveClient\n    .getDrive()\n    .getItems(itemId)\n    .getChildren()\n    .buildRequest()\n    .get(callback);\n```\n\n## Getting the next page\nWhen getting a collection response, the `getNextPage()` function will return the null if there are no more pages, or the request builder to get the next page.  By using these request builders you can retrieve all of the items under a collection no matter the size.\n\n|Name|Description|\n|----|-----------|\n|**itemId**|The item id of the item that has the children|\n|**callback**|The callback when the get call is returned|\n\n\n```java\nfinal String itemId = \"0000000000000000000000\";\nfinal ICallback<IItemCollectionPage> callback = new ICallback<IItemCollectionPage> {\n    @Override\n    public void success(final IItemCollectionPage result) {\n        // If there was more pages retrieve them too\n        if (result.getNextPage() != null) {\n            result.getNextPage()\n                  .buildRequest()\n                  .get(new ICallback<IItemCollectionPage> ...);\n        }\n        Toast.makeText(getActivity(), \"Got children\", Toast.LENGTH_LONG).show();\n    }\n    ...\n    // Handle failure\n}\n\noneDriveClient\n    .getDrive()\n    .getItems(itemId)\n    .getChildren()\n    .buildRequest()\n    .get(callback);\n```\n\n## Create a folder\n\nYou can create a folder within an item collection by using the request builders `getDrive`, `getItems`, and `getChildren` with the `create` method.\n\n#### Parameters\n\n|Name|Description|\n|----|-----------|\n|_folderToCreate_|The folder to create.|\n|_parentId_|The item id for the parent item.|\n|_callback_|The callback when the folder has been created.|\n\n```java\nfinal String parentId = \"0000000000000000000000\";\nfinal Item folderToCreate = new Item();\nfolderToCreate.name = \"NewFolder\";\nfolderToCreate.folder = new Folder();\n\nfinal ICallback<Item> callback = new ICallback<Item> {\n    @Override\n    public void success(final Item result) {\n        Toast.makeText(getActivity(), \"Created Folder\", Toast.LENGTH_LONG).show();\n    }\n    ...\n    // Handle failure\n}\n\noneDriveClient\n    .getDrive()\n    .getItems(parentId)\n    .getChildren()\n    .buildRequest()\n    .create(folderToCreate, callback);\n```\n"
  },
  {
    "path": "docs/contributions.md",
    "content": "# Contributing to the OneDrive SDK for Android\n\nThe OneDrive SDK is avaliable for all manner of contribution. There are a couple of different recommended paths to get contributions into the released version of this SDK.\n\n__NOTE__ A signed a contribution license agreement is required for all contributions, and is checked automatically on new pull requests. Please read and sign the agreement https://cla.microsoft.com/ before starting any work for this repository.\n\n## File issues\n\nThe best way to get started with a contribution is to start a dialog with the owners of this repository. Sometimes features will be under development or out of scope for this SDK and it's best to check before starting work on contribution.\n\n## Submit pull requests for trivial changes\n\nIf you are making a change that does not affect the interface components and does not affect other downstream callers, feel free to make a pull request against the __master__ branch.  The master branch will be updated frequently, and the gradle dependency will be kept closely inline with it.\n\nRevisions of this nature will result in a 0.0.X change of the version number.\n\n## Submit pull requests for features\n\nIf major functionality is being added, or there will need to be gestation time for a change, it should be submitted against the __feature__ branch.\n\nRevisions of this nature will result in a 0.X.X change of the version number.\n"
  },
  {
    "path": "docs/errors.md",
    "content": "# Handling errors in the OneDrive SDK for Android\n\nErrors in the OneDrive SDK for Android behave just like errors returned from the service. You can read more about them [here](https://github.com/OneDrive/onedrive-api-docs/blob/master/misc/errors.md).\n\nAnytime you make a request against the service there is the potential for an error. You will see that all requests to the service can return an error. The errors are returned as `ClientException`, with possible subclasses `ClientAuthenticationException` and `OneDriveServiceException` which your application will want to handle.\n\n## Checking the error\n\nThere are a few different types of errors that can occur during a network call. We have provided some helper methods to make it easy to check what kind of error occurred. These error types are defined in [OneDriveErrorCodes.java](../OneDriveSDK/src/main/java/com/onedrive/sdk/core/OneDriveErrorCodes.java).\n\n```java\ntry {\n    // ...\n} catch (final ClientExcepion ex) {\n    if (ex.isError(OneDriveErrorCodes.AuthenticationCancelled)) {\n        // Handle the specific authentication cancelled case\n    }\n    // Handle the authentication exception\n}\n```\n\n### Client authentication exceptions\n\nThese exceptions represent errors during the authentication flow. The two exceptions are `AuthenticationCancelled` for interactive user cancelation and `AuthenticationFailure` for a problem with the underlying authentication system.\n\n### OneDrive service exceptions\n\nThese are exceptions from the OneDrive service, that contain extra error diagnostic information. The standard error codes should give your application more than enough detail to message users. However, there is useful debug information contained in the response.\n\n__Note__: Sometimes you might see a `OneDriveFatalServiceException`. If you do, please open a [new issue](https://github.com/OneDrive/onedrive-sdk-android/issues/new) so that we can fix it.\n"
  },
  {
    "path": "docs/extensibility.md",
    "content": "# Extensibility with the OneDrive SDK for Android\n\nThe OneDrive SDKs are built to allow for customization and enhancement over time while maintaining backwards compatibility.\n\n## Contribution\n\nContributions are welcome on the OneDrive SDKs. To contribute, please open a [new issue](https://github.com/OneDrive/onedrive-sdk-android/issues/new) to start a dialog with the team about what you are creating.\n\n__Note__ There is an area of the SDK which is not available for direct contribution, which is anything under the com.onedrive.sdk.generated package. These components are built using automated tools and will be overwritten. As this tooling matures this process will be open to contributions as well.\n\n## Minor modification\n\nOneDrive's service is described in accordance with OData. This service description is [available](https://api.onedrive.com/v1.0/$metadata) and continuously updated as new features become available. However, the OneDrive $metadata description does not encompass all features and functionality. To aid with elements of the service that are not described here, the `com.onedrive.sdk.extensions` package was created. The files are all generated automatically but will not be overwritten. Some functionality is already exposed in this manner, and here is example using the `OneDriveClient`.\n\nThe class hierarchy:\n\n```java\nclass OneDriveClient extends BaseOneDriveClient implements IOneDriveClient {}\nclass BaseOneDriveClient extends BaseClient implements IBaseOneDriveClient {}\nclass BaseClient implements IBaseClient {}\n```\nThe companion interface hierarchy:\n\n```java\ninterface IOneDriveClient extends IBaseOneDriveClient {}\ninterface IBaseOneDriveClient extends IBaseClient {}\ninterface IBaseClient {}\n```\n\n- The `BaseClient` layer represents the under-pinnings of an OData client. These objects are open for modification and additions.\n- The `BaseOneDriveClient` layer is supplied by the OData $metadata description, and is automatically populated with the features described therein.\n- The `OneDriveClient` layer is where extra functionality above and beyond the $metadata description can be placed.\n\nThe OneDrive team keeps the interfaces up to date to detect backwards compatibility breaking changes.\n\nMost classes generated at this 'top tier' will be empty to support future modification, and OneDriveClient already has been modified to support the 'drive()' behavior.  'drive' is exposed to shorten the `{service-root}/drives/{default-drive-id}` into `{service-root}/drive`.\n\n## Major dependencies\n\nDuring the construction of the `IOneDriveClient` object an `IClientConfig` is used. This configuration determines how the internal functionality of the SDK is supplied. By creating a new  `IClientConfig` implementation the components can be modified or wholly replaced to best meet the needs of the caller.\n\n### IHttpProvider\n\nProvides the http fabric that is used for all network requests within the SDK.\n\n### IAuthenticator\n\nProvides the facilities to authenticate users and supply an authentication token for requests to the service.\n\n### ISerializer\n\nSerializes and deserializes the structured object from the service.\n\n### IExecutors\n\nHandles executing tasks for the SDK on foreground and background threads.\n\n### ILogger\n\nThe logging system used by the SDK to report debug and error messages for debugging purposes.\n"
  },
  {
    "path": "docs/items.md",
    "content": "# Items in the OneDrive SDK for Android\nItems in the OneDrive SDK behave just like items through the OneDrive API. All actions on items described in the OneDrive API are available through the SDK. For more information, see the [Items Reference](https://dev.onedrive.com/README.htm#item-resource).\n\nThe examples in this topic all use a previously created `oneDriveClient` object.\n\n* [Get an item](#get-an-item)\n* [Delete an item](#delete-an-item)\n* [Upload a file](#upload-a-file)\n* [Download a file](#download-a-file)\n* [Move an item](#move-an-item)\n* [Rename an item](#rename-an-item)\n* [Copy an item](#copy-an-item)\n* [Upload a large file](#upload-a-large-file)\n\n## Get an item\n\nTo get an item, you construct request builders `getDrive` and `getItems`, you call `buildRequest` to build the request, and then make a final call to `get`.\n\n#### Parameters\n\n|Name|Description|\n|----|-----------|\n|_itemId_|The item id of the item to retrieve.|\n|_callback_|The callback for when the get call is returned.|\n\n#### Example\n\n```java\n//Enter the itemId here.\nfinal String itemId = \"0000000000000000000000\";\nfinal ICallback<Item> callback = new ICallback<Item>() {\n    @Override\n    public void success(final Item result) {\n        Toast.makeText(getActivity(), \"Got item\", Toast.LENGTH_LONG).show();\n    }\n    ...\n    // Handle failure\n}\n\noneDriveClient\n    .getDrive()\n    .getItems(itemId)\n    .buildRequest()\n    .get(callback);\n```\n\n## Delete an item\n\nTo delete an item, you construct request builders to get the item you want to delete, and then call `delete` on the item.\n\n#### Parameters\n\n|Name|Description|\n|--------------|-----------|\n|_itemId_|The item id of the item to delete.|\n|_callback_|The callback for when the get call is completed.|\n\n#### Example\n\n```java\nfinal String itemId = \"0000000000000000000000\";\nfinal ICallback<Void> callback = new ICallback<Void>() {\n    @Override\n    public void success(final Void ignored) {\n        Toast.makeText(getActivity(), \"Deleted item\", Toast.LENGTH_LONG).show();\n    }\n    ...\n    // Handle failure\n}\n\noneDriveClient\n    .getDrive()\n    .getItems(itemId)\n    .buildRequest()\n    .delete(callback);\n```\n\n## Upload a file\n\nTo upload a file, you chain together build requests in this order: `getDrive`, `getItems`, `getChildren`, `byID`, and then `getContent`. You then call `buildRequest` to build the requests, and finally, `put` to complete the upload.\n\n#### Parameters\n\n|Name|Description|\n|----|-----------|\n|_filename_|The name of the file to upload.|\n|_fileContents_|The byte array (byte[]) that contains the file contents.|\n|_callback_|The callback when the file is uploaded, as well as progress reported.|\n\n#### Example\n\n```java\nfinal String filename = \"The Filename.txt\";\nfinal byte[] fileContents = new byte[] { /* The File contents to upload */};\nfinal IProgressCallback<Item> callback = new IProgressCallback<Item>() {\n    public void success(final Item item) {\n        Toast.makeText(getActivity(), \"Item uploaded\", Toast.LENGTH_LONG).show();\n    }\n    ...\n    // Handle progress\n    // Handle failure\n}\n\noneDriveClient\n    .getDrive()\n    .getItems(ItemId)\n    .getChildren()\n    .byId(filename)\n    .getContent()\n    .buildRequest()\n    .put(fileContents, callback);\n```\n\n## Download a file\n\nTo download a file, you construct the request builders `getDrive`, `getItems`, and `getContent`, and then call `buildRequest` to build the request. Finally, you call `get` to retrieve the item to download.\n\n#### Parameters\n\n|Name|Description|\n|----|-----------|\n|_itemId_|The item id of the item to download.|\n\n#### Example\n\n```java\nfinal String itemId = \"0000000000000000000000\";\n\nfinal InputStream inputStream = oneDriveClient\n    .getDrive()\n    .getItems(itemId)\n    .getContent()\n    .buildRequest()\n    .get();\n// Use the input stream\n// Close the input stream\n\n```\n\n## Move an item\n\nTo move an item, construct request builders to get the item with `getItem`, and then call `update` with the new location.\n\n#### Parameters\n\n|Name|Description|\n|----|-----------|\n|_newParentId_|The new parent's item id.|\n|_itemId_|The item id of the item to move.|\n|_newLocation_|The specific aspects of the item to update.|\n|_callback_|The callback when the item update has returned.|\n\n#### Example\n\n```java\nfinal String newParentId = \"0000000000000000000000\";\nfinal String itemId = \"0000000000000000000000\";\nfinal Item newLocation = new Item();\nnewLocation.parentReference = new ItemReference();\nnewLocation.parentReference.id = newParentId;\n\nfinal ICallback<Item> callback = new ICallback<Item>() {\n    @Override\n    public void success(final Item result) {\n        Toast.makeText(getActivity(), \"Update the item location\", Toast.LENGTH_LONG).show();\n    }\n    ...\n    // Handle failure\n}\n\noneDriveClient\n    .getDrive()\n    .getItems(itemId)\n    .buildRequest()\n    .update(newLocation, callback);\n```\n\n## Rename an item\n\nLike all other operations, you rename an item by constructing request builders `getDrive` and `getItems` on the item, and then calling `update` with the new name.\n\n#### Parameters\n\n|Name|Description|\n|----|-----------|\n|_newItemName_|The new name for the item.|\n|_itemId_|The item id of the item to rename.|\n|_newName_|The specific aspects of the item to update.|\n|_callback_|The callback when the item update has returned.|\n\n#### Example\n\n```java\nfinal String newItemName = \"My File.txt\";\nfinal String itemId = \"0000000000000000000000\";\nfinal Item newName = new Item();\nnewName.name = newItemName;\n\nfinal ICallback<Item> callback = new ICallback<Item>() {\n    @Override\n    public void success(final Item result) {\n        Toast.makeText(getActivity(), \"Update the item name\", Toast.LENGTH_LONG).show();\n    }\n    ...\n    // Handle failure\n}\n\noneDriveClient\n    .getDrive()\n    .getItems(itemId)\n    .buildRequest()\n    .update(newName, callback);\n```\n\n## Copy an item\n\nCopy requests are processed asynchronously on the service, so the pattern is slightly different, and can require multiple sets of requests.\n\n### Starting a copy request\n\nYou create a copy request for an item by constructing request builders `getDrive`, `getItems` and 'getCopy' on the item, and then calling `create` to start the request.\n\n#### Parameters\n\n|Name|Description|\n|----|-----------|\n|_itemId_|The item id of the item to copy.|\n|_copiedItemName_|The name for the copied item.|\n|_parentId_|The parent's item id for the copied item.|\n|_callback_|The callback when the copy request has started.|\n\n#### Example\n\n```java\nfinal String itemId = \"0000000000000000000000\";\nfinal String copiedItemName = \"My File Copy.txt\"\nfinal String newParentId = \"0000000000000000000000\";\n\nfinal ItemReference parentReference = new ItemReference();\nparentReference.id = newParentId;\n\nfinal ICallback<AsyncMonitor<Item>> callback = new ICallback<AsyncMonitor<Item>>() {\n    @Override\n    public void success(final AsyncMonitor<Item> itemAsyncMonitor) {\n        Toast.makeText(getActivity(), \"Started the copy session\", Toast.LENGTH_LONG).show();\n    }\n    ...\n    // Handle failure\n};\n\noneDriveClient\n    .getDrive()\n    .getItems(itemId)\n    .getCopy(copiedItemName, parentReference)\n    .buildRequest()\n    .create(callback);\n```\n\n### Waiting for a copy request to finish\nThe result from the copy requests creation is a monitor that can be checked for status updates, return result of the operation, and automatically poll for the result.\n\nMost applications will want to get the result to the user as soon as possible via a polling approach, the following shows how to get the resulting item from with a process notifications.\n\n#### Parameters\n\n|Name|Description|\n|----|-----------|\n|_millisBetweenPoll_|The time in milliseconds between progress updates.|\n|_asyncMonitor_|The name for the copied item.|\n|_callback_|The callback when the copy request has finished and progressed.|\n\n#### Example\n\n```java\nfinal int millisBetweenPoll = 1000; // 1 second\nfinal AsyncMonitor<Item> asyncMonitor = ...;\n\nfinal IProgressCallback<Item> callback = new IProgressCallback<Item>() {\n    public void success(final Item item) {\n        Toast.makeText(getActivity(), \"Item copied!\", Toast.LENGTH_LONG).show();\n    }\n\n    public void progress(final int progress, final int progressMax) {\n        Toast.makeText(getActivity(), \"Item copy process \" + progress, Toast.LENGTH_SHORT).show();\n    }\n    ...\n    // Handle failure\n}\n\nasyncMonitor\n    .pollForResult(millisBetweenPoll, callback);\n\n```\n\n## Upload a large file\n\nUploading a large file to OneDrive needs create upload session and uploading bytes to the session url.\n\n#### Make create session request\n\nYou create a create session request for an item by constructing request builders `getDrive`, `getRoot`, `getItemWithPath`, `getCreateSession`, `buildRequest` on the item, and then calling `post` to start the create session request. The response is an upload session object which you call `createUploadProvider` of the object to create an upload provider which handles large file uploading.\n\n#### Parameters\n\n|Name|Description|\n|----|-----------|\n|_itemPath_|The path to the file.|\n|_chunkedUploadSessionDescriptor_| The chunked upload session descriptor.|\n|_oneDriveClient_|The one drive client.|\n|_fileStream_|The input file stream.|\n|_fileSize_|The size of the file.|\n|_uploadType_|The upload class type.|\n|_uploadOptions_|The upload options.|\n|_callback_|The upload callback.|\n|_chunkSize_|The chunk size for each upload chunk, default is 5MiB.|\n|_maxRetry_| The max retry times for each upload chunk, default is 3.|\n\n\n#### Example\n\n```java\nfinal String itemPath = \"documents/file to copy.txt\";\nfinal Option uploadOptions = new QueryOption(\"@name.conflictBehavior\", \"fail\");\nfinal int chunkSize = 640 * 1024; //must be the multiple of 320KiB\nfinal int maxRetry = 5;\n\nfinal IProgressCallback<Item> callback = new IProgressCallback<Item>() {\n    @Override\n    public void progress(long current, long max) {\n        dialog.setProgress((int) current);\n        dialog.setMax((int) max);\n\n    }\n\n    @Override\n    public void success(Item item) {dialog.dismiss();\n        Toast.makeText(getActivity(),\n                application\n                        .getString(R.string.upload_complete,\n                                item.name),\n                Toast.LENGTH_LONG).show();\n        refresh();\n    }\n\n    @Override\n    public void failure(ClientException error) {\n        dialog.dismiss();\n        if (error.isError(OneDriveErrorCodes.NameAlreadyExists)) {\n            Toast.makeText(getActivity(),\n                    R.string.upload_failed_name_conflict,\n                    Toast.LENGTH_LONG).show();\n        } else {\n            Toast.makeText(getActivity(),\n                    application\n                            .getString(R.string.upload_failed,\n                                    filename),\n                    Toast.LENGTH_LONG).show();\n        }\n    }\n}\n\noneDriveClient\n    .getDrive()\n    .getRoot()\n    .getItemWithPath(itemPath)\n    .getCreateSession(new ChunkedUploadSessionDescriptor())\n    .buildRequest()\n    .post()\n    .createUploadProvider(oneDriveClient, fileStream, fileSize, Item.class)\n    .upload(Collections.singletonList(uploadOptions),\n            callback,\n            chunkSize,\n            maxRetry);\n```\n"
  },
  {
    "path": "docs/overview.md",
    "content": "# Overview for the OneDrive SDK for Android\nThe OneDrive SDK for Android is designed to look just like the OneDrive API.\n\n## OneDriveClient\nA `OneDriveClient` is always associated with a authentication session. This can be created by using the **Builder** subclass of the `OneDriveClient` implementation, `loginAndBuildClient(..)`.  All requests use this object to send information to the service and it should be constructed once for your applications life cycle.\n\n## Resource model\nResources, like [items](/docs/items.md) or drives, are represented by `Item` and `Drive`, respectively. These objects contain properties that represent the properties of a resource. These objects can't make calls against the service-they are purely models.\n\nTo get the name of an item you address the `name` property. It is possible for any of these properties to be null at any time. To check if an item is a folder you address the `folder` property. If the item is a folder an `ODFolder` facet on that object will be returned, and it contains all of the properties described by the [folder](https://github.com/OneDrive/onedrive-api-docs/blob/master/facets/folder_facet.md) facet.\n\nSee [Resource model](https://github.com/onedrive/onedrive-api-docs/#resource-model) for more info.\n\nThe resources that are generated map to the json model described by the $metadata service document. There are items that might not be exposed because they expire very quickly or represent functionality that is not featured in this SDK as of yet. To access these fields use `getRawObject()` on the model items and access the specific properties that are not in the model.\n\n## Issuing requests\nTo make requests against the service, first build a request with **RequestBuilder** and then build it into a Request object, which is then sent against the service. This follows the URL scheme that the OneDrive API uses for all its resources.\n\n### Request builders\nTo generate requests you chain together calls on request builder objects. You get the first request builder from the `OneDriveClient` object. To get a drive, create a request builder by calling **OneDriveClient.getDrive**.\n\n|Task            | SDK               | URL                             |\n|:---------------|:-----------------:|:--------------------------------|\n|Get a drive     | `oneDriveClient.getDrive()` | GET api.onedrive.com/v1.0/drive/|\n\n`getDrive` will return an `IDriveRequestBuilder` object. From `getDrive`, you can continue to chain the requests to get everything else in the API, like an item.\n\n|Task            | SDK                                | URL                                       |\n|:---------------|:----------------------------------:|:------------------------------------------|\n|Get an item     | `oneDriveClient.getDrive().getItems(\"1234\")` | GET api.onedrive.com/v1.0/drive/items/1234|\n\n\nHere, `oneDriveClient.getDrive()` returns an `IDriveRequestBuilder` that contains a method `getItems(...)` to get an `IItemRequestBuilder`.\n\nSimilarly, to get thumbnails, you chain together the request builders `getThumbnails` and `getItems`.\n\n|Task            | SDK                            | URL                      |\n|----------------|--------------------------------|--------------------------|\n| Get thumbnails | `... .getItems(\"1234\").getThumbnails()` | .../items/1234/thumbnails|\n\n\nHere, `oneDriveClient.getDrive().getItems(\"1234\")` returns an `IItemRequestBuilder` that contains the method `getThumbnails()`.\n\nThis returns a collection of [thumbnail sets](https://github.com/OneDrive/onedrive-api-docs/blob/master/resources/thumbnailSet.md). To index the collection directly you can call:\n\n|Task               | SDK                                 | URL                        |\n|-------------------|-------------------------------------|----------------------------|\n| Get thumbnail Set |  `... .getItems(\"1234\").getThumbnails(\"0\")` | ...items/1234/thumbnails/0 |\n\nTo return a thumbnail set, and to get a specific [thumbnail](https://github.com/OneDrive/onedrive-api-docs/blob/master/resources/thumbnail.md), you can add the name of the thumbnail to the URL like this:\n\n|Task             | SDK                         | URL                    |\n|-----------------|-----------------------------|------------------------|\n| Get a thumbnail | `... .getThumbnails(\"0\").getThumbnailSize(\"small\")` | .../thumbnails/0/small |\n\n### Requests\nOnce you have constructed the request you call the `buildRequest()` method on the request builder. This will construct the request object needed to make calls against the service.\n\nFor an item you call:\n\n```java\nfinal IItemRequest itemRequest = OneDriveClient.getDrive().getItems(\"1234\").buildRequest();\n```\n\nAll request builders have a `buildRequest()` method that can generate a `IHttpRequest` object. Request objects may have different methods on them depending on the type of request. To get an item you call:\n\n```java\nitemRequest.get(new ICallback<Item>{\n    @Override\n    public void success(final Item result) {\n        // This will make the network request and return the item\n    }\n    @Override\n    public void failure(final ClientException ex) {\n        // or an error if there was one\n    }\n});\n```\n\nYou could also chain this together with call above :\n```java\n\nOneDriveClient.getDrive().getItems(\"1234\").buildRequest().get(new ICallback<Item>{\n    @Override\n    public void success(final Item result) {\n        // This will make the network request and return the item\n    }\n    @Override\n    public void failure(final ClientException ex) {\n        // or an error if there was one\n    }\n});\n```\n\nSee [items](/docs/items.md) for more info on items and [errors](/docs/errors.md) for more info on errors.\n\n## Query options\n\nIf you only want to retrieve certain properties of a resource, you use `select` specify them. Here's how to get only the names and ids of an item:\n\n```java\noneDriveClient.getDrive().getItems(\"1234\").buildRequest().select(\"name,id\").get(new ICallback<Item>() {\n    @Override\n    public void success(final Item result) {\n        // The item object will have null properties for everything except name and id\n    }\n});\n```\n\nTo expand certain properties on resources you can call a similar `expand` method, like this:\n\n```java\noneDriveClient.getDrive().getItems(\"1234\").buildRequest().expand(\"thumbnails\").get(new ICallback<Item>() {\n    @Override\n    public void success(final Item result) {\n        // the item object will have collection page of thumbnails for its thumbnails property if thumbnails exist.\n    }\n});\n```\n\n## Additional request options\n\nIf you need to include more specific behavior during a request, there are `Option` objects that you can add when calling `buildRequest`.  See a detailed list of query parameters in the [OneDrive API optional query parameters](https://dev.onedrive.com/odata/optional-query-parameters.htm) documentation.\n\nHere's an example of how to add an additional query parameter to sort the returned collection page results by size:\n\n```java\nfinal List<Option> options = new LinkedList<Option>();\noptions.add(new QueryOption(\"orderby\", \"size\"));\noneDriveClient\n    .getDrive()\n    .getRoot()\n    .getChildren()\n    .buildRequest(options)\n    .get(new ICallback<IItemCollectionPage>() {\n        @Override\n        public void success(final IItemCollectionPage iItemCollectionPage) {\n            // Handle success of this page and its getNextPage() results will have their contents sorted by size\n        }\n        @Override\n        public void failure(final ClientException ex) {\n            // Handle failure\n        }\n    });\n```\n\n Here's how to add an additional HTTP header to request only a specific set of bytes from a file (partial download):\n \n ```java\nfinal String myItemId = \"1234\"; // The id of the item to download\nfinal List<Option> options = new LinkedList<Option>();\noptions.add(new HeaderOption(\"Range\", \"bytes=0-128\"));\noneDriveClient()\n    .getDrive()\n    .getItems(myItemId)\n    .getContent()\n    .buildRequest(options)\n    .get(new ICallback<InputStream>() {\n        @Override\n        public void success(final InputStream inputStream) {\n            // Handle success of this partial range of the file\n        }\n        @Override\n        public void failure(final ClientException ex) {\n            // Handle failure\n        }\n    });\n ```\n"
  },
  {
    "path": "gradle/wrapper/gradle-wrapper.properties",
    "content": "#Wed Apr 10 15:27:10 PDT 2013\ndistributionBase=GRADLE_USER_HOME\ndistributionPath=wrapper/dists\nzipStoreBase=GRADLE_USER_HOME\nzipStorePath=wrapper/dists\ndistributionUrl=https\\://services.gradle.org/distributions/gradle-2.8-all.zip\n"
  },
  {
    "path": "gradle.properties",
    "content": "# Project-wide Gradle settings.\n\n# IDE (e.g. Android Studio) users:\n# Settings specified in this file will override any Gradle settings\n# configured through the IDE.\n\n# For more details on how to configure your build environment visit\n# http://www.gradle.org/docs/current/userguide/build_environment.html\n\n# Specifies the JVM arguments used for the daemon process.\n# The setting is particularly useful for tweaking memory settings.\n# Default value: -Xmx10248m -XX:MaxPermSize=256m\n# org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8\n\n# When configured, Gradle will run in incubating parallel mode.\n# This option should only be used with decoupled projects. More details, visit\n# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects\n# org.gradle.parallel=true\norg.gradle.jvmargs=-XX:MaxPermSize=512m\n\nmavenRepoUrl         = https://api.bintray.com/maven/onedrive/Maven/onedrive-sdk-android\nmavenGroupId         = com.onedrive.sdk\nmavenArtifactId      = onedrive-sdk-android\nmavenMajorVersion    = 1\nmavenMinorVersion    = 3\nmavenPatchVersion    = 1\nnightliesUrl         = http://dl.bintray.com/onedrive/Maven\n"
  },
  {
    "path": "gradlew",
    "content": "#!/usr/bin/env bash\n\n##############################################################################\n##\n##  Gradle start up script for UN*X\n##\n##############################################################################\n\n# Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.\nDEFAULT_JVM_OPTS=\"\"\n\nAPP_NAME=\"Gradle\"\nAPP_BASE_NAME=`basename \"$0\"`\n\n# Use the maximum available, or set MAX_FD != -1 to use that value.\nMAX_FD=\"maximum\"\n\nwarn ( ) {\n    echo \"$*\"\n}\n\ndie ( ) {\n    echo\n    echo \"$*\"\n    echo\n    exit 1\n}\n\n# OS specific support (must be 'true' or 'false').\ncygwin=false\nmsys=false\ndarwin=false\ncase \"`uname`\" in\n  CYGWIN* )\n    cygwin=true\n    ;;\n  Darwin* )\n    darwin=true\n    ;;\n  MINGW* )\n    msys=true\n    ;;\nesac\n\n# For Cygwin, ensure paths are in UNIX format before anything is touched.\nif $cygwin ; then\n    [ -n \"$JAVA_HOME\" ] && JAVA_HOME=`cygpath --unix \"$JAVA_HOME\"`\nfi\n\n# Attempt to set APP_HOME\n# Resolve links: $0 may be a link\nPRG=\"$0\"\n# Need this for relative symlinks.\nwhile [ -h \"$PRG\" ] ; do\n    ls=`ls -ld \"$PRG\"`\n    link=`expr \"$ls\" : '.*-> \\(.*\\)$'`\n    if expr \"$link\" : '/.*' > /dev/null; then\n        PRG=\"$link\"\n    else\n        PRG=`dirname \"$PRG\"`\"/$link\"\n    fi\ndone\nSAVED=\"`pwd`\"\ncd \"`dirname \\\"$PRG\\\"`/\" >&-\nAPP_HOME=\"`pwd -P`\"\ncd \"$SAVED\" >&-\n\nCLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar\n\n# Determine the Java command to use to start the JVM.\nif [ -n \"$JAVA_HOME\" ] ; then\n    if [ -x \"$JAVA_HOME/jre/sh/java\" ] ; then\n        # IBM's JDK on AIX uses strange locations for the executables\n        JAVACMD=\"$JAVA_HOME/jre/sh/java\"\n    else\n        JAVACMD=\"$JAVA_HOME/bin/java\"\n    fi\n    if [ ! -x \"$JAVACMD\" ] ; then\n        die \"ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME\n\nPlease set the JAVA_HOME variable in your environment to match the\nlocation of your Java installation.\"\n    fi\nelse\n    JAVACMD=\"java\"\n    which java >/dev/null 2>&1 || die \"ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.\n\nPlease set the JAVA_HOME variable in your environment to match the\nlocation of your Java installation.\"\nfi\n\n# Increase the maximum file descriptors if we can.\nif [ \"$cygwin\" = \"false\" -a \"$darwin\" = \"false\" ] ; then\n    MAX_FD_LIMIT=`ulimit -H -n`\n    if [ $? -eq 0 ] ; then\n        if [ \"$MAX_FD\" = \"maximum\" -o \"$MAX_FD\" = \"max\" ] ; then\n            MAX_FD=\"$MAX_FD_LIMIT\"\n        fi\n        ulimit -n $MAX_FD\n        if [ $? -ne 0 ] ; then\n            warn \"Could not set maximum file descriptor limit: $MAX_FD\"\n        fi\n    else\n        warn \"Could not query maximum file descriptor limit: $MAX_FD_LIMIT\"\n    fi\nfi\n\n# For Darwin, add options to specify how the application appears in the dock\nif $darwin; then\n    GRADLE_OPTS=\"$GRADLE_OPTS \\\"-Xdock:name=$APP_NAME\\\" \\\"-Xdock:icon=$APP_HOME/media/gradle.icns\\\"\"\nfi\n\n# For Cygwin, switch paths to Windows format before running java\nif $cygwin ; then\n    APP_HOME=`cygpath --path --mixed \"$APP_HOME\"`\n    CLASSPATH=`cygpath --path --mixed \"$CLASSPATH\"`\n\n    # We build the pattern for arguments to be converted via cygpath\n    ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null`\n    SEP=\"\"\n    for dir in $ROOTDIRSRAW ; do\n        ROOTDIRS=\"$ROOTDIRS$SEP$dir\"\n        SEP=\"|\"\n    done\n    OURCYGPATTERN=\"(^($ROOTDIRS))\"\n    # Add a user-defined pattern to the cygpath arguments\n    if [ \"$GRADLE_CYGPATTERN\" != \"\" ] ; then\n        OURCYGPATTERN=\"$OURCYGPATTERN|($GRADLE_CYGPATTERN)\"\n    fi\n    # Now convert the arguments - kludge to limit ourselves to /bin/sh\n    i=0\n    for arg in \"$@\" ; do\n        CHECK=`echo \"$arg\"|egrep -c \"$OURCYGPATTERN\" -`\n        CHECK2=`echo \"$arg\"|egrep -c \"^-\"`                                 ### Determine if an option\n\n        if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then                    ### Added a condition\n            eval `echo args$i`=`cygpath --path --ignore --mixed \"$arg\"`\n        else\n            eval `echo args$i`=\"\\\"$arg\\\"\"\n        fi\n        i=$((i+1))\n    done\n    case $i in\n        (0) set -- ;;\n        (1) set -- \"$args0\" ;;\n        (2) set -- \"$args0\" \"$args1\" ;;\n        (3) set -- \"$args0\" \"$args1\" \"$args2\" ;;\n        (4) set -- \"$args0\" \"$args1\" \"$args2\" \"$args3\" ;;\n        (5) set -- \"$args0\" \"$args1\" \"$args2\" \"$args3\" \"$args4\" ;;\n        (6) set -- \"$args0\" \"$args1\" \"$args2\" \"$args3\" \"$args4\" \"$args5\" ;;\n        (7) set -- \"$args0\" \"$args1\" \"$args2\" \"$args3\" \"$args4\" \"$args5\" \"$args6\" ;;\n        (8) set -- \"$args0\" \"$args1\" \"$args2\" \"$args3\" \"$args4\" \"$args5\" \"$args6\" \"$args7\" ;;\n        (9) set -- \"$args0\" \"$args1\" \"$args2\" \"$args3\" \"$args4\" \"$args5\" \"$args6\" \"$args7\" \"$args8\" ;;\n    esac\nfi\n\n# Split up the JVM_OPTS And GRADLE_OPTS values into an array, following the shell quoting and substitution rules\nfunction splitJvmOpts() {\n    JVM_OPTS=(\"$@\")\n}\neval splitJvmOpts $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS\nJVM_OPTS[${#JVM_OPTS[*]}]=\"-Dorg.gradle.appname=$APP_BASE_NAME\"\n\nexec \"$JAVACMD\" \"${JVM_OPTS[@]}\" -classpath \"$CLASSPATH\" org.gradle.wrapper.GradleWrapperMain \"$@\"\n"
  },
  {
    "path": "gradlew.bat",
    "content": "@if \"%DEBUG%\" == \"\" @echo off\n@rem ##########################################################################\n@rem\n@rem  Gradle startup script for Windows\n@rem\n@rem ##########################################################################\n\n@rem Set local scope for the variables with windows NT shell\nif \"%OS%\"==\"Windows_NT\" setlocal\n\n@rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script.\nset DEFAULT_JVM_OPTS=\n\nset DIRNAME=%~dp0\nif \"%DIRNAME%\" == \"\" set DIRNAME=.\nset APP_BASE_NAME=%~n0\nset APP_HOME=%DIRNAME%\n\n@rem Find java.exe\nif defined JAVA_HOME goto findJavaFromJavaHome\n\nset JAVA_EXE=java.exe\n%JAVA_EXE% -version >NUL 2>&1\nif \"%ERRORLEVEL%\" == \"0\" goto init\n\necho.\necho ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH.\necho.\necho Please set the JAVA_HOME variable in your environment to match the\necho location of your Java installation.\n\ngoto fail\n\n:findJavaFromJavaHome\nset JAVA_HOME=%JAVA_HOME:\"=%\nset JAVA_EXE=%JAVA_HOME%/bin/java.exe\n\nif exist \"%JAVA_EXE%\" goto init\n\necho.\necho ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME%\necho.\necho Please set the JAVA_HOME variable in your environment to match the\necho location of your Java installation.\n\ngoto fail\n\n:init\n@rem Get command-line arguments, handling Windowz variants\n\nif not \"%OS%\" == \"Windows_NT\" goto win9xME_args\nif \"%@eval[2+2]\" == \"4\" goto 4NT_args\n\n:win9xME_args\n@rem Slurp the command line arguments.\nset CMD_LINE_ARGS=\nset _SKIP=2\n\n:win9xME_args_slurp\nif \"x%~1\" == \"x\" goto execute\n\nset CMD_LINE_ARGS=%*\ngoto execute\n\n:4NT_args\n@rem Get arguments from the 4NT Shell from JP Software\nset CMD_LINE_ARGS=%$\n\n:execute\n@rem Setup the command line\n\nset CLASSPATH=%APP_HOME%\\gradle\\wrapper\\gradle-wrapper.jar\n\n@rem Execute Gradle\n\"%JAVA_EXE%\" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% \"-Dorg.gradle.appname=%APP_BASE_NAME%\" -classpath \"%CLASSPATH%\" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS%\n\n:end\n@rem End local scope for the variables with windows NT shell\nif \"%ERRORLEVEL%\"==\"0\" goto mainEnd\n\n:fail\nrem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of\nrem the _cmd.exe /c_ return code!\nif  not \"\" == \"%GRADLE_EXIT_CONSOLE%\" exit 1\nexit /b 1\n\n:mainEnd\nif \"%OS%\"==\"Windows_NT\" endlocal\n\n:omega\n"
  },
  {
    "path": "onedrivesdk/.gitignore",
    "content": "/build\n"
  },
  {
    "path": "onedrivesdk/build.gradle",
    "content": "apply plugin: 'com.android.library'\napply plugin: 'maven'\n\nif (JavaVersion.current().isJava8Compatible()) {\n    allprojects {\n        tasks.withType(Javadoc) {\n            options.addStringOption('Xdoclint:none', '-quiet')\n        }\n    }\n}\n\ndef getVersionCode() {\n    return mavenMajorVersion.toInteger() * 10000 + mavenMinorVersion.toInteger() * 100 + mavenPatchVersion.toInteger()\n}\n\ndef getVersionName() {\n    return \"${mavenMajorVersion}.${mavenMinorVersion}.${mavenPatchVersion}\"\n}\n\nandroid {\n    compileSdkVersion 23\n    buildToolsVersion \"23.0.1\"\n\n    defaultConfig {\n        minSdkVersion 15\n        targetSdkVersion 23\n        versionCode this.getVersionCode()\n        versionName this.getVersionName()\n    }\n\n    lintOptions {\n        disable 'InvalidPackage', 'AllowBackup'\n    }\n    buildTypes {\n        debug {\n            testCoverageEnabled = true\n        }\n        release {\n            minifyEnabled false\n            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'\n        }\n    }\n}\n\napply plugin: 'checkstyle'\n\ncheck.dependsOn 'checkstyle'\n\ntask checkstyle(type: Checkstyle) {\n    configFile file(\"../checkstyle.xml\")\n    source 'src'\n    include 'main/**/*.java'\n    exclude '**/generated/**',\n            '**/extensions/**',\n            '**/core/OneDriveErrorCodes.java',\n            '**/http/OneDrive*Error*.java',\n            '**/authentication/ServiceInfo.java',\n            '**/authentication/DiscoveryServiceResponse.java'\n    ignoreFailures = false\n    classpath = files()\n}\n\ndependencies {\n    compile ('com.microsoft.services.msa:msa-auth:0.8.4') {\n        exclude module: 'com.microsoft.services.msa'\n    }\n    compile ('com.microsoft.aad:adal:1.1.7') {\n        exclude module: 'com.microsoft.aad'\n    }\n    compile ('com.google.code.gson:gson:2.3.1') {\n        exclude module: 'com.google.code.gson'\n    }\n}\n\nuploadArchives {\n    def bintrayUsername = \"\"\n    def bintrayApikey = \"\"\n    if (project.rootProject.file('local.properties').exists()) {\n        Properties properties = new Properties()\n        properties.load(project.rootProject.file('local.properties').newDataInputStream())\n        bintrayUsername = properties.getProperty('bintray.user')\n        bintrayApikey = properties.getProperty('bintray.apikey')\n    }\n\n    configuration = configurations.archives\n    repositories.mavenDeployer {\n        pom {\n           setGroupId project.mavenGroupId\n           setArtifactId project.mavenArtifactId\n           setVersion getVersionName()\n        }\n        repository (url: project.mavenRepoUrl) {\n            authentication(\n                 // put these values in local file ~/.gradle/gradle.properties\n                 userName: project.hasProperty(\"bintrayUsername\") ? project.bintrayUsername : bintrayUsername,\n                 password: project.hasProperty(\"bintrayApikey\") ? project.bintrayApikey : bintrayApikey\n            )\n        }\n    }\n}\n\ntask javadoc(type: Javadoc) {\n    source = android.sourceSets.main.java.srcDirs\n    classpath += project.files(android.getBootClasspath())\n    classpath += configurations.compile\n}\n\ntask javadocJar(type: Jar, dependsOn: javadoc) {\n    classifier = 'javadoc'\n    from javadoc.destinationDir\n}\n\ntask sourcesJar(type: Jar) {\n    classifier = 'sources'\n    from android.sourceSets.main.java.srcDirs\n}\n\nartifacts {\n    archives javadocJar\n    archives sourcesJar\n}\n"
  },
  {
    "path": "onedrivesdk/src/androidTest/java/com/onedrive/sdk/concurrency/MockExecutors.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.concurrency;\n\nimport com.onedrive.sdk.core.ClientException;\n\n/**\n * Mock {@see IExecutors}, everything runs on the current thread\n */\npublic class MockExecutors implements IExecutors {\n\n    @Override\n    public void performOnBackground(final Runnable runnable) {\n        runnable.run();\n    }\n\n    @Override\n    public <Result> void performOnForeground(final Result result,\n                                             final ICallback<Result> callback) {\n        callback.success(result);\n    }\n\n    @Override\n    public <Result> void performOnForeground(final int progress,\n                                             final int progressMax,\n                                             final IProgressCallback<Result> callback) {\n        callback.progress(progress, progressMax);\n    }\n\n    @Override\n    public <Result> void performOnForeground(final ClientException exception,\n                                             final ICallback<Result> callback) {\n        callback.failure(exception);\n    }\n}\n"
  },
  {
    "path": "onedrivesdk/src/androidTest/java/com/onedrive/sdk/core/CoreTests.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.core;\n\nimport android.test.AndroidTestCase;\n\nimport com.microsoft.onedrivesdk.BuildConfig;\n\nimport junit.framework.Assert;\n\n/**\n * Test cases for the Core components\n */\npublic class CoreTests extends AndroidTestCase  {\n\n    public void testMinVersionNumber() throws Exception {\n        Assert.assertTrue(\"Regression in version number, \" + BuildConfig.VERSION_CODE, BuildConfig.VERSION_CODE >= 10102);\n    }\n}\n"
  },
  {
    "path": "onedrivesdk/src/androidTest/java/com/onedrive/sdk/core/MockClient.java",
    "content": "package com.onedrive.sdk.core;\n\nimport com.onedrive.sdk.authentication.IAuthenticator;\nimport com.onedrive.sdk.concurrency.IExecutors;\nimport com.onedrive.sdk.extensions.IDriveCollectionRequestBuilder;\nimport com.onedrive.sdk.extensions.IDriveRequestBuilder;\nimport com.onedrive.sdk.extensions.IOneDriveClient;\nimport com.onedrive.sdk.extensions.IShareCollectionRequestBuilder;\nimport com.onedrive.sdk.extensions.IShareRequestBuilder;\nimport com.onedrive.sdk.http.IHttpProvider;\nimport com.onedrive.sdk.logger.ILogger;\nimport com.onedrive.sdk.serializer.ISerializer;\n\npublic class MockClient implements IOneDriveClient{\n    private ILogger mLogger;\n\n    @Override\n    public IDriveRequestBuilder getDrive() {\n        return null;\n    }\n\n    @Override\n    public IDriveCollectionRequestBuilder getDrives() {\n        return null;\n    }\n\n    @Override\n    public IDriveRequestBuilder getDrive(String id) {\n        return null;\n    }\n\n    @Override\n    public IShareCollectionRequestBuilder getShares() {\n        return null;\n    }\n\n    @Override\n    public IShareRequestBuilder getShare(String id) {\n        return null;\n    }\n\n    @Override\n    public IAuthenticator getAuthenticator() {\n        return null;\n    }\n\n    @Override\n    public String getServiceRoot() {\n        return null;\n    }\n\n    @Override\n    public IExecutors getExecutors() {\n        return null;\n    }\n\n    @Override\n    public IHttpProvider getHttpProvider() {\n        return null;\n    }\n\n    @Override\n    public ILogger getLogger() {\n        return mLogger;\n    }\n\n    @Override\n    public ISerializer getSerializer() {\n        return null;\n    }\n\n    @Override\n    public void validate() {\n\n    }\n}\n"
  },
  {
    "path": "onedrivesdk/src/androidTest/java/com/onedrive/sdk/http/BaseRequestTests.java",
    "content": "package com.onedrive.sdk.http;\n\nimport android.graphics.Path;\nimport android.net.Uri;\nimport android.test.AndroidTestCase;\n\nimport com.onedrive.sdk.core.MockClient;\nimport com.onedrive.sdk.extensions.IOneDriveClient;\nimport com.onedrive.sdk.options.Option;\nimport com.onedrive.sdk.options.QueryOption;\n\nimport junit.framework.Assert;\n\nimport java.net.URL;\nimport java.util.ArrayList;\nimport java.util.List;\n\n/**\n * Test cases for (@see BaseRequest)\n */\npublic class BaseRequestTests extends AndroidTestCase{\n    private IOneDriveClient mockClient;\n    private BaseRequest mRequest;\n\n    private final String baseUrl = \"https://localhost:8080\";\n    private final String[] testingSegments = { \"Hello World\", \"你好世界\", \"Καλημέρα κόσμε\", \"안녕하세요\", \"コンニチハ\", \"แผ่นดินฮั่นเสื่อมโทรมแสนสังเวช\" };\n\n    @Override\n    public void setUp() {\n        mockClient = new MockClient();\n        StringBuilder sb = new StringBuilder(baseUrl);\n\n        for (String segment : testingSegments) {\n            sb.append(\"/\");\n            sb.append(segment);\n        }\n\n        mRequest = new BaseRequest(sb.toString(), mockClient, /*options:*/ null, null) {\n            @Override\n            public IOneDriveClient getClient() {\n                return mockClient;\n            }\n        };\n    }\n\n    public void testUrlEncoded() throws Exception {\n        URL requestUrl = mRequest.getRequestUrl();\n        final Uri.Builder expectBuilder = Uri.parse(baseUrl).buildUpon();\n\n        for (String segment : testingSegments) {\n            expectBuilder.appendPath(segment);\n        }\n\n        Assert.assertEquals(expectBuilder.build().toString(), requestUrl.toString());\n    }\n\n    public void testUrlWithQuery() throws Exception {\n        final String queryInUrl = \"expand=foo&$select=id,name\";\n        final String testUrl = baseUrl + \"?\" + queryInUrl;\n\n        final List<Option> options = new ArrayList<Option>();\n        final QueryOption queryInOption = new QueryOption(\"queryWithEncode\", \"!\");\n        options.add(queryInOption);\n\n        mRequest = new BaseRequest(testUrl, mockClient, options, null) {\n            public IOneDriveClient getClient() {\n                return mockClient;\n            }\n        };\n\n        URL requestUrl = mRequest.getRequestUrl();\n\n        final Uri.Builder expectBuilder = Uri.parse(testUrl).buildUpon();\n        for (final Option option: options) {\n            expectBuilder.appendQueryParameter(option.getName(), option.getValue());\n        }\n\n        Assert.assertEquals(expectBuilder.build().toString(), requestUrl.toString());\n    }\n}\n"
  },
  {
    "path": "onedrivesdk/src/androidTest/java/com/onedrive/sdk/http/DefaultHttpProviderTests.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.http;\n\nimport com.onedrive.sdk.concurrency.AsyncMonitorLocation;\nimport com.onedrive.sdk.concurrency.AsyncMonitorResponseHandler;\nimport com.onedrive.sdk.concurrency.ChunkedUploadResponseHandler;\nimport com.onedrive.sdk.concurrency.IProgressCallback;\nimport com.onedrive.sdk.concurrency.MockExecutors;\nimport com.onedrive.sdk.core.ClientException;\nimport com.onedrive.sdk.core.OneDriveErrorCodes;\nimport com.onedrive.sdk.extensions.AsyncOperationStatus;\nimport com.onedrive.sdk.extensions.ChunkedUploadResult;\nimport com.onedrive.sdk.extensions.Drive;\nimport com.onedrive.sdk.extensions.Item;\nimport com.onedrive.sdk.extensions.UploadSession;\nimport com.onedrive.sdk.logger.MockLogger;\nimport com.onedrive.sdk.serializer.MockSerializer;\n\nimport android.test.AndroidTestCase;\n\nimport java.io.ByteArrayInputStream;\nimport java.io.ByteArrayOutputStream;\nimport java.io.IOException;\nimport java.io.InputStream;\nimport java.io.OutputStream;\nimport java.util.Arrays;\nimport java.util.HashMap;\nimport java.util.Map;\nimport java.util.concurrent.atomic.AtomicBoolean;\nimport java.util.concurrent.atomic.AtomicInteger;\n\n/**\n * Test cases for {@see DefaultHttpProvider}\n */\npublic class DefaultHttpProviderTests extends AndroidTestCase {\n\n    private MockInterceptor mInterceptor;\n    private DefaultHttpProvider mProvider;\n\n    public void testAsyncSessionResult() throws Exception {\n        final String expectedLocation = \"http://localhost:1234\";\n        final ITestData data = new ITestData() {\n            @Override\n            public int getRequestCode() {\n                return 200;\n            }\n\n            @Override\n            public String getJsonResponse() {\n                return \"{ \\\"operation\\\": \\\"Copy\\\", \\\"percentageComplete\\\": 100.0, \\\"status\\\": \\\"inProgress\\\" }\";\n            }\n\n            @Override\n            public Map<String, String> getHeaders() {\n                final HashMap<String, String> map = new HashMap<>();\n                map.put(\"Location\", expectedLocation);\n                return map;\n            }\n        };\n        setDefaultHttpProvider(new AsyncOperationStatus());\n        mProvider.setConnectionFactory(new MockSingleConnectionFactory(new TestDataConnection(data)));\n\n        AsyncOperationStatus response = mProvider.send(new MockRequest(), AsyncOperationStatus.class, null, new AsyncMonitorResponseHandler());\n\n        assertEquals(expectedLocation, response.seeOther);\n        assertEquals(1, mInterceptor.getInterceptionCount());\n    }\n\n    public void testAsyncSessionResultCompleted() throws Exception {\n        final String expectedLocation = \"http://localhost:1111\";\n        final ITestData data = new ITestData() {\n            @Override\n            public int getRequestCode() {\n                return 303;\n            }\n\n            @Override\n            public String getJsonResponse() {\n                return \"\";\n            }\n\n            @Override\n            public Map<String, String> getHeaders() {\n                final HashMap<String, String> map = new HashMap<>();\n                map.put(\"Location\", expectedLocation);\n                return map;\n            }\n        };\n        setDefaultHttpProvider(new AsyncOperationStatus());\n        mProvider.setConnectionFactory(new MockSingleConnectionFactory(new TestDataConnection(data)));\n\n        AsyncOperationStatus response = mProvider.send(new MockRequest(), AsyncOperationStatus.class, null, new AsyncMonitorResponseHandler());\n\n        assertEquals(expectedLocation, response.seeOther);\n        assertEquals(\"Completed\", response.status);\n        assertEquals(1, mInterceptor.getInterceptionCount());\n    }\n\n    public void testNoContentType() throws Exception {\n        final ITestData data = new ITestData() {\n            @Override\n            public int getRequestCode() {\n                return 200;\n            }\n\n            @Override\n            public String getJsonResponse() {\n                return \"{ \\\"id\\\": \\\"zzz\\\" }\";\n            }\n\n            @Override\n            public Map<String, String> getHeaders() {\n                return new HashMap<>();\n            }\n        };\n        setDefaultHttpProvider(null);\n        mProvider.setConnectionFactory(new MockSingleConnectionFactory(new TestDataConnection(data)));\n\n        try {\n            mProvider.send(new MockRequest(), Drive.class, null);\n            fail(\"Expected exception\");\n        } catch (final ClientException ce) {\n            if (!(ce.getCause() instanceof NullPointerException)) {\n                fail(\"Wrong inner exception!\");\n            }\n        }\n        assertEquals(1, mInterceptor.getInterceptionCount());\n    }\n\n    public void testDriveResponse() throws Exception {\n        final String driveId = \"driveId\";\n        final ITestData data = new ITestData() {\n            @Override\n            public int getRequestCode() {\n                return 200;\n            }\n\n            @Override\n            public String getJsonResponse() {\n                return \"{ \\\"id\\\": \\\"zzz\\\" }\";\n            }\n\n            @Override\n            public Map<String, String> getHeaders() {\n                final HashMap<String, String> map = new HashMap<>();\n                map.put(\"Content-Type\", \"application/json\");\n                return map;\n            }\n        };\n        final Drive expectedDrive = new Drive();\n        expectedDrive.id = driveId;\n        setDefaultHttpProvider(expectedDrive);\n        mProvider.setConnectionFactory(new MockSingleConnectionFactory(new TestDataConnection(data)));\n\n        final Drive drive = mProvider.send(new MockRequest(), Drive.class, null);\n\n        assertEquals(driveId, drive.id);\n        assertEquals(1, mInterceptor.getInterceptionCount());\n    }\n\n    public void testBinaryResponse() throws Exception {\n        final ITestData data = new ITestData() {\n            @Override\n            public int getRequestCode() {\n                return 200;\n            }\n\n            @Override\n            public String getJsonResponse() {\n                return \"{ \\\"id\\\": \\\"zzz\\\" }\";\n            }\n\n            @Override\n            public Map<String, String> getHeaders() {\n                final HashMap<String, String> map = new HashMap<>();\n                map.put(\"Content-Type\", \"application/octet-stream\");\n                return map;\n            }\n        };\n        setDefaultHttpProvider(null);\n        mProvider.setConnectionFactory(new MockSingleConnectionFactory(new TestDataConnection(data)));\n        mProvider.send(new MockRequest(), InputStream.class, null);\n        assertEquals(1, mInterceptor.getInterceptionCount());\n    }\n\n    public void testPostItem() throws Exception {\n        final String itemId = \"itemId\";\n        final ITestData data = new ITestData() {\n            @Override\n            public int getRequestCode() {\n                return 200;\n            }\n\n            @Override\n            public String getJsonResponse() {\n                return \"{ \\\"id\\\": \\\"zzz\\\" }\";\n            }\n\n            @Override\n            public Map<String, String> getHeaders() {\n                final HashMap<String, String> map = new HashMap<>();\n                map.put(\"Content-Type\", \"application/json\");\n                return map;\n            }\n        };\n\n        final Item expectedItem = new Item();\n        expectedItem.id = itemId;\n        setDefaultHttpProvider(expectedItem);\n        mProvider.setConnectionFactory(new MockSingleConnectionFactory(new TestDataConnection(data)));\n\n        final Item item = mProvider.send(new MockRequest(), Item.class, new Item());\n\n        assertEquals(itemId, item.id);\n        assertEquals(1, mInterceptor.getInterceptionCount());\n    }\n\n    public void testPostByte() throws Exception {\n        final String itemId = \"itemId\";\n        final ITestData data = new ITestData() {\n            @Override\n            public int getRequestCode() {\n                return 200;\n            }\n\n            @Override\n            public String getJsonResponse() {\n                return \"{ \\\"id\\\": \\\"zzz\\\" }\";\n            }\n\n            @Override\n            public Map<String, String> getHeaders() {\n                final HashMap<String, String> map = new HashMap<>();\n                map.put(\"Content-Type\", \"application/json\");\n                return map;\n            }\n        };\n        final Item expectedItem = new Item();\n        expectedItem.id = itemId;\n        setDefaultHttpProvider(expectedItem);\n        mProvider.setConnectionFactory(new MockSingleConnectionFactory(new TestDataConnection(data)));\n\n        final AtomicBoolean progress = new AtomicBoolean(false);\n        final AtomicBoolean success = new AtomicBoolean(false);\n        final AtomicBoolean failure = new AtomicBoolean(false);\n        final IProgressCallback<Item> progressCallback = new IProgressCallback<Item>() {\n            @Override\n            public void progress(final long current, final long max) {\n                progress.set(true);\n            }\n\n            @Override\n            public void success(final Item item) {\n                success.set(true);\n            }\n\n            @Override\n            public void failure(final ClientException ex) {\n                failure.set(true);\n            }\n        };\n\n        mProvider.send(new MockRequest(), progressCallback, Item.class, new byte[]{1, 2, 3, 4});\n\n        assertTrue(progress.get());\n        assertTrue(success.get());\n        assertEquals(1, mInterceptor.getInterceptionCount());\n    }\n\n    public void testErrorResponse() throws Exception {\n        final OneDriveErrorCodes expectedErrorCode = OneDriveErrorCodes.InvalidRequest;\n        final String expectedMessage = \"Test error!\";\n        final OneDriveErrorResponse toSerialize = new OneDriveErrorResponse();\n        toSerialize.error = new OneDriveError();\n        toSerialize.error.code = expectedErrorCode.toString();\n        toSerialize.error.message = expectedMessage;\n        toSerialize.error.innererror = null;\n\n        setDefaultHttpProvider(toSerialize);\n        final ITestData data = new ITestData() {\n            @Override\n            public int getRequestCode() {\n                return 415;\n            }\n\n            @Override\n            public String getJsonResponse() {\n                return \"{}\";\n            }\n\n            @Override\n            public Map<String, String> getHeaders() {\n                final HashMap<String, String> headers = new HashMap<>();\n                headers.put(\"Content-Type\", \"application/json\");\n                return headers;\n            }\n        };\n        mProvider.setConnectionFactory(new MockSingleConnectionFactory(new TestDataConnection(data)));\n\n        try {\n            mProvider.send(new MockRequest(), Item.class, null);\n            fail(\"Expected exception in previous statement\");\n        } catch (final OneDriveServiceException e) {\n            assertTrue(e.isError(expectedErrorCode));\n            assertEquals(expectedMessage, e.getServiceError().message);\n        }\n    }\n\n    public void testBodyLessResponse() throws Exception {\n        final int[] codes = new int[] {204, 304 };\n        final AtomicInteger currentCode = new AtomicInteger(0);\n        setDefaultHttpProvider(null);\n        final ITestData data = new ITestData() {\n            @Override\n            public int getRequestCode() {\n                return codes[currentCode.get()];\n            }\n\n            @Override\n            public String getJsonResponse() {\n                throw new UnsupportedOperationException(\"Should not ever hit this\");\n            }\n\n            @Override\n            public Map<String, String> getHeaders() {\n                return new HashMap<>();\n            }\n        };\n        mProvider.setConnectionFactory(new MockSingleConnectionFactory(new TestDataConnection(data)));\n\n        for (final int ignored : codes) {\n            Item result = mProvider.send(new MockRequest(), Item.class, null);\n            currentCode.incrementAndGet();\n            assertNull(result);\n        }\n        assertEquals(codes.length, mInterceptor.getInterceptionCount());\n    }\n\n    public void testMonitorCreation() throws Exception {\n        final String expectedLocation = \"http://localhost/monitorlocation\";\n        final ITestData data = new ITestData() {\n            @Override\n            public int getRequestCode() {\n                return 202;\n            }\n\n            @Override\n            public String getJsonResponse() {\n                return \"{ }\";\n            }\n\n            @Override\n            public Map<String, String> getHeaders() {\n                final HashMap<String, String> map = new HashMap<>();\n                map.put(\"Location\", expectedLocation);\n                return map;\n            }\n        };\n\n        setDefaultHttpProvider(new AsyncMonitorLocation(\"\"));\n        mProvider.setConnectionFactory(new MockSingleConnectionFactory(new TestDataConnection(data)));\n\n        final AsyncMonitorLocation monitorLocation = mProvider.send(new MockRequest(), AsyncMonitorLocation.class, new Item());\n\n        assertEquals(expectedLocation, monitorLocation.getLocation());\n        assertEquals(1, mInterceptor.getInterceptionCount());\n    }\n\n    public void testUploadReturnNextSession() throws  Exception {\n        final String expectedLocation = \"http://localhost/up/uploadlocation\";\n        final byte[] chunk = new byte[100];\n        final UploadSession<Item> toSerialize = new UploadSession<Item>();\n        toSerialize.uploadUrl = expectedLocation;\n        toSerialize.nextExpectedRanges = Arrays.asList(\"100-199\");\n        setDefaultHttpProvider(toSerialize);\n\n        final ChunkedUploadResponseHandler<Item> handler = new ChunkedUploadResponseHandler(Item.class);\n\n        final ITestData data = new ITestData() {\n            @Override\n            public int getRequestCode() {\n                return 202;\n            }\n\n            @Override\n            public String getJsonResponse() {\n                return \"{ }\";\n            }\n\n            @Override\n            public Map<String, String> getHeaders() {\n                final HashMap<String, String> headers = new HashMap<>();\n                headers.put(\"Content-Type\", \"application/json\");\n                return headers;\n            }\n        };\n\n        mProvider.setConnectionFactory(new MockSingleConnectionFactory(new TestDataConnection(data)));\n        ChunkedUploadResult result = mProvider.send(new MockRequest(), ChunkedUploadResult.class, chunk, handler);\n\n        assertTrue(result.chunkCompleted());\n        assertEquals(result.getSession(), toSerialize);\n    }\n\n    public void testUploadReturnUploadedItem() throws  Exception {\n        final String expectedLocation = \"http://localhost/up/uploadlocation\";\n        final byte[] chunk = new byte[30];\n        final Item toSerialize = new Item();\n        toSerialize.id = \"abc!123\";\n        setDefaultHttpProvider(toSerialize);\n\n        final ChunkedUploadResponseHandler<Item> handler = new ChunkedUploadResponseHandler(Item.class);\n\n        final ITestData data = new ITestData() {\n            @Override\n            public int getRequestCode() {\n                return 201;\n            }\n\n            @Override\n            public String getJsonResponse() {\n                return \"{ }\";\n            }\n\n            @Override\n            public Map<String, String> getHeaders() {\n                final HashMap<String, String> headers = new HashMap<>();\n                headers.put(\"Content-Type\", \"application/json\");\n                return headers;\n            }\n        };\n\n        mProvider.setConnectionFactory(new MockSingleConnectionFactory(new TestDataConnection(data)));\n        ChunkedUploadResult result = mProvider.send(new MockRequest(), ChunkedUploadResult.class, chunk, handler);\n\n        assertTrue(result.uploadCompleted());\n        assertEquals(toSerialize, result.getItem());\n    }\n\n    public void testUploadReturnError() throws  Exception {\n        final String expectedLocation = \"http://localhost/up/uploadlocation\";\n        final byte[] chunk = new byte[30];\n        final OneDriveErrorCodes errorCode = OneDriveErrorCodes.UploadSessionFailed;\n        final OneDriveError toSerialize = new OneDriveError();\n        toSerialize.code = errorCode.toString();\n        setDefaultHttpProvider(toSerialize);\n\n        final ChunkedUploadResponseHandler<Item> handler = new ChunkedUploadResponseHandler(Item.class);\n\n        final ITestData data = new ITestData() {\n            @Override\n            public int getRequestCode() {\n                return 500;\n            }\n\n            @Override\n            public String getJsonResponse() {\n                return \"{ }\";\n            }\n\n            @Override\n            public Map<String, String> getHeaders() {\n                final HashMap<String, String> headers = new HashMap<>();\n                headers.put(\"Content-Type\", \"application/json\");\n                return headers;\n            }\n        };\n\n        mProvider.setConnectionFactory(new MockSingleConnectionFactory(new TestDataConnection(data)));\n        ChunkedUploadResult result = mProvider.send(new MockRequest(), ChunkedUploadResult.class, chunk, handler);\n\n        assertFalse(result.chunkCompleted());\n        assertTrue(result.getError().isError(errorCode));\n    }\n\n    /**\n     * Mock {@see IConnection} backed with test data\n     */\n    private class TestDataConnection implements IConnection {\n\n        private final ITestData mData;\n\n        public TestDataConnection(ITestData data) {\n            mData = data;\n        }\n\n        @Override\n        public void setFollowRedirects(final boolean followRedirects) {\n\n        }\n\n        @Override\n        public void addRequestHeader(final String headerName, final String headerValue) {\n\n        }\n\n        @Override\n        public OutputStream getOutputStream() throws IOException {\n            return new ByteArrayOutputStream();\n        }\n\n        @Override\n        public InputStream getInputStream() throws IOException {\n            return new ByteArrayInputStream(mData.getJsonResponse().getBytes());\n        }\n\n        @Override\n        public int getResponseCode() throws IOException {\n            return mData.getRequestCode();\n        }\n\n        @Override\n        public String getResponseMessage() throws IOException {\n            return null;\n        }\n\n        @Override\n        public void close() {\n\n        }\n\n        @Override\n        public Map<String, String> getHeaders() {\n            return mData.getHeaders();\n        }\n\n        @Override\n        public String getRequestMethod() {\n            return null;\n        }\n\n        @Override\n        public void setContentLength(int length) {\n\n        }\n    }\n\n    /**\n     * Test data to use in configuring the mock connection object\n     */\n    private interface ITestData {\n        int getRequestCode();\n\n        String getJsonResponse();\n\n        Map<String,String> getHeaders();\n    }\n\n    /**\n     * Configures the http provider for test cases\n     * @param toSerialize The object to serialize\n     */\n    private void setDefaultHttpProvider(final Object toSerialize) {\n        mProvider = new DefaultHttpProvider(new MockSerializer(toSerialize, \"\"),\n                mInterceptor = new MockInterceptor(),\n                new MockExecutors(),\n                new MockLogger());\n    }\n}\n"
  },
  {
    "path": "onedrivesdk/src/androidTest/java/com/onedrive/sdk/http/MockInterceptor.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.http;\n\nimport java.util.concurrent.atomic.AtomicInteger;\n\n/**\n * Mock {@see IRequestInterceptor}\n */\npublic class MockInterceptor implements IRequestInterceptor {\n\n    /**\n     * Interception counter\n     */\n    private AtomicInteger mInterceptionCount = new AtomicInteger(0);\n\n    @Override\n    public void intercept(final IHttpRequest request) {\n        mInterceptionCount.incrementAndGet();\n    }\n\n    /**\n     * Gets the number of intercepted requests\n     * @return The number of intercepted requests\n     */\n    public int getInterceptionCount() {\n        return mInterceptionCount.get();\n    }\n}\n"
  },
  {
    "path": "onedrivesdk/src/androidTest/java/com/onedrive/sdk/http/MockRequest.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.http;\n\nimport com.onedrive.sdk.options.HeaderOption;\nimport com.onedrive.sdk.options.Option;\n\nimport java.net.MalformedURLException;\nimport java.net.URL;\nimport java.util.ArrayList;\nimport java.util.List;\n\n/**\n * Mock request for {@see IHttpRequest}\n */\nclass MockRequest implements IHttpRequest {\n\n    @Override\n    public URL getRequestUrl() {\n        try {\n            return new URL(\"http://localhost\");\n        } catch (final MalformedURLException ignored) {\n        }\n        return null;\n    }\n\n    @Override\n    public HttpMethod getHttpMethod() {\n        return HttpMethod.GET;\n    }\n\n    @Override\n    public List<HeaderOption> getHeaders() {\n        return new ArrayList<>();\n    }\n\n    @Override\n    public List<Option> getOptions() {\n        return new ArrayList<>();\n    }\n\n    @Override\n    public void addHeader(final String header, final String value) {\n    }\n}\n"
  },
  {
    "path": "onedrivesdk/src/androidTest/java/com/onedrive/sdk/http/MockSingleConnectionFactory.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.http;\n\nimport java.io.IOException;\n\n/**\n * Mock {@see IConnectionFactory} that only returns a single connect\n */\nclass MockSingleConnectionFactory implements IConnectionFactory {\n\n    /**\n     * The connection to return\n     */\n    private final IConnection mConnection;\n\n    /**\n     * Creates an instance of this connection factory\n     * @param connection The connection to return\n     */\n    public MockSingleConnectionFactory(IConnection connection) {\n        mConnection = connection;\n    }\n\n    @Override\n    public IConnection createFromRequest(final IHttpRequest request) throws IOException {\n        return mConnection;\n    }\n}\n"
  },
  {
    "path": "onedrivesdk/src/androidTest/java/com/onedrive/sdk/logger/MockLogger.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.logger;\n\n/**\n * Mock {@see ILogger}, logs nothing\n */\npublic class MockLogger implements ILogger {\n\n    @Override\n    public void setLoggingLevel(final LoggerLevel level) {\n\n    }\n\n    @Override\n    public LoggerLevel getLoggingLevel() {\n        return null;\n    }\n\n    @Override\n    public void logDebug(final String message) {\n\n    }\n\n    @Override\n    public void logError(final String message, final Throwable throwable) {\n\n    }\n}\n"
  },
  {
    "path": "onedrivesdk/src/androidTest/java/com/onedrive/sdk/serializer/DefaultSerializerTests.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.serializer;\n\nimport com.onedrive.sdk.extensions.Drive;\nimport com.onedrive.sdk.logger.DefaultLogger;\n\nimport android.test.AndroidTestCase;\n\n/**\n * Test cases for the {@see DefaultSerializer}\n */\npublic class DefaultSerializerTests extends AndroidTestCase  {\n\n    /**\n     * Make sure that deserializing a Drive also returns members from BaseDrive\n     * @throws Exception If there is an exception during the test\n     */\n    public void testDriveDeserialization() throws Exception {\n        final DefaultSerializer serializer = new DefaultSerializer(new DefaultLogger());\n        String source = \"{\\\"@odata.context\\\":\\\"https://api.onedrive.com/v1.0/$metadata#drives/$entity\\\",\\\"id\\\":\\\"8bf6ae90006c4a4c\\\",\\\"driveType\\\":\\\"personal\\\",\\\"owner\\\":{\\\"user\\\":{\\\"displayName\\\":\\\"Peter\\\",\\\"id\\\":\\\"8bf6ae90006c4a4c\\\"}},\\\"quota\\\":{\\\"deleted\\\":1485718314,\\\"remaining\\\":983887466461,\\\"state\\\":\\\"normal\\\",\\\"total\\\":1142461300736,\\\"used\\\":158573834275}}\";\n        Drive result = serializer.deserializeObject(source, Drive.class);\n        assertNotNull(result);\n        assertEquals(\"personal\", result.driveType);\n        assertEquals(Long.valueOf(983887466461L), result.quota.remaining);\n        assertEquals(\"8bf6ae90006c4a4c\", result.id);\n\n    }\n}\n"
  },
  {
    "path": "onedrivesdk/src/androidTest/java/com/onedrive/sdk/serializer/ISO8601Test.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.serializer;\n\nimport junit.framework.Assert;\n\nimport android.test.AndroidTestCase;\n\nimport java.util.Calendar;\nimport java.util.Date;\nimport java.util.TimeZone;\n\n/**\n * Test cases for the {@see ISO8601} class\n */\npublic class ISO8601Test extends AndroidTestCase {\n\n    /**\n     * Make sure that dates with and without millis can be converted properly into strings\n     * @throws Exception If there is an exception during the test\n     */\n    public void testFromDate() throws Exception {\n        // I sure hope this works in other timezones...\n        TimeZone.setDefault(TimeZone.getTimeZone(\"PST\"));\n        final Calendar date = Calendar.getInstance();\n        date.setTime(new Date(123456789012345L));\n        Assert.assertEquals(\"5882-03-11T00:30:12.345Z\", CalendarSerializer.serialize(date));\n\n        final Calendar dateNoMillis = Calendar.getInstance();\n        dateNoMillis.setTime(new Date(123456789012000L));\n        Assert.assertEquals(\"5882-03-11T00:30:12.000Z\", CalendarSerializer.serialize(dateNoMillis));\n    }\n\n    /**\n     * Make sure that dates in string format with and without millis can be converted properly into date objects\n     * @throws Exception If there is an exception during the test\n     */\n    public void testToDate() throws Exception {\n        TimeZone.setDefault(TimeZone.getTimeZone(\"PST\"));\n        final long toTheSecondDate = 123456789012000L;\n        final Calendar dateToSecond = CalendarSerializer.deserialize(\"5882-03-11T00:30:12Z\");\n        Assert.assertEquals(toTheSecondDate, dateToSecond.getTimeInMillis());\n\n        final long toTheMillisecondDate = 123456789012345L;\n        final Calendar dateToTheMillisecond = CalendarSerializer.deserialize(\"5882-03-11T00:30:12.345Z\");\n        Assert.assertEquals(toTheMillisecondDate, dateToTheMillisecond.getTimeInMillis());\n\n        final Calendar dateToTheExtremeMillisecond = CalendarSerializer.deserialize(\"5882-03-11T00:30:12.3456789Z\");\n        Assert.assertEquals(toTheMillisecondDate, dateToTheExtremeMillisecond.getTimeInMillis());\n    }\n}\n"
  },
  {
    "path": "onedrivesdk/src/androidTest/java/com/onedrive/sdk/serializer/MockSerializer.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.serializer;\n\n/**\n * Mock instance of the {@see ISerializer}\n */\npublic class MockSerializer implements ISerializer {\n\n    /**\n     * The deserialization response\n     */\n    private final Object mDeserializeReturn;\n\n    /**\n     * The serialization response\n     */\n    private final String mSerializeReturn;\n\n    /**\n     * Creates a MockSerializer\n     * @param deserializeReturn The object to return on deserializeObject calls\n     */\n    public MockSerializer(final Object deserializeReturn, final String serializeReturn) {\n        mDeserializeReturn = deserializeReturn;\n        mSerializeReturn = serializeReturn;\n    }\n\n    @Override\n    public <T> T deserializeObject(final String inputString, final Class<T> clazz) {\n        //noinspection unchecked\n        return (T) mDeserializeReturn;\n    }\n\n    @Override\n    public <T> String serializeObject(final T serializableObject) {\n        return mSerializeReturn;\n    }\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/AndroidManifest.xml",
    "content": "<manifest package=\"com.microsoft.onedrivesdk\" xmlns:android=\"http://schemas.android.com/apk/res/android\">\n\n    <uses-permission android:name=\"android.permission.GET_ACCOUNTS\"/>\n    <uses-permission android:name=\"android.permission.USE_CREDENTIALS\"/>\n    <uses-permission android:name=\"android.permission.MANAGE_ACCOUNTS\"/>\n\n</manifest>\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/authentication/ADALAccountInfo.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.authentication;\n\nimport com.microsoft.aad.adal.AuthenticationResult;\nimport com.onedrive.sdk.logger.ILogger;\n\n/**\n * Account information for an ADAL based account.\n */\npublic class ADALAccountInfo implements IAccountInfo {\n\n    /**\n     * The authenticator that can refresh this account.\n     */\n    private final ADALAuthenticator mAuthenticator;\n\n    /**\n     * The authentication result for this account.\n     */\n    private AuthenticationResult mAuthenticationResult;\n\n    /**\n     * The service info for OneDrive.\n     */\n    private final ServiceInfo mOneDriveServiceInfo;\n\n    /**\n     * The logger.\n     */\n    private final ILogger mLogger;\n\n    /**\n     * Creates an ADALAccountInfo object.\n     * @param authenticator The authenticator that this account info was created from.\n     * @param authenticationResult The authentication result for this account.\n     * @param oneDriveServiceInfo The service info for OneDrive.\n     * @param logger The logger\n     */\n    public ADALAccountInfo(final ADALAuthenticator authenticator,\n                           final AuthenticationResult authenticationResult,\n                           final ServiceInfo oneDriveServiceInfo,\n                           final ILogger logger) {\n        mAuthenticator = authenticator;\n        mAuthenticationResult = authenticationResult;\n        mOneDriveServiceInfo = oneDriveServiceInfo;\n        mLogger = logger;\n    }\n\n    /**\n     * Get the type of the account.\n     * @return The ActiveDirectory account type.\n     */\n    @Override\n    public AccountType getAccountType() {\n        return AccountType.ActiveDirectory;\n    }\n\n    /**\n     * Get the access token for requests against the service root.\n     * @return The access token for requests against the service root.\n     */\n    @Override\n    public String getAccessToken() {\n        return mAuthenticationResult.getAccessToken();\n    }\n\n    /**\n     * Get the OneDrive service root for this account.\n     * @return The OneDrive service root for this account.\n     */\n    @Override\n    public String getServiceRoot() {\n        return mOneDriveServiceInfo.serviceEndpointUri;\n    }\n\n    /**\n     * Determines if the access token is expired and needs to be refreshed.\n     * @return true if the refresh() needs to be called and\n     *         false if the account is still valid.\n     */\n    @Override\n    public boolean isExpired() {\n        return mAuthenticationResult.isExpired();\n    }\n\n    /**\n     * Refreshes the access token for this Account info.\n     */\n    @Override\n    public void refresh() {\n        mLogger.logDebug(\"Refreshing access token...\");\n        final ADALAccountInfo newInfo = (ADALAccountInfo)mAuthenticator.loginSilent();\n        mAuthenticationResult = newInfo.mAuthenticationResult;\n    }\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/authentication/ADALAuthenticator.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.authentication;\n\nimport android.app.Activity;\nimport android.content.Context;\nimport android.content.SharedPreferences;\nimport android.webkit.CookieManager;\nimport android.webkit.CookieSyncManager;\n\nimport com.microsoft.aad.adal.AuthenticationCallback;\nimport com.microsoft.aad.adal.AuthenticationCancelError;\nimport com.microsoft.aad.adal.AuthenticationContext;\nimport com.microsoft.aad.adal.AuthenticationException;\nimport com.microsoft.aad.adal.AuthenticationResult;\nimport com.microsoft.aad.adal.PromptBehavior;\nimport com.onedrive.sdk.authentication.adal.BrokerPermissionsChecker;\nimport com.microsoft.onedrivesdk.BuildConfig;\nimport com.onedrive.sdk.concurrency.ICallback;\nimport com.onedrive.sdk.concurrency.IExecutors;\nimport com.onedrive.sdk.concurrency.SimpleWaiter;\nimport com.onedrive.sdk.core.ClientException;\nimport com.onedrive.sdk.core.OneDriveErrorCodes;\nimport com.onedrive.sdk.http.BaseRequest;\nimport com.onedrive.sdk.http.HttpMethod;\nimport com.onedrive.sdk.http.IHttpProvider;\nimport com.onedrive.sdk.logger.ILogger;\nimport com.onedrive.sdk.options.HeaderOption;\nimport com.onedrive.sdk.options.Option;\n\nimport java.security.NoSuchAlgorithmException;\nimport java.util.ArrayList;\nimport java.util.List;\nimport java.util.concurrent.atomic.AtomicReference;\n\nimport javax.crypto.NoSuchPaddingException;\n\n/**\n * Wrapper for the ADAL authentication library:\n * https://github.com/AzureAD/azure-activedirectory-library-for-android\n */\npublic abstract class ADALAuthenticator implements IAuthenticator {\n\n    /**\n     * The login authority for Azure Active Directory.\n     */\n    private static final String LOGIN_AUTHORITY\n        = \"https://login.windows.net/common/oauth2/authorize\";\n\n    /**\n     * The Discovery Service url.\n     */\n    private static final String DISCOVERY_SERVICE_URL = \"https://api.office.com/discovery/v2.0/me/Services\";\n\n    /**\n     * The Discovery Service resource id.\n     */\n    private static final String DISCOVER_SERVICE_RESOURCE_ID = \"https://api.office.com/discovery/\";\n\n    /**\n     * The preferences for this authenticator.\n     */\n    private static final String ADAL_AUTHENTICATOR_PREFS = \"ADALAuthenticatorPrefs\";\n\n    /**\n     * The key for the user id.\n     */\n    private static final String USER_ID_KEY = \"userId\";\n\n    /**\n     * The key for the resource url.\n     */\n    private static final String RESOURCE_URL_KEY = \"resourceUrl\";\n\n    /**\n     * The key for the service info.\n     */\n    private static final String SERVICE_INFO_KEY = \"serviceInfo\";\n\n    /**\n     * The key for the version code\n     */\n    private static final String VERSION_CODE_KEY = \"versionCode\";\n\n    /**\n     * Determines if the authority should be validated.\n     */\n    private static final boolean VALIDATE_AUTHORITY = true;\n\n    /**\n     * The active resource url.\n     */\n    private final AtomicReference<String> mResourceUrl = new AtomicReference<>();\n\n    /**\n     * The active user id.\n     */\n    private final AtomicReference<String> mUserId = new AtomicReference<>();\n\n    /**\n     * The active service info object.\n     */\n    private final AtomicReference<ServiceInfo>  mOneDriveServiceInfo = new AtomicReference<>();\n\n    /**\n     * The active account info.\n     */\n    private final AtomicReference<IAccountInfo> mAccountInfo = new AtomicReference<>();\n\n    /**\n     * Determines if this authenticator has been initialized.\n     */\n    private boolean mInitialized;\n\n    /**\n     * The context UI, with which interactions should happen.\n     */\n    private Activity mActivity;\n\n    /**\n     * The http provider.\n     */\n    private IHttpProvider mHttpProvider;\n\n    /**\n     * The executors.\n     */\n    private IExecutors mExecutors;\n\n    /**\n     * The authentication context for ADAL.\n     */\n    private AuthenticationContext mAdalContext;\n\n    /**\n     * The logger.\n     */\n    private ILogger mLogger;\n\n    /**\n     * The client id for this authenticator.\n     * @return The client id.\n     */\n    protected abstract String getClientId();\n\n    /**\n     * The redirect url that corresponds with this client id.\n     * @return The redirect url.\n     */\n    protected abstract String getRedirectUrl();\n\n    /**\n     * Gets the current account info for this authenticator.\n     * @return NULL if no account is available.\n     */\n    @Override\n    public IAccountInfo getAccountInfo() {\n        return mAccountInfo.get();\n    }\n\n    /**\n     * Initializes the authenticator.\n     * @param executors The executors to schedule foreground and background tasks.\n     * @param httpProvider The http provider for sending requests.\n     * @param activity The activity to create interactive UI on.\n     * @param logger The logger for diagnostic information.\n     */\n    @Override\n    public synchronized void init(final IExecutors executors,\n                                  final IHttpProvider httpProvider,\n                                  final Activity activity,\n                                  final ILogger logger) {\n        if (mInitialized) {\n            return;\n        }\n\n        mExecutors = executors;\n        mHttpProvider = httpProvider;\n        mActivity = activity;\n        mLogger = logger;\n\n        final BrokerPermissionsChecker brokerPermissionsChecker = new BrokerPermissionsChecker(mActivity, mLogger);\n        brokerPermissionsChecker.check();\n\n        try {\n            mAdalContext = new AuthenticationContext(activity,\n                                                    LOGIN_AUTHORITY,\n                                                    VALIDATE_AUTHORITY);\n        } catch (final NoSuchAlgorithmException | NoSuchPaddingException e) {\n            final ClientAuthenticatorException exception = new ClientAuthenticatorException(\n                \"Unable to access required cryptographic libraries for ADAL\",\n                e,\n                OneDriveErrorCodes.AuthenticationFailure);\n            mLogger.logError(\"Problem creating the AuthenticationContext for ADAL\", exception);\n            throw exception;\n        }\n\n        final SharedPreferences prefs = getSharedPreferences();\n        mUserId.set(prefs.getString(USER_ID_KEY, null));\n        mResourceUrl.set(prefs.getString(RESOURCE_URL_KEY, null));\n\n        final String serviceInfoAsString = prefs.getString(SERVICE_INFO_KEY, null);\n        ServiceInfo serviceInfo = null;\n        try {\n            if (serviceInfoAsString != null) {\n                serviceInfo = mHttpProvider.getSerializer()\n                                  .deserializeObject(serviceInfoAsString, ServiceInfo.class);\n            }\n        } catch (final Exception ex) {\n            mLogger.logError(\"Unable to parse serviceInfo from saved preferences\", ex);\n        }\n        mOneDriveServiceInfo.set(serviceInfo);\n        mInitialized = true;\n\n        // If there is incomplete information about the account, clear everything so\n        // the application is in a known state.\n        if (mUserId.get() != null || mResourceUrl.get() != null || mOneDriveServiceInfo.get() != null) {\n            mLogger.logDebug(\"Found existing login information\");\n            if (mUserId.get() == null || mResourceUrl.get() == null || mOneDriveServiceInfo.get() == null) {\n                mLogger.logDebug(\"Existing login information was incompletely, flushing sign in state\");\n                this.logout();\n            }\n        }\n    }\n\n    /**\n     * Starts an interactive login asynchronously.\n     * @param emailAddressHint The hint for the email address during the interactive login.\n     * @param loginCallback The callback to be called when the login is complete.\n     */\n    @Override\n    public void login(final String emailAddressHint, final ICallback<IAccountInfo> loginCallback) {\n        if (!mInitialized) {\n            throw new IllegalStateException(\"init must be called\");\n        }\n\n        if (loginCallback == null) {\n            throw new IllegalArgumentException(\"loginCallback\");\n        }\n\n        mLogger.logDebug(\"Starting login async\");\n\n        mExecutors.performOnBackground(new Runnable() {\n            @Override\n            public void run() {\n                try {\n                    loginCallback.success(login(emailAddressHint));\n                } catch (final ClientException e) {\n                    loginCallback.failure(e);\n                }\n            }\n        });\n    }\n\n    /**\n     * Starts an interactive login.\n     * @param emailAddressHint The hint for the email address during the interactive login.\n     * @return The account info.\n     * @throws ClientException An exception occurs if the login was unable to complete for any reason.\n     */\n    @Override\n    public synchronized IAccountInfo login(final String emailAddressHint) throws ClientException {\n        if (!mInitialized) {\n            throw new IllegalStateException(\"init must be called\");\n        }\n\n        mLogger.logDebug(\"Starting login\");\n\n        final AuthenticationResult discoveryServiceAuthToken =\n            getDiscoveryServiceAuthResult(emailAddressHint);\n\n        if (discoveryServiceAuthToken.getStatus() != AuthenticationResult.AuthenticationStatus.Succeeded) {\n            final ClientAuthenticatorException clientAuthenticatorException\n                = new ClientAuthenticatorException(\"Unable to authenticate user with ADAL, Error Code: \"\n                                                       + discoveryServiceAuthToken.getErrorCode()\n                                                       + \" Error Message\"\n                                                       + discoveryServiceAuthToken\n                                                             .getErrorDescription(),\n                                                   OneDriveErrorCodes.AuthenticationFailure);\n            mLogger.logError(\"Unsuccessful login attempt\", clientAuthenticatorException);\n            throw clientAuthenticatorException;\n        }\n\n        // Get the resource information for the OneDrive services.\n        final ServiceInfo oneDriveServiceInfo =\n                getOneDriveServiceInfoFromDiscoveryService(discoveryServiceAuthToken.getAccessToken());\n\n        // Request a fresh auth token for the OneDrive service.\n        final AuthenticationResult oneDriveServiceAuthToken =\n                getOneDriveServiceAuthResult(oneDriveServiceInfo);\n\n        // Get the OneDrive auth token and save a reference to it.\n        final String serviceInfoAsString = mHttpProvider.getSerializer()\n                                               .serializeObject(oneDriveServiceInfo);\n\n        mLogger.logDebug(\"Successful login, saving information for silent re-auth\");\n        final SharedPreferences preferences = getSharedPreferences();\n        mResourceUrl.set(oneDriveServiceInfo.serviceEndpointUri);\n        mUserId.set(discoveryServiceAuthToken.getUserInfo().getUserId());\n        mOneDriveServiceInfo.set(oneDriveServiceInfo);\n        preferences\n                .edit()\n                .putString(RESOURCE_URL_KEY, mResourceUrl.get())\n                .putString(USER_ID_KEY, mUserId.get())\n                .putString(SERVICE_INFO_KEY, serviceInfoAsString)\n                .putInt(VERSION_CODE_KEY, BuildConfig.VERSION_CODE)\n                .apply();\n\n        mLogger.logDebug(\"Successfully retrieved login information\");\n        mLogger.logDebug(\"   Resource Url: \" + mResourceUrl.get());\n        mLogger.logDebug(\"   User ID: \" + mUserId.get());\n        mLogger.logDebug(\"   Service Info: \" + serviceInfoAsString);\n        final ADALAccountInfo adalAccountInfo = new ADALAccountInfo(this,\n                                                                    oneDriveServiceAuthToken,\n                                                                    oneDriveServiceInfo,\n                                                                    mLogger);\n        mAccountInfo.set(adalAccountInfo);\n        return mAccountInfo.get();\n    }\n\n    /**\n     * Starts a silent login asynchronously.\n     * @param loginCallback The callback to be called when the login is complete.\n     */\n    @Override\n    public void loginSilent(final ICallback<IAccountInfo> loginCallback) {\n        if (!mInitialized) {\n            throw new IllegalStateException(\"init must be called\");\n        }\n\n        if (loginCallback == null) {\n            throw new IllegalArgumentException(\"loginCallback\");\n        }\n\n        mLogger.logDebug(\"Starting login silent async\");\n\n        mExecutors.performOnBackground(new Runnable() {\n            @Override\n            public void run() {\n                try {\n                    mExecutors.performOnForeground(loginSilent(), loginCallback);\n                } catch (final ClientException e) {\n                    mExecutors.performOnForeground(e, loginCallback);\n                }\n            }\n        });\n    }\n\n    /**\n     * Starts a silent login.\n     * @return The account info.\n     * @throws ClientException An exception occurs if the login was unable to complete for any reason.\n     */\n    @Override\n    public synchronized IAccountInfo loginSilent() throws ClientException {\n        if (!mInitialized) {\n            throw new IllegalStateException(\"init must be called\");\n        }\n\n        mLogger.logDebug(\"Starting login silent\");\n\n        if (mResourceUrl.get() == null) {\n            mLogger.logDebug(\"No login information found for silent authentication\");\n            return null;\n        }\n\n        final SimpleWaiter loginSilentWaiter = new SimpleWaiter();\n        final AtomicReference<AuthenticationResult> authResult = new AtomicReference<>();\n        final AtomicReference<ClientException> error = new AtomicReference<>();\n\n        final AuthenticationCallback<AuthenticationResult> callback\n            = new AuthenticationCallback<AuthenticationResult>() {\n            @Override\n            public void onSuccess(final AuthenticationResult authenticationResult) {\n                final String userId;\n                if (authenticationResult.getUserInfo() == null) {\n                    userId = \"Invalid User Id\";\n                } else {\n                    userId = authenticationResult.getUserInfo().getUserId();\n                }\n                final String tenantId = authenticationResult.getTenantId();\n                mLogger.logDebug(String.format(\"Successful silent auth for user id '%s', tenant id '%s'\",\n                                               userId,\n                                               tenantId));\n                authResult.set(authenticationResult);\n                loginSilentWaiter.signal();\n            }\n\n            @Override\n            public void onError(final Exception e) {\n                String message = \"Silent authentication failure from ADAL\";\n                if (e instanceof AuthenticationException) {\n                    message = String.format(\"%s; Code %s\",\n                                            message,\n                                            ((AuthenticationException)e).getCode().getDescription());\n                }\n                mLogger.logDebug(message);\n                error.set(new ClientAuthenticatorException(message,\n                                                           e,\n                                                           OneDriveErrorCodes.AuthenticationFailure));\n                loginSilentWaiter.signal();\n            }\n        };\n\n        mAdalContext.acquireTokenSilent(mOneDriveServiceInfo.get().serviceResourceId,\n                getClientId(),\n                mUserId.get(),\n                callback);\n\n        loginSilentWaiter.waitForSignal();\n        //noinspection ThrowableResultOfMethodCallIgnored\n        if (error.get() != null) {\n            throw error.get();\n        }\n\n        final ADALAccountInfo adalAccountInfo = new ADALAccountInfo(this,\n                                                                    authResult.get(),\n                                                                    mOneDriveServiceInfo.get(),\n                                                                    mLogger);\n        mAccountInfo.set(adalAccountInfo);\n        return mAccountInfo.get();\n    }\n\n    /**\n     * Logs the current user out.\n     * @param logoutCallback The callback to be called when the logout is complete.\n     */\n    @Override\n    public void logout(final ICallback<Void> logoutCallback) {\n        if (!mInitialized) {\n            throw new IllegalStateException(\"init must be called\");\n        }\n\n        if (logoutCallback == null) {\n            throw new IllegalArgumentException(\"logoutCallback\");\n        }\n\n        mLogger.logDebug(\"Starting logout async\");\n\n        mExecutors.performOnBackground(new Runnable() {\n            @Override\n            public void run() {\n                try {\n                    logout();\n                    mExecutors.performOnForeground((Void) null, logoutCallback);\n                } catch (final ClientException e) {\n                    mExecutors.performOnForeground((Void) null, logoutCallback);\n                }\n            }\n        });\n    }\n\n    /**\n     * Logs the current user out.\n     * @throws ClientException An exception occurs if the logout was unable to complete for any reason.\n     */\n    @SuppressWarnings(\"deprecation\")\n    @Override\n    public synchronized void logout() throws ClientException {\n        if (!mInitialized) {\n            throw new IllegalStateException(\"init must be called\");\n        }\n\n        mLogger.logDebug(\"Starting logout\");\n        mLogger.logDebug(\"Clearing ADAL cache\");\n        mAdalContext.getCache().removeAll();\n\n        mLogger.logDebug(\"Clearing all webview cookies\");\n        CookieSyncManager.createInstance(mActivity);\n        CookieManager cookieManager = CookieManager.getInstance();\n        cookieManager.removeAllCookie();\n        CookieSyncManager.getInstance().sync();\n\n        mLogger.logDebug(\"Clearing all ADAL Authenticator shared preferences\");\n        final SharedPreferences prefs = getSharedPreferences();\n        prefs.edit()\n             .clear()\n             .putInt(VERSION_CODE_KEY, BuildConfig.VERSION_CODE)\n             .apply();\n        mUserId.set(null);\n        mResourceUrl.set(null);\n    }\n\n    /**\n     * Get the Discovery Service authentication result.\n     * @param emailAddressHint The username to populate in the UI.\n     * @return The authentication result.\n     */\n    private AuthenticationResult getDiscoveryServiceAuthResult(final String emailAddressHint) {\n        final SimpleWaiter discoveryCallbackWaiter = new SimpleWaiter();\n        final AtomicReference<ClientException> error = new AtomicReference<>();\n        final AtomicReference<AuthenticationResult> discoveryServiceToken =\n            new AtomicReference<>();\n        final AuthenticationCallback<AuthenticationResult> discoveryCallback =\n            new AuthenticationCallback<AuthenticationResult>() {\n            @Override\n            public void onSuccess(final AuthenticationResult authenticationResult) {\n                final String userId;\n                if (authenticationResult.getUserInfo() == null) {\n                    userId = \"Invalid User Id\";\n                } else {\n                    userId = authenticationResult.getUserInfo().getUserId();\n                }\n                final String tenantId = authenticationResult.getTenantId();\n                mLogger.logDebug(String.format(\n                    \"Successful response from the discover service for user id '%s', tenant id '%s'\",\n                    userId,\n                    tenantId));\n                discoveryServiceToken.set(authenticationResult);\n                discoveryCallbackWaiter.signal();\n            }\n\n            @Override\n            public void onError(final Exception ex) {\n                OneDriveErrorCodes code = OneDriveErrorCodes.AuthenticationFailure;\n                if (ex instanceof AuthenticationCancelError) {\n                    code = OneDriveErrorCodes.AuthenticationCancelled;\n                }\n\n                String message = \"Error while retrieving the discovery service auth token\";\n                if (ex instanceof AuthenticationException) {\n                    message = String.format(\"%s; Code %s\",\n                            message,\n                            ((AuthenticationException)ex).getCode().getDescription());\n                }\n\n                error.set(new ClientAuthenticatorException(message, ex, code));\n                mLogger.logError(\"Error while attempting to login interactively\", error.get());\n                discoveryCallbackWaiter.signal();\n            }\n            };\n\n        mLogger.logDebug(\"Starting interactive login for the discover service access token\");\n\n        // Initial resource is the Discovery Service.\n        mAdalContext.acquireToken(DISCOVER_SERVICE_RESOURCE_ID,\n                                    getClientId(),\n                                    getRedirectUrl(),\n                                    emailAddressHint,\n                                    PromptBehavior.Auto,\n                                    null,\n                                    discoveryCallback);\n\n        mLogger.logDebug(\"Waiting for interactive login to complete\");\n        discoveryCallbackWaiter.waitForSignal();\n        //noinspection ThrowableResultOfMethodCallIgnored\n        if (error.get() != null) {\n            throw error.get();\n        }\n        return discoveryServiceToken.get();\n    }\n\n    /**\n     * Gets the shared preferences for this authenticator.\n     * @return The shared preferences.\n     */\n    private SharedPreferences getSharedPreferences() {\n        return mActivity.getSharedPreferences(ADAL_AUTHENTICATOR_PREFS, Context.MODE_PRIVATE);\n    }\n\n    /**\n     * Finds the OneDrive API service from the list of services.\n     * @param services The list of services.\n     * @return The service info object for OneDrive.\n     */\n    private ServiceInfo getOneDriveApiService(final ServiceInfo[] services) {\n        for (final ServiceInfo serviceInfo : services) {\n            mLogger.logDebug(String.format(\"Service info resource id%s capabilities %s version %s\",\n                                           serviceInfo.serviceResourceId,\n                                           serviceInfo.capability,\n                                           serviceInfo.serviceApiVersion));\n            if (serviceInfo.capability.equalsIgnoreCase(\"MyFiles\")\n                && serviceInfo.serviceApiVersion.equalsIgnoreCase(\"v2.0\")) {\n                return serviceInfo;\n            }\n        }\n\n        throw new ClientAuthenticatorException(\"Unable to file the files services from the directory provider\",\n                                               OneDriveErrorCodes.AuthenticationFailure);\n    }\n\n    /**\n     * Queries the Discovery Service from the list of services for OneDrive.\n     * @param accessToken The access token for the Discovery Service.\n     * @return The OneDrive service info.\n     */\n    private ServiceInfo getOneDriveServiceInfoFromDiscoveryService(final String accessToken) {\n        final List<Option> options = new ArrayList<>();\n        options.add(new HeaderOption(AuthorizationInterceptor.AUTHORIZATION_HEADER_NAME,\n                                     AuthorizationInterceptor.OAUTH_BEARER_PREFIX + accessToken));\n\n        mLogger.logDebug(\"Starting discovery service request\");\n        final BaseRequest discoveryServiceRequest = new BaseRequest(DISCOVERY_SERVICE_URL,\n                                                                    /* client */ null,\n                                                                    options,\n                                                                    /* response class */ null) { };\n        discoveryServiceRequest.setHttpMethod(HttpMethod.GET);\n\n        final DiscoveryServiceResponse discoveryServiceResponse =\n            mHttpProvider.send(discoveryServiceRequest,\n                               DiscoveryServiceResponse.class,\n                               /* serialization object*/ null);\n        return getOneDriveApiService(discoveryServiceResponse.services);\n    }\n\n    /**\n     * Gets the authentication token for the OneDrive service.\n     * @param oneDriveServiceInfo The OneDrive services info.\n     * @return The authentication result for this OneDrive service.\n     */\n    private AuthenticationResult getOneDriveServiceAuthResult(final ServiceInfo oneDriveServiceInfo) {\n        final SimpleWaiter authorityCallbackWaiter = new SimpleWaiter();\n        final AtomicReference<ClientException> error = new AtomicReference<>();\n        final AtomicReference<AuthenticationResult> oneDriveServiceAuthToken = new AtomicReference<>();\n        final AuthenticationCallback<AuthenticationResult> authorityCallback =\n            new AuthenticationCallback<AuthenticationResult>() {\n            @Override\n            public void onSuccess(final AuthenticationResult authenticationResult) {\n                mLogger.logDebug(\"Successful refreshed the OneDrive service authentication token\");\n                oneDriveServiceAuthToken.set(authenticationResult);\n                authorityCallbackWaiter.signal();\n            }\n\n            @Override\n            public void onError(final Exception e) {\n                String message = \"Error while retrieving the service specific auth token\";\n                OneDriveErrorCodes code = OneDriveErrorCodes.AuthenticationFailure;\n                if (e instanceof AuthenticationCancelError) {\n                    code = OneDriveErrorCodes.AuthenticationCancelled;\n                }\n                if (e instanceof AuthenticationException) {\n                    message = String.format(\"%s; Code %s\",\n                                            message,\n                                            ((AuthenticationException)e).getCode().getDescription());\n                }\n\n                error.set(new ClientAuthenticatorException(message,\n                                                           e,\n                                                           code));\n                mLogger.logError(\"Unable to refresh token into OneDrive service access token\", error.get());\n                authorityCallbackWaiter.signal();\n            }\n        };\n        mLogger.logDebug(\"Starting OneDrive resource refresh token request\");\n        mAdalContext.acquireToken(mActivity,\n                                  oneDriveServiceInfo.serviceResourceId,\n                                  getClientId(),\n                                  getRedirectUrl(),\n                                  PromptBehavior.Auto,\n                                  authorityCallback);\n\n        mLogger.logDebug(\"Waiting for token refresh\");\n        authorityCallbackWaiter.waitForSignal();\n        //noinspection ThrowableResultOfMethodCallIgnored\n        if (error.get() != null) {\n            throw error.get();\n        }\n        return oneDriveServiceAuthToken.get();\n    }\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/authentication/AccountType.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.authentication;\n\n/**\n * The type of account.\n */\npublic enum AccountType {\n\n    /**\n     * A Microsoft account.\n     */\n    MicrosoftAccount(\"MSA\"),\n\n    /**\n     * An Azure Active Directory account.\n     */\n    ActiveDirectory(\"AAD\");\n\n    /**\n     * The shorthand string representation from the disambiguation service.\n     */\n    private final String[] mRepresentations;\n\n    /**\n     * Creates an AccountType object.\n     * @param representations The shorthand string representation from the disambiguation service.\n     */\n    AccountType(final String... representations) {\n        mRepresentations = representations;\n    }\n\n    /**\n     * Gets an AccountType object from a string representation.\n     * @param representation The shorthand string representation from the disambiguation service.\n     * @return The account type for this string representation.\n     */\n    public static AccountType fromRepresentation(final String representation) {\n        for (final AccountType accountType : AccountType.values()) {\n            for (final String possibleRepresentation : accountType.mRepresentations) {\n                if (possibleRepresentation.equalsIgnoreCase(representation)) {\n                    return accountType;\n                }\n            }\n        }\n\n        final String message = String.format(\"Unable to find a representation for '%s\", representation);\n        throw new UnsupportedOperationException(message);\n    }\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/authentication/AuthorizationInterceptor.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.authentication;\n\nimport com.onedrive.sdk.http.IHttpRequest;\nimport com.onedrive.sdk.http.IRequestInterceptor;\nimport com.onedrive.sdk.logger.ILogger;\nimport com.onedrive.sdk.options.HeaderOption;\n\n/**\n * Intercepts a request and adds authorization headers.\n */\npublic class AuthorizationInterceptor implements IRequestInterceptor {\n\n    /**\n     * The authorization header name.\n     */\n    public static final String AUTHORIZATION_HEADER_NAME = \"Authorization\";\n\n    /**\n     * The bearer prefix.\n     */\n    public static final String OAUTH_BEARER_PREFIX = \"bearer \";\n\n    /**\n     * The authenticator.\n     */\n    private final IAuthenticator mAuthenticator;\n\n    /**\n     * The logger.\n     */\n    private final ILogger mLogger;\n\n    /**\n     * Creates the authorization interceptor.\n     * @param authenticator The authenticator.\n     * @param logger The logger.\n     */\n    public AuthorizationInterceptor(final IAuthenticator authenticator, final ILogger logger) {\n        mAuthenticator = authenticator;\n        mLogger = logger;\n    }\n\n    /**\n     * Intercepts the request.\n     * @param request The request to intercept.\n     */\n    @Override\n    public void intercept(final IHttpRequest request) {\n        mLogger.logDebug(\"Intercepting request, \" + request.getRequestUrl());\n\n        // If the request already has an authorization header, do not intercept it.\n        for (final HeaderOption option : request.getHeaders()) {\n            if (option.getName().equals(AUTHORIZATION_HEADER_NAME)) {\n                mLogger.logDebug(\"Found an existing authorization header!\");\n                return;\n            }\n        }\n\n        if (mAuthenticator.getAccountInfo() != null) {\n            mLogger.logDebug(\"Found account information\");\n            if (mAuthenticator.getAccountInfo().isExpired()) {\n                mLogger.logDebug(\"Account access token is expired, refreshing\");\n                mAuthenticator.getAccountInfo().refresh();\n            }\n\n            final String accessToken = mAuthenticator.getAccountInfo().getAccessToken();\n            request.addHeader(AUTHORIZATION_HEADER_NAME, OAUTH_BEARER_PREFIX + accessToken);\n        } else {\n            mLogger.logDebug(\"No active account found, skipping writing auth header\");\n        }\n    }\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/authentication/ClientAuthenticatorException.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.authentication;\n\nimport com.onedrive.sdk.core.ClientException;\nimport com.onedrive.sdk.core.OneDriveErrorCodes;\n\n/**\n * An exception from the client that is specifically authentication related.\n */\npublic class ClientAuthenticatorException extends ClientException {\n\n    /**\n     * Creates a client authentication message.\n     * @param message The message to display.\n     * @param ex The exception from the client.\n     * @param code The code for this error.\n     */\n    public ClientAuthenticatorException(final String message, final Throwable ex, final OneDriveErrorCodes code) {\n        super(message, ex, code);\n    }\n\n    /**\n     * Creates a client authentication message.\n     * @param message The message to display.\n     * @param code The code for this error.\n     */\n    public ClientAuthenticatorException(final String message, final OneDriveErrorCodes code) {\n        this(message, null, code);\n    }\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/authentication/DisambiguationAuthenticator.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.authentication;\n\nimport com.microsoft.onedrivesdk.BuildConfig;\nimport com.onedrive.sdk.concurrency.ICallback;\nimport com.onedrive.sdk.concurrency.IExecutors;\nimport com.onedrive.sdk.concurrency.SimpleWaiter;\nimport com.onedrive.sdk.core.ClientException;\nimport com.onedrive.sdk.core.OneDriveErrorCodes;\nimport com.onedrive.sdk.http.IHttpProvider;\nimport com.onedrive.sdk.logger.ILogger;\n\nimport android.app.Activity;\nimport android.content.Context;\nimport android.content.SharedPreferences;\nimport android.support.annotation.Nullable;\n\nimport java.security.InvalidParameterException;\nimport java.util.concurrent.atomic.AtomicReference;\n\n/**\n * Wrapper around the ADAL and MSA authenticators which can disambiguate between them.\n */\npublic class DisambiguationAuthenticator implements IAuthenticator {\n\n    /**\n     * The preferences for this authenticator.\n     */\n    private static final String DISAMBIGUATION_AUTHENTICATOR_PREFS = \"DisambiguationAuthenticatorPrefs\";\n\n    /**\n     * The key for the version code\n     */\n    public static final String VERSION_CODE_KEY = \"versionCode\";\n\n    /**\n     * The key for the account type\n     */\n    public static final String ACCOUNT_TYPE_KEY = \"accountType\";\n\n    /**\n     * The current account info object.\n     */\n    private final AtomicReference<IAccountInfo> mAccountInfo = new AtomicReference<>();\n\n    /**\n     * The MSA Authenticator.\n     */\n    private final MSAAuthenticator mMSAAuthenticator;\n\n    /**\n     * The ADAL Authenticator.\n     */\n    private final ADALAuthenticator mADALAuthenticator;\n\n    /**\n     * The executors.\n     */\n    private IExecutors mExecutors;\n\n    /**\n     * The context UI interactions should happen with.\n     */\n    private Activity mActivity;\n\n    /**\n     * Indicates if this authenticator has been initialized.\n     */\n    private boolean mInitialized;\n\n    /**\n     * The logger.\n     */\n    private ILogger mLogger;\n\n    /**\n     * Creates a disambiguation authenticator.\n     * @param msaAuthenticator The MSA Authenticator.\n     * @param adalAuthenticator The ADAL Authenticator.\n     */\n    public DisambiguationAuthenticator(final MSAAuthenticator msaAuthenticator,\n                                       final ADALAuthenticator adalAuthenticator)\n    {\n        mMSAAuthenticator = msaAuthenticator;\n        mADALAuthenticator = adalAuthenticator;\n    }\n\n    /**\n     * Initializes the authenticator.\n     * @param executors The executors to schedule foreground and background tasks.\n     * @param httpProvider The http provider for sending requests.\n     * @param activity The activity to create interactive UI on.\n     * @param logger The logger for diagnostic information.\n     */\n    @Override\n    public synchronized void init(final IExecutors executors,\n                                  final IHttpProvider httpProvider,\n                                  final Activity activity,\n                                  final ILogger logger) {\n        if (mInitialized) {\n            return;\n        }\n\n        mExecutors = executors;\n        mActivity = activity;\n        mLogger = logger;\n        mLogger.logDebug(\"Initializing MSA and ADAL authenticators\");\n        mMSAAuthenticator.init(executors, httpProvider, activity, logger);\n        mADALAuthenticator.init(executors, httpProvider, activity, logger);\n        mInitialized = true;\n    }\n\n    /**\n     * Starts an interactive login asynchronously.\n     * @param emailAddressHint The hint for the email address during the interactive login.\n     * @param loginCallback The callback to be called when the login is complete.\n     */\n    @Override\n    public void login(final String emailAddressHint, final ICallback<IAccountInfo> loginCallback) {\n        if (!mInitialized) {\n            throw new IllegalStateException(\"init must be called\");\n        }\n\n        if (loginCallback == null) {\n            throw new InvalidParameterException(\"loginCallback\");\n        }\n\n        mLogger.logDebug(\"Starting login async\");\n\n        mExecutors.performOnBackground(new Runnable() {\n            @Override\n            public void run() {\n                try {\n                    mExecutors.performOnForeground(login(emailAddressHint), loginCallback);\n                } catch (final ClientException e) {\n                    mExecutors.performOnForeground(e, loginCallback);\n                }\n            }\n        });\n    }\n\n    /**\n     * Starts an interactive login.\n     * @param emailAddressHint The hint for the email address during the interactive login.\n     * @return The account info.\n     * @throws ClientException If the login was unable to complete for any reason.\n     */\n    @Override\n    public synchronized IAccountInfo login(final String emailAddressHint) throws ClientException {\n        mLogger.logDebug(\"Starting login\");\n        final SimpleWaiter disambiguationWaiter = new SimpleWaiter();\n        final AtomicReference<DisambiguationResponse> response = new AtomicReference<>();\n        final AtomicReference<ClientException> error = new AtomicReference<>();\n        final ICallback<DisambiguationResponse> disambiguationCallback = new ICallback<DisambiguationResponse>() {\n            @Override\n            public void success(final DisambiguationResponse result) {\n                mLogger.logDebug(String.format(\"Successfully disambiguated '%s' as account type '%s'\",\n                                                  result.getAccount(),\n                                                  result.getAccountType()));\n                response.set(result);\n                disambiguationWaiter.signal();\n            }\n\n            @Override\n            public void failure(final ClientException error2) {\n                error.set(new ClientAuthenticatorException(\"Unable to disambiguate account type\",\n                                                           OneDriveErrorCodes.AuthenticationFailure));\n                //noinspection ThrowableResultOfMethodCallIgnored\n                mLogger.logError(error.get().getMessage(), error.get());\n                disambiguationWaiter.signal();\n            }\n        };\n\n        AccountType accountType = getAccountTypeInPreferences();\n        String accountName = null;\n        if (accountType != null) {\n            mLogger.logDebug(String.format(\"Found saved account information %s type of account\", accountType));\n        } else {\n            mLogger.logDebug(\"Creating disambiguation ui, waiting for user to sign in\");\n            new DisambiguationRequest(mActivity, disambiguationCallback, mLogger).execute();\n            disambiguationWaiter.waitForSignal();\n\n            //noinspection ThrowableResultOfMethodCallIgnored\n            if (error.get() != null) {\n                throw error.get();\n            }\n            final DisambiguationResponse disambiguationResponse = response.get();\n            accountType = disambiguationResponse.getAccountType();\n            accountName = disambiguationResponse.getAccount();\n        }\n\n        final IAccountInfo accountInfo;\n        switch (accountType) {\n            case ActiveDirectory:\n                accountInfo = mADALAuthenticator.login(accountName);\n                break;\n            case MicrosoftAccount:\n                accountInfo = mMSAAuthenticator.login(accountName);\n                break;\n            default:\n                final UnsupportedOperationException unsupportedOperationException\n                    = new UnsupportedOperationException(\"Unrecognized account type \"\n                                                        + accountType);\n                mLogger.logError(\"Unrecognized account type\", unsupportedOperationException);\n                throw unsupportedOperationException;\n        }\n\n        setAccountTypeInPreferences(accountType);\n        mAccountInfo.set(accountInfo);\n        return mAccountInfo.get();\n    }\n\n    /**\n     * Starts a silent login asynchronously.\n     * @param loginCallback The callback to be called when the login is complete.\n     */\n    @Override\n    public void loginSilent(final ICallback<IAccountInfo> loginCallback) {\n        if (!mInitialized) {\n            throw new IllegalStateException(\"init must be called\");\n        }\n\n        if (loginCallback == null) {\n            throw new InvalidParameterException(\"loginCallback\");\n        }\n\n        mLogger.logDebug(\"Starting login silent async\");\n        mExecutors.performOnBackground(new Runnable() {\n            @Override\n            public void run() {\n                try {\n                    mExecutors.performOnForeground(loginSilent(), loginCallback);\n                } catch (final ClientException e) {\n                    mExecutors.performOnForeground(e, loginCallback);\n                }\n            }\n        });\n    }\n\n    /**\n     * Starts a silent login.\n     * @return The account info.\n     * @throws ClientException Exception occurs if the login was unable to complete for any reason.\n     */\n    @Override\n    public synchronized IAccountInfo loginSilent() throws ClientException {\n        if (!mInitialized) {\n            throw new IllegalStateException(\"init must be called\");\n        }\n\n        mLogger.logDebug(\"Starting login silent\");\n\n        final AccountType accountType = getAccountTypeInPreferences();\n        if (accountType != null) {\n            mLogger.logDebug(String.format(\"Expecting %s type of account\", accountType));\n        }\n\n        mLogger.logDebug(\"Checking MSA\");\n        IAccountInfo accountInfo = mMSAAuthenticator.loginSilent();\n        if (accountInfo != null) {\n            mLogger.logDebug(\"Found account info in MSA\");\n            setAccountTypeInPreferences(accountType);\n            mAccountInfo.set(accountInfo);\n            return accountInfo;\n        }\n\n        mLogger.logDebug(\"Checking ADAL\");\n        accountInfo = mADALAuthenticator.loginSilent();\n        mAccountInfo.set(accountInfo);\n        if (accountInfo != null) {\n            mLogger.logDebug(\"Found account info in ADAL\");\n            setAccountTypeInPreferences(accountType);\n        }\n        return mAccountInfo.get();\n    }\n\n    /**\n     * Log the current user out.\n     * @param logoutCallback The callback to be called when the logout is complete.\n     */\n    @Override\n    public void logout(final ICallback<Void> logoutCallback) {\n        if (!mInitialized) {\n            throw new IllegalStateException(\"init must be called\");\n        }\n\n        if (logoutCallback == null) {\n            throw new InvalidParameterException(\"logoutCallback\");\n        }\n\n        mLogger.logDebug(\"Starting logout async\");\n        mExecutors.performOnBackground(new Runnable() {\n            @Override\n            public void run() {\n                logout();\n                mExecutors.performOnForeground((Void) null, logoutCallback);\n            }\n        });\n    }\n\n    /**\n     * Log the current user out.\n     * @throws ClientException If the logout was unable to complete for any reason.\n     */\n    @Override\n    public synchronized void logout() throws ClientException {\n        if (!mInitialized) {\n            throw new IllegalStateException(\"init must be called\");\n        }\n\n        mLogger.logDebug(\"Starting logout\");\n        if (mMSAAuthenticator.getAccountInfo() != null) {\n            mLogger.logDebug(\"Starting logout of MSA account\");\n            mMSAAuthenticator.logout();\n        }\n\n        if (mADALAuthenticator.getAccountInfo() != null) {\n            mLogger.logDebug(\"Starting logout of ADAL account\");\n            mADALAuthenticator.logout();\n        }\n\n        getSharedPreferences()\n                .edit()\n                .clear()\n                .putInt(VERSION_CODE_KEY, BuildConfig.VERSION_CODE)\n                .commit();\n    }\n\n    /**\n     * Gets the current account info for this authenticator.\n     * @return NULL if no account is available.\n     */\n    @Override\n    public IAccountInfo getAccountInfo() {\n        return mAccountInfo.get();\n    }\n\n    /**\n     * Gets the shared preferences for this authenticator.\n     * @return The shared preferences.\n     */\n    private SharedPreferences getSharedPreferences() {\n        return mActivity.getSharedPreferences(DISAMBIGUATION_AUTHENTICATOR_PREFS, Context.MODE_PRIVATE);\n    }\n\n    /**\n     * Sets the AccountType from SharedPreferences\n     * @param accountType The account type, can be null\n     */\n    private void setAccountTypeInPreferences(@Nullable final AccountType accountType) {\n        if (accountType == null) {\n            return;\n        }\n\n        getSharedPreferences()\n                .edit()\n                .putString(ACCOUNT_TYPE_KEY, accountType.toString())\n                .putInt(VERSION_CODE_KEY, BuildConfig.VERSION_CODE)\n                .commit();\n    }\n\n    /**\n     * Gets the AccountType from SharedPreferences\n     * @return The account type, null if none was found\n     */\n    @Nullable\n    private AccountType getAccountTypeInPreferences() {\n        final String accountTypeString = getSharedPreferences().getString(ACCOUNT_TYPE_KEY, null);\n        if (accountTypeString == null) {\n            return null;\n        }\n        return AccountType.valueOf(accountTypeString);\n    }\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/authentication/DisambiguationDialog.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.authentication;\n\nimport com.onedrive.sdk.core.OneDriveErrorCodes;\nimport com.onedrive.sdk.logger.ILogger;\n\nimport android.annotation.SuppressLint;\nimport android.app.Dialog;\nimport android.content.Context;\nimport android.content.DialogInterface;\nimport android.os.Bundle;\nimport android.view.View;\nimport android.view.ViewGroup;\nimport android.webkit.WebSettings;\nimport android.webkit.WebView;\nimport android.widget.FrameLayout;\nimport android.widget.LinearLayout;\n\n/**\n * A dialog that hosts a the disambiguation flow.\n */\nclass DisambiguationDialog extends Dialog implements DialogInterface.OnCancelListener {\n\n    /**\n     * The url for disambiguation page.\n     */\n    private static final String DISAMBIGUATION_PAGE_URL = \"https://onedrive.live\"\n        + \".com/picker/accountchooser?ru=https://localhost:777&load_login=false\";\n\n    /**\n     * The disambiguation request object.\n     */\n    private final DisambiguationRequest mRequest;\n\n    /**\n     * Creates the disambiguation dialog.\n     * @param context The context to show the UI in.\n     * @param request The disambiguation request.\n     */\n    public DisambiguationDialog(final Context context,\n                                final DisambiguationRequest request) {\n        super(context, android.R.style.Theme_Translucent_NoTitleBar);\n        mRequest = request;\n    }\n\n    /**\n     * Get the logger.\n     * @return The logger.\n     */\n    public ILogger getLogger() {\n        return mRequest.getLogger();\n    }\n\n    @Override\n    public void onCancel(final DialogInterface dialogInterface) {\n        mRequest.getLogger().logDebug(\"Disambiguation dialog canceled\");\n        mRequest.getCallback().failure(new ClientAuthenticatorException(\"Authentication Disambiguation Canceled\",\n                                                                        OneDriveErrorCodes.AuthenticationCancelled));\n    }\n\n    @SuppressLint(\"SetJavaScriptEnabled\")\n    @Override\n    protected void onCreate(final Bundle savedInstanceState) {\n        super.onCreate(savedInstanceState);\n\n        setOnCancelListener(this);\n\n        final FrameLayout content = new FrameLayout(this.getContext());\n        final LinearLayout webViewContainer = new LinearLayout(this.getContext());\n        final WebView webView = new WebView(this.getContext());\n\n        webView.setWebViewClient(new DisambiguationWebView(this, mRequest.getCallback()));\n\n        final WebSettings webSettings = webView.getSettings();\n        webSettings.setJavaScriptEnabled(true);\n\n        webView.loadUrl(DISAMBIGUATION_PAGE_URL);\n        final ViewGroup.LayoutParams matchParentLayout = new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT,\n                ViewGroup.LayoutParams.MATCH_PARENT);\n        webView.setLayoutParams(matchParentLayout);\n        webView.setVisibility(View.VISIBLE);\n\n        webViewContainer.addView(webView);\n        webViewContainer.setVisibility(View.VISIBLE);\n\n        content.addView(webViewContainer);\n        content.setVisibility(View.VISIBLE);\n        content.forceLayout();\n        webViewContainer.forceLayout();\n\n        this.addContentView(content, matchParentLayout);\n    }\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/authentication/DisambiguationRequest.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.authentication;\n\nimport android.app.Activity;\n\nimport com.onedrive.sdk.concurrency.ICallback;\nimport com.onedrive.sdk.logger.ILogger;\n\n/**\n * A disambiguation request.\n */\nclass DisambiguationRequest {\n\n    /**\n     * The current activity.\n     */\n    private final Activity mActivity;\n\n    /**\n     * The callback when the request has completed.\n     */\n    private final ICallback<DisambiguationResponse> mCallback;\n\n    /**\n     * The logger.\n     */\n    private final ILogger mLogger;\n\n    /**\n     * Creates the disambiguation request.\n     * @param activity The context to show the UI in.\n     * @param callback The callback when the request has completed.\n     * @param logger The logger.\n     */\n    public DisambiguationRequest(final Activity activity,\n                                 final ICallback<DisambiguationResponse> callback,\n                                 final ILogger logger) {\n        mActivity = activity;\n        mCallback = callback;\n        mLogger = logger;\n    }\n\n    /**\n     * Executes the disambiguation request.\n     */\n    public void execute() {\n        mActivity.runOnUiThread(new Runnable() {\n            @Override\n            public void run() {\n                new DisambiguationDialog(mActivity, DisambiguationRequest.this).show();\n            }\n        });\n    }\n\n    /**\n     * Gets the callback when the request has completed.\n     * @return The callback.\n     */\n    public ICallback<DisambiguationResponse> getCallback() {\n        return mCallback;\n    }\n\n    /**\n     * Get the logger.\n     * @return The logger.\n     */\n    public ILogger getLogger() {\n        return mLogger;\n    }\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/authentication/DisambiguationResponse.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.authentication;\n\n/**\n * The response for the disambiguation request.\n */\nclass DisambiguationResponse {\n\n    /**\n     * The type of account.\n     */\n    private final AccountType mAccountType;\n\n    /**\n     * The account's email address.\n     */\n    private final String mAccount;\n\n    /**\n     * Creates the disambiguation response.\n     * @param accountType The account type.\n     * @param account The account email.\n     */\n    public DisambiguationResponse(final AccountType accountType, final String account) {\n        mAccountType = accountType;\n        mAccount = account;\n    }\n\n    /**\n     * Gets the account type.\n     * @return The account type.\n     */\n    public AccountType getAccountType() {\n        return mAccountType;\n    }\n\n    /**\n     * Gets the account email address.\n     * @return The account email address.\n     */\n    public String getAccount() {\n        return mAccount;\n    }\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/authentication/DisambiguationWebView.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.authentication;\n\nimport android.graphics.Bitmap;\nimport android.net.Uri;\nimport android.webkit.WebView;\nimport android.webkit.WebViewClient;\n\nimport com.onedrive.sdk.concurrency.ICallback;\nimport com.onedrive.sdk.core.OneDriveErrorCodes;\n\nimport java.util.Locale;\n\n/**\n * The web view to host the disambiguation UI in.\n */\nclass DisambiguationWebView extends WebViewClient {\n\n    /**\n     * The hosting dialog.\n     */\n    private final DisambiguationDialog mDisambiguationDialog;\n\n    /**\n     * The callback when the UI has completed.\n     */\n    private final ICallback<DisambiguationResponse> mCallback;\n\n    /**\n     * Creates the disambiguation web view.\n     * @param disambiguationDialog The hosting dialog.\n     * @param callback The callback when the UI has completed.\n     */\n    public DisambiguationWebView(final DisambiguationDialog disambiguationDialog,\n                                 final ICallback<DisambiguationResponse> callback) {\n        mDisambiguationDialog = disambiguationDialog;\n        mCallback = callback;\n    }\n\n    @Override\n    public void onPageStarted(final WebView view, final String url, final Bitmap favicon) {\n        mDisambiguationDialog.getLogger().logDebug(\"onPageStarted for url '\" + url + \"'\");\n        super.onPageStarted(view, url, favicon);\n        final Uri uri = Uri.parse(url);\n        if (uri.getAuthority().equalsIgnoreCase(\"localhost:777\")) {\n            mDisambiguationDialog.getLogger().logDebug(\"Found callback from disambiguation service\");\n            final AccountType accountType = AccountType.fromRepresentation(uri.getQueryParameter(\"account_type\"));\n            final String account = uri.getQueryParameter(\"user_email\");\n            mCallback.success(new DisambiguationResponse(accountType, account));\n            view.stopLoading();\n            mDisambiguationDialog.dismiss();\n        }\n    }\n\n    @SuppressWarnings(\"deprecation\")\n    @Override\n    public void onReceivedError(final WebView view,\n                                final int errorCode,\n                                final String description,\n                                final String failingUrl) {\n        super.onReceivedError(view, errorCode, description, failingUrl);\n\n        final String errorMessage = String.format(Locale.ROOT,\n                                                  \"Url %s, Error code: %d, Description %s\",\n                                                  failingUrl,\n                                                  errorCode,\n                                                  description);\n        mCallback.failure(new ClientAuthenticatorException(errorMessage, OneDriveErrorCodes.AuthenticationFailure));\n        mDisambiguationDialog.dismiss();\n    }\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/authentication/DiscoveryServiceResponse.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.authentication;\n\nimport com.google.gson.annotations.SerializedName;\n\npublic class DiscoveryServiceResponse {\n    \n    @SerializedName(\"value\")\n    public ServiceInfo[] services;\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/authentication/IAccountInfo.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.authentication;\n\n/**\n * Represents account information used to communicate with the OneDrive service.\n */\npublic interface IAccountInfo {\n\n    /**\n     * Gets the type of the account.\n     * @return The account type.\n     */\n    AccountType getAccountType();\n\n    /**\n     * Gets the access token for requests against the service root.\n     * @return The access token for requests against the service root.\n     */\n    String getAccessToken();\n\n    /**\n     * Gets the OneDrive service root for this account.\n     * @return The OneDrive service root for this account.\n     */\n    String getServiceRoot();\n\n    /**\n     * Indicates if the account access token is expired and needs to be refreshed.\n     * @return true if the refresh() method needs to be called and\n     *         false if the account is still valid.\n     */\n    boolean isExpired();\n\n    /**\n     * Refreshes the authentication token for this account info.\n     */\n    void refresh();\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/authentication/IAuthenticator.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.authentication;\n\nimport android.app.Activity;\n\nimport com.onedrive.sdk.concurrency.ICallback;\nimport com.onedrive.sdk.concurrency.IExecutors;\nimport com.onedrive.sdk.core.ClientException;\nimport com.onedrive.sdk.http.IHttpProvider;\nimport com.onedrive.sdk.logger.ILogger;\n\n/**\n * Authenticates a user interactively and silently.\n */\npublic interface IAuthenticator {\n\n    /**\n     * Gets the current account info for this authenticator.\n     * @return NULL if no account is available.\n     */\n    IAccountInfo getAccountInfo();\n\n    /**\n     * Initializes the authenticator.\n     * @param executors The executors to schedule foreground and background tasks.\n     * @param httpProvider The http provider for sending requests.\n     * @param activity The activity to create interactive UI on.\n     * @param logger The logger for diagnostic information.\n     */\n    void init(final IExecutors executors,\n              final IHttpProvider httpProvider,\n              final Activity activity,\n              final ILogger logger);\n\n    /**\n     * Starts an interactive login asynchronously.\n     * @param emailAddressHint The hint for the email address during the interactive login.\n     * @param loginCallback The callback to be called when the login is complete.\n     */\n    void login(final String emailAddressHint, final ICallback<IAccountInfo> loginCallback);\n\n    /**\n     * Starts an interactive login.\n     * @param emailAddressHint The hint for the email address during the interactive login.\n     * @return The account info.\n     * @throws ClientException An exception occurs if the login was unable to complete for any reason.\n     */\n    IAccountInfo login(final String emailAddressHint) throws ClientException;\n\n    /**\n     * Starts a silent login asynchronously.\n     * @param loginCallback The callback to be called when the login is complete.\n     */\n    void loginSilent(final ICallback<IAccountInfo> loginCallback);\n\n    /**\n     * Starts a silent login.\n     * @return The account info.\n     * @throws ClientException If the login was unable to complete for any reason.\n     */\n    IAccountInfo loginSilent() throws ClientException;\n\n    /**\n     * Log the current user out.\n     * @param logoutCallback The callback to be called when the logout is complete.\n     */\n    void logout(final ICallback<Void> logoutCallback);\n\n    /**\n     * Log the current user out.\n     * @throws ClientException Indicates if the logout was unable to complete for any reason.\n     */\n    void logout() throws ClientException;\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/authentication/MSAAccountInfo.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.authentication;\n\nimport com.microsoft.services.msa.LiveConnectSession;\nimport com.onedrive.sdk.logger.ILogger;\n\n/**\n * Account information for a MSA based account.\n */\npublic class MSAAccountInfo implements IAccountInfo {\n\n    /**\n     * The service root for the OneDrive personal API.\n     */\n    public static final String ONE_DRIVE_PERSONAL_SERVICE_ROOT = \"https://api.onedrive.com/v1.0\";\n\n    /**\n     * The authenticator that can refresh this account.\n     */\n    private final MSAAuthenticator mAuthenticator;\n\n    /**\n     * The session this account is based off of.\n     */\n    private LiveConnectSession mSession;\n\n    /**\n     * The logger.\n     */\n    private final ILogger mLogger;\n\n    /**\n     * Creates an MSAAccountInfo object.\n     * @param authenticator The authenticator that this account info was created from.\n     * @param liveConnectSession The session this account is based off of.\n     * @param logger The logger.\n     */\n    public MSAAccountInfo(final MSAAuthenticator authenticator,\n                          final LiveConnectSession liveConnectSession,\n                          final ILogger logger) {\n        mAuthenticator = authenticator;\n        mSession = liveConnectSession;\n        mLogger = logger;\n    }\n\n    /**\n     * Get the type of the account.\n     * @return The MicrosoftAccount account type.\n     */\n    @Override\n    public AccountType getAccountType() {\n        return AccountType.MicrosoftAccount;\n    }\n\n    /**\n     * Get the access token for requests against the service root.\n     * @return The access token for requests against the service root.\n     */\n    @Override\n    public String getAccessToken() {\n        return mSession.getAccessToken();\n    }\n\n    /**\n     * Get the OneDrive service root for this account.\n     * @return the OneDrive service root for this account.\n     */\n    @Override\n    public String getServiceRoot() {\n        return ONE_DRIVE_PERSONAL_SERVICE_ROOT;\n    }\n\n    /**\n     * Indicates if the account access token is expired and needs to be refreshed.\n     * @return true if refresh() needs to be called and\n     *         false if the account is still valid.\n     */\n    @Override\n    public boolean isExpired() {\n        return mSession.isExpired();\n    }\n\n    /**\n     * Refreshes the authentication token for this account info.\n     */\n    @Override\n    public void refresh() {\n        mLogger.logDebug(\"Refreshing access token...\");\n        final MSAAccountInfo newInfo = (MSAAccountInfo)mAuthenticator.loginSilent();\n        mSession = newInfo.mSession;\n    }\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/authentication/MSAAuthenticator.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.authentication;\n\nimport android.app.Activity;\nimport android.content.Context;\nimport android.content.SharedPreferences;\n\nimport com.microsoft.onedrivesdk.BuildConfig;\nimport com.microsoft.services.msa.LiveAuthClient;\nimport com.microsoft.services.msa.LiveAuthException;\nimport com.microsoft.services.msa.LiveAuthListener;\nimport com.microsoft.services.msa.LiveConnectSession;\nimport com.microsoft.services.msa.LiveStatus;\nimport com.onedrive.sdk.concurrency.ICallback;\nimport com.onedrive.sdk.core.ClientException;\nimport com.onedrive.sdk.concurrency.SimpleWaiter;\nimport com.onedrive.sdk.concurrency.IExecutors;\nimport com.onedrive.sdk.core.OneDriveErrorCodes;\nimport com.onedrive.sdk.http.IHttpProvider;\nimport com.onedrive.sdk.logger.ILogger;\n\nimport java.security.InvalidParameterException;\nimport java.util.Arrays;\nimport java.util.concurrent.atomic.AtomicReference;\n\n/**\n * Wrapper around the MSA authentication library.\n * https://github.com/MSOpenTech/msa-auth-for-android\n */\n@SuppressWarnings(\"ThrowableResultOfMethodCallIgnored\")\npublic abstract class MSAAuthenticator implements IAuthenticator {\n\n    /**\n     * The sign in cancellation message.\n     */\n    private static final String SIGN_IN_CANCELLED_MESSAGE = \"The user cancelled the login operation.\";\n\n    /**\n     * The preferences for this authenticator.\n     */\n    private static final String MSA_AUTHENTICATOR_PREFS = \"MSAAuthenticatorPrefs\";\n\n    /**\n     * The key for the user id.\n     */\n    private static final String USER_ID_KEY = \"userId\";\n\n    /**\n     * The key for the version code\n     */\n    public static final String VERSION_CODE_KEY = \"versionCode\";\n\n    /**\n     * The default user id\n     */\n    private static final String DEFAULT_USER_ID = \"@@defaultUser\";\n\n    /**\n     * The active user id.\n     */\n    private final AtomicReference<String> mUserId = new AtomicReference<>();\n\n    /**\n     * The executors.\n     */\n    private IExecutors mExecutors;\n\n    /**\n     * Indicates whether this authenticator has been initialized.\n     */\n    private boolean mInitialized;\n\n    /**\n     * The context UI interactions should happen with.\n     */\n    private Activity mActivity;\n\n    /**\n     * The logger.\n     */\n    private ILogger mLogger;\n\n    /**\n     * The client id for this authenticator.\n     * https://dev.onedrive.com/auth/msa_oauth.htm#to-register-your-app\n     * @return The client id.\n     */\n    public abstract String getClientId();\n\n    /**\n     * The scopes for this application.\n     * https://dev.onedrive.com/auth/msa_oauth.htm#authentication-scopes\n     * @return The scopes for this application.\n     */\n    public abstract String[] getScopes();\n\n    /**\n     * The live authentication client.\n     */\n    private LiveAuthClient mAuthClient;\n\n    /**\n     * Initializes the authenticator.\n     * @param executors The executors to schedule foreground and background tasks.\n     * @param httpProvider The http provider for sending requests.\n     * @param activity The activity to create interactive UI on.\n     * @param logger The logger for diagnostic information.\n     */\n    @Override\n    public synchronized void init(final IExecutors executors,\n                     final IHttpProvider httpProvider,\n                     final Activity activity,\n                     final ILogger logger) {\n        if (mInitialized) {\n            return;\n        }\n\n        mExecutors = executors;\n        mActivity = activity;\n        mLogger = logger;\n        mInitialized = true;\n        mAuthClient = new LiveAuthClient(activity, getClientId(), Arrays.asList(getScopes()));\n\n        final SharedPreferences prefs = getSharedPreferences();\n        mUserId.set(prefs.getString(USER_ID_KEY, null));\n    }\n\n    /**\n     * Starts an interactive login asynchronously.\n     * @param emailAddressHint The hint for the email address during the interactive login.\n     * @param loginCallback The callback to be called when the login is complete.\n     */\n    @Override\n    public void login(final String emailAddressHint, final ICallback<IAccountInfo> loginCallback) {\n        if (!mInitialized) {\n            throw new IllegalStateException(\"init must be called\");\n        }\n\n        if (loginCallback == null) {\n            throw new InvalidParameterException(\"loginCallback\");\n        }\n\n        mLogger.logDebug(\"Starting login async\");\n\n        mExecutors.performOnBackground(new Runnable() {\n            @Override\n            public void run() {\n                try {\n                    mExecutors.performOnForeground(login(emailAddressHint), loginCallback);\n                } catch (final ClientException e) {\n                    mExecutors.performOnForeground(e, loginCallback);\n                }\n            }\n        });\n    }\n\n    /**\n     * Starts an interactive login.\n     * @param emailAddressHint The hint for the email address during the interactive login.\n     * @return The account info.\n     * @throws ClientException An exception occurs if the login was unable to complete for any reason.\n     */\n    @Override\n    public synchronized IAccountInfo login(final String emailAddressHint) throws ClientException {\n        if (!mInitialized) {\n            throw new IllegalStateException(\"init must be called\");\n        }\n\n        mLogger.logDebug(\"Starting login\");\n\n        final AtomicReference<ClientException> error = new AtomicReference<>();\n        final SimpleWaiter waiter = new SimpleWaiter();\n\n        final LiveAuthListener listener = new LiveAuthListener() {\n            @Override\n            public void onAuthComplete(final LiveStatus liveStatus,\n                                       final LiveConnectSession liveConnectSession,\n                                       final Object o) {\n                if (liveStatus == LiveStatus.NOT_CONNECTED) {\n                    mLogger.logDebug(\"Received invalid login failure from silent authentication with MSA, ignoring.\");\n                } else {\n                    mLogger.logDebug(\"Successful interactive login\");\n                    waiter.signal();\n                }\n            }\n\n            @Override\n            public void onAuthError(final LiveAuthException e,\n                                    final Object o) {\n                OneDriveErrorCodes code = OneDriveErrorCodes.AuthenticationFailure;\n                if (e.getError().equals(SIGN_IN_CANCELLED_MESSAGE)) {\n                    code = OneDriveErrorCodes.AuthenticationCancelled;\n                }\n\n                error.set(new ClientAuthenticatorException(\"Unable to login with MSA\", e, code));\n                mLogger.logError(error.get().getMessage(), error.get());\n                waiter.signal();\n            }\n        };\n\n        mActivity.runOnUiThread(new Runnable() {\n            @Override\n            public void run() {\n                mAuthClient.login(mActivity, /* scopes */null, /* user object */ null, emailAddressHint, listener);\n            }\n        });\n\n        mLogger.logDebug(\"Waiting for MSA callback\");\n        waiter.waitForSignal();\n\n        final ClientException exception = error.get();\n        if (exception != null) {\n            throw exception;\n        }\n\n        final String userId;\n        if (emailAddressHint != null) {\n            userId = emailAddressHint;\n        } else {\n            userId = DEFAULT_USER_ID;\n        }\n\n        mUserId.set(userId);\n\n        final SharedPreferences prefs = getSharedPreferences();\n        prefs.edit()\n             .putString(USER_ID_KEY, mUserId.get())\n             .putInt(VERSION_CODE_KEY, BuildConfig.VERSION_CODE)\n             .apply();\n\n        return getAccountInfo();\n    }\n\n    /**\n     * Starts a silent login asynchronously.\n     * @param loginCallback The callback to be called when the login is complete.\n     */\n    @Override\n    public void loginSilent(final ICallback<IAccountInfo> loginCallback) {\n        if (!mInitialized) {\n            throw new IllegalStateException(\"init must be called\");\n        }\n\n        if (loginCallback == null) {\n            throw new InvalidParameterException(\"loginCallback\");\n        }\n\n        mLogger.logDebug(\"Starting login silent async\");\n\n        mExecutors.performOnBackground(new Runnable() {\n            @Override\n            public void run() {\n                try {\n                    mExecutors.performOnForeground(loginSilent(), loginCallback);\n                } catch (final ClientException e) {\n                    mExecutors.performOnForeground(e, loginCallback);\n                }\n            }\n        });\n    }\n\n    /**\n     * Starts a silent login.\n     * @return The account info.\n     * @throws ClientException An exception occurs if the login was unable to complete for any reason.\n     */\n    @Override\n    public synchronized IAccountInfo loginSilent() throws ClientException {\n        if (!mInitialized) {\n            throw new IllegalStateException(\"init must be called\");\n        }\n\n        mLogger.logDebug(\"Starting login silent\");\n\n        final int userIdStoredMinVersion = 10112;\n        if (getSharedPreferences().getInt(VERSION_CODE_KEY, 0) >= userIdStoredMinVersion\n                && mUserId.get() == null) {\n            mLogger.logDebug(\"No login information found for silent authentication\");\n            return null;\n        }\n\n        final SimpleWaiter loginSilentWaiter = new SimpleWaiter();\n        final AtomicReference<ClientException> error = new AtomicReference<>();\n\n        final boolean waitForCallback = mAuthClient.loginSilent(new LiveAuthListener() {\n            @Override\n            public void onAuthComplete(final LiveStatus liveStatus,\n                                       final LiveConnectSession liveConnectSession,\n                                       final Object o) {\n                if (liveStatus == LiveStatus.NOT_CONNECTED) {\n                    error.set(new ClientAuthenticatorException(\"Failed silent login, interactive login required\",\n                            OneDriveErrorCodes.AuthenticationFailure));\n                    mLogger.logError(error.get().getMessage(), error.get());\n                } else {\n                    mLogger.logDebug(\"Successful silent login\");\n                }\n                loginSilentWaiter.signal();\n            }\n\n            @Override\n            public void onAuthError(final LiveAuthException e,\n                                    final Object o) {\n                OneDriveErrorCodes code = OneDriveErrorCodes.AuthenticationFailure;\n                if (e.getError().equals(SIGN_IN_CANCELLED_MESSAGE)) {\n                    code = OneDriveErrorCodes.AuthenticationCancelled;\n                }\n\n                error.set(new ClientAuthenticatorException(\"Login silent authentication error\", e, code));\n                mLogger.logError(error.get().getMessage(), error.get());\n                loginSilentWaiter.signal();\n            }\n        });\n\n        if (!waitForCallback) {\n            mLogger.logDebug(\"MSA silent auth fast-failed\");\n            return null;\n        }\n\n        mLogger.logDebug(\"Waiting for MSA callback\");\n        loginSilentWaiter.waitForSignal();\n        final ClientException exception = error.get();\n        if (exception != null) {\n            throw exception;\n        }\n\n        return getAccountInfo();\n    }\n\n    /**\n     * Log the current user out.\n     * @param logoutCallback The callback to be called when the logout is complete.\n     */\n    @Override\n    public void logout(final ICallback<Void> logoutCallback) {\n        if (!mInitialized) {\n            throw new IllegalStateException(\"init must be called\");\n        }\n\n        if (logoutCallback == null) {\n            throw new InvalidParameterException(\"logoutCallback\");\n        }\n\n        mLogger.logDebug(\"Starting logout async\");\n\n        mExecutors.performOnBackground(new Runnable() {\n            @Override\n            public void run() {\n                try {\n                    logout();\n                    mExecutors.performOnForeground((Void) null, logoutCallback);\n                } catch (final ClientException e) {\n                    mExecutors.performOnForeground(e, logoutCallback);\n                }\n            }\n        });\n    }\n\n    /**\n     * Log the current user out.\n     * @throws ClientException An exception occurs if the logout was unable to complete for any reason.\n     */\n    @Override\n    public synchronized void logout() throws ClientException {\n        if (!mInitialized) {\n            throw new IllegalStateException(\"init must be called\");\n        }\n\n        mLogger.logDebug(\"Starting logout\");\n\n        final SimpleWaiter logoutWaiter = new SimpleWaiter();\n        final AtomicReference<ClientException> error = new AtomicReference<>();\n        mAuthClient.logout(new LiveAuthListener() {\n            @Override\n            public void onAuthComplete(final LiveStatus liveStatus,\n                                       final LiveConnectSession liveConnectSession,\n                                       final Object o) {\n                mLogger.logDebug(\"Logout completed\");\n                logoutWaiter.signal();\n            }\n\n            @Override\n            public void onAuthError(final LiveAuthException e, final Object o) {\n                error.set(new ClientAuthenticatorException(\"MSA Logout failed\",\n                                                           e,\n                                                           OneDriveErrorCodes.AuthenticationFailure));\n                mLogger.logError(error.get().getMessage(), error.get());\n                logoutWaiter.signal();\n            }\n        });\n\n        mLogger.logDebug(\"Waiting for logout to complete\");\n        logoutWaiter.waitForSignal();\n\n        mLogger.logDebug(\"Clearing all MSA Authenticator shared preferences\");\n        final SharedPreferences prefs = getSharedPreferences();\n        prefs.edit()\n             .clear()\n             .putInt(VERSION_CODE_KEY, BuildConfig.VERSION_CODE)\n             .apply();\n        mUserId.set(null);\n\n        final ClientException exception = error.get();\n        if (exception != null) {\n            throw exception;\n        }\n    }\n\n    /**\n     * Gets the current account info for this authenticator.\n     * @return NULL if no account is available.\n     */\n    @Override\n    public IAccountInfo getAccountInfo() {\n        final LiveConnectSession session = mAuthClient.getSession();\n        if (session == null) {\n            return null;\n        }\n\n        return new MSAAccountInfo(this, session, mLogger);\n    }\n\n    /**\n     * Gets the shared preferences for this authenticator.\n     * @return The shared preferences.\n     */\n    private SharedPreferences getSharedPreferences() {\n        return mActivity.getSharedPreferences(MSA_AUTHENTICATOR_PREFS, Context.MODE_PRIVATE);\n    }\n\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/authentication/MicrosoftOAuthConfig.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.authentication;\n\nimport android.net.Uri;\n\nimport com.microsoft.services.msa.OAuthConfig;\n\n/**\n * OAuth configuration for the Microsoft services\n */\nclass MicrosoftOAuthConfig implements OAuthConfig {\n\n    /**\n     * The domain to authenticate against\n     */\n    public static final String HTTPS_LOGIN_LIVE_COM = \"https://login.microsoftonline.com/common/oauth2/\";\n\n    /**\n     * The authorization uri\n     */\n    private final Uri mOAuthAuthorizeUri;\n\n    /**\n     * The desktop uri\n     */\n    private final Uri mOAuthDesktopUri;\n\n    /**\n     * The logout uri\n     */\n    private final Uri mOAuthLogoutUri;\n\n    /**\n     * The auth token uri\n     */\n    private final Uri mOAuthTokenUri;\n\n    /**\n     * Default Constructor\n     */\n    public MicrosoftOAuthConfig() {\n        mOAuthAuthorizeUri = Uri.parse(HTTPS_LOGIN_LIVE_COM + \"authorize\");\n        mOAuthDesktopUri = Uri.parse(HTTPS_LOGIN_LIVE_COM + \"desktop\");\n        mOAuthLogoutUri = Uri.parse(HTTPS_LOGIN_LIVE_COM + \"logout\");\n        mOAuthTokenUri = Uri.parse(HTTPS_LOGIN_LIVE_COM + \"token\");\n    }\n\n    @Override\n    public Uri getAuthorizeUri() {\n        return mOAuthAuthorizeUri;\n    }\n\n    @Override\n    public Uri getDesktopUri() {\n        return mOAuthDesktopUri;\n    }\n\n    @Override\n    public Uri getLogoutUri() {\n        return mOAuthLogoutUri;\n    }\n\n    @Override\n    public Uri getTokenUri() {\n        return mOAuthTokenUri;\n    }\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/authentication/ServiceInfo.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.authentication;\n\nimport com.google.gson.annotations.SerializedName;\n\npublic class ServiceInfo {\n\n    @SerializedName(\"capability\")\n    public String capability;\n\n    @SerializedName(\"serviceApiVersion\")\n    public String serviceApiVersion;\n\n    @SerializedName(\"serviceEndpointUri\")\n    public String serviceEndpointUri;\n\n    @SerializedName(\"serviceResourceId\")\n    public String serviceResourceId;\n}\n\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/authentication/adal/BrokerPermissionsChecker.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2016 Microsoft Corporation\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.authentication.adal;\n\nimport android.content.Context;\nimport android.content.pm.PackageManager;\nimport android.support.v4.content.ContextCompat;\n\nimport com.microsoft.aad.adal.AuthenticationSettings;\nimport com.onedrive.sdk.authentication.ClientAuthenticatorException;\nimport com.onedrive.sdk.core.OneDriveErrorCodes;\nimport com.onedrive.sdk.logger.ILogger;\n\n/**\n * Checks if the ADAL broker has the required permissions to be used\n */\npublic class BrokerPermissionsChecker {\n\n    /**\n     * The url to the ADAL project for reference\n     */\n    @SuppressWarnings(\"FieldCanBeLocal\")\n    private final String mAdalProjectUrl = \"https://github.com/AzureAD/azure-activedirectory-library-for-android\";\n\n    /**\n     * The permissions need to use a the account broker with ADAL\n     */\n    private final String[] mBrokerRequirePermissions = new String[] {\n            \"android.permission.GET_ACCOUNTS\",\n            \"android.permission.MANAGE_ACCOUNTS\",\n            \"android.permission.USE_CREDENTIALS\"\n    };\n\n    /**\n     * The current context\n     */\n    private final Context mContext;\n\n    /**\n     * The logger to use\n     */\n    private final ILogger mLogger;\n\n    /**\n     * Creates a BrokerPermissionsChecker\n     * @param context The current context to check permissions against\n     * @param logger The logger context\n     */\n    public BrokerPermissionsChecker(final Context context, final ILogger logger) {\n        mContext = context;\n        mLogger = logger;\n    }\n\n    /**\n     * Checks if the Broker has the permissions needed be used.\n     *\n     * @throws ClientAuthenticatorException If the required permissions are not available\n     */\n    public void check() throws ClientAuthenticatorException {\n        if (!AuthenticationSettings.INSTANCE.getSkipBroker()) {\n            mLogger.logDebug(\"Checking permissions for use with the ADAL Broker.\");\n            for (final String permission : mBrokerRequirePermissions) {\n                if (ContextCompat.checkSelfPermission(mContext, permission) == PackageManager.PERMISSION_DENIED) {\n                    final String message = String.format(\n                            \"Required permissions to use the Broker are denied: %s, see %s for more details.\",\n                            permission,\n                            mAdalProjectUrl);\n                    mLogger.logDebug(message);\n                    throw new ClientAuthenticatorException(message, OneDriveErrorCodes.AuthenicationPermissionsDenied);\n                }\n            }\n            mLogger.logDebug(\"All required permissions found.\");\n        }\n    }\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/concurrency/AsyncMonitor.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.concurrency;\n\nimport com.onedrive.sdk.core.ClientException;\nimport com.onedrive.sdk.core.OneDriveErrorCodes;\nimport com.onedrive.sdk.extensions.AsyncOperationStatus;\nimport com.onedrive.sdk.extensions.IOneDriveClient;\nimport com.onedrive.sdk.http.BaseRequest;\nimport com.onedrive.sdk.http.HttpMethod;\n\n/**\n * Monitors an asynchronous action from the service.\n * @param <T> The result time when the action has completed.\n */\npublic class AsyncMonitor<T> {\n\n    /**\n     * The client.\n     */\n    private final IOneDriveClient mClient;\n\n    /**\n     * The monitor's location.\n     */\n    private final AsyncMonitorLocation mMonitorLocation;\n\n    /**\n     * The way to retrieve a result from the service.\n     */\n    private final ResultGetter<T> mResultGetter;\n\n    /**\n     * The monitor response handler.\n     */\n    private final AsyncMonitorResponseHandler mHandler;\n\n    /**\n     * Create a new async monitor.\n     * @param client The client.\n     * @param monitorLocation The monitor location.\n     * @param resultGetter The way to retrieve the result.\n     */\n    public AsyncMonitor(final IOneDriveClient client,\n                        final AsyncMonitorLocation monitorLocation,\n                        final ResultGetter<T> resultGetter) {\n        this.mClient = client;\n        this.mMonitorLocation = monitorLocation;\n        this.mResultGetter = resultGetter;\n        this.mHandler = new AsyncMonitorResponseHandler();\n    }\n\n    /**\n     * Gets the status of the monitor from the service asynchronously.\n     * @param callback The callback.\n     */\n    public void getStatus(final ICallback<AsyncOperationStatus> callback) {\n        this.mClient.getExecutors().performOnBackground(new Runnable() {\n            @Override\n            public void run() {\n                try {\n                    mClient.getExecutors().performOnForeground(getStatus(), callback);\n                } catch (final ClientException e) {\n                    mClient.getExecutors().performOnForeground(e, callback);\n                }\n            }\n        });\n    }\n\n    /**\n     * Gets the status of the monitor from the service.\n     * @return The status.\n     * @throws ClientException Exception occurs if there was a problem retrieving the status from the service.\n     */\n    public AsyncOperationStatus getStatus() throws ClientException {\n        final BaseRequest monitorStatusRequest = new BaseRequest(mMonitorLocation.getLocation(),\n                                                                 this.mClient,\n                                                                 /* options */ null,\n                                                                 /* response class */ null) { };\n        monitorStatusRequest.setHttpMethod(HttpMethod.GET);\n\n        return this.mClient.getHttpProvider().send(monitorStatusRequest,\n                                                   AsyncOperationStatus.class,\n                                                   /* serialization object*/ null,\n                                                   this.mHandler);\n    }\n\n    /**\n     * Gets the result from the service asynchronously.\n     * @param callback The callback.\n     */\n    public void getResult(final ICallback<T> callback) {\n        mClient.getExecutors().performOnBackground(new Runnable() {\n            @Override\n            public void run() {\n                try {\n                    mClient.getExecutors().performOnForeground(getResult(), callback);\n                } catch (final ClientException e) {\n                    mClient.getExecutors().performOnForeground(e, callback);\n                }\n            }\n        });\n    }\n\n    /**\n     * Gets the result from the service.\n     * @return The result.\n     * @throws ClientException An exception occurs if there was an problem retrieving the status from the service.\n     */\n    public T getResult() throws ClientException {\n        final AsyncOperationStatus status = getStatus();\n        if (status.seeOther == null) {\n            throw new ClientException(\"Async operation '\" + status.operation + \"' has not completed!\",\n                                      /* throwable */ null,\n                                      OneDriveErrorCodes.AsyncTaskNotCompleted);\n        }\n        return mResultGetter.getResultFrom(status.seeOther, mClient);\n    }\n\n    /**\n     * Polls the service for the monitored operation to complete.\n     * @param millisBetweenPoll The milliseconds between polls.\n     * @param callback The progress callback.\n     */\n    public void pollForResult(final long millisBetweenPoll, final IProgressCallback<T> callback) {\n        final int progressMax = 100;\n        mClient.getLogger().logDebug(\"Starting to poll for request \" + mMonitorLocation.getLocation());\n        mClient.getExecutors().performOnBackground(new Runnable() {\n            @Override\n            public void run() {\n                AsyncOperationStatus status = null;\n                try {\n                    do {\n                        if (status  != null) {\n                            try {\n                                Thread.sleep(millisBetweenPoll);\n                            } catch (final InterruptedException ignored) {\n                                mClient.getLogger().logDebug(\"InterruptedException ignored\");\n                            }\n                        }\n                        status = getStatus();\n                        if (status.percentageComplete != null) {\n                            mClient.getExecutors().performOnForeground(status.percentageComplete.intValue(),\n                                                                       progressMax,\n                                                                       callback);\n                        }\n                    } while (!(isCompleted(status) || isFailed(status)));\n                    mClient.getLogger().logDebug(\"Polling has completed, got final status: \" + status.status);\n                    if (isFailed(status)) {\n                        mClient.getExecutors().performOnForeground(new AsyncOperationException(status),\n                                                                      callback);\n                    }\n\n                    mClient.getExecutors().performOnForeground(getResult(), callback);\n                } catch (final ClientException e) {\n                    mClient.getExecutors().performOnForeground(e, callback);\n                }\n            }\n        });\n    }\n\n    /**\n     * Checks if the status is completed.\n     * @param status The status.\n     * @return True if the state is completed, and false if its not.\n     */\n    private boolean isCompleted(final AsyncOperationStatus status) {\n        return status.status.equalsIgnoreCase(\"completed\");\n    }\n\n    /**\n     * Checks if the status failed.\n     * @param status The status.\n     * @return True if the state is failed, and false if its not.\n     */\n    private boolean isFailed(final AsyncOperationStatus status) {\n        return status.status.equalsIgnoreCase(\"failed\");\n    }\n}\n\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/concurrency/AsyncMonitorLocation.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.concurrency;\n\n/**\n * The reference to an async monitor location.\n */\npublic class AsyncMonitorLocation {\n\n    /**\n     * The url.\n     */\n    private final String mMonitorLocation;\n\n    /**\n     * Creates a monitor location.\n     * @param monitorLocation The url.\n     */\n    public AsyncMonitorLocation(final String monitorLocation) {\n        mMonitorLocation = monitorLocation;\n    }\n\n    /**\n     * Get the location.\n     * @return The location.\n     */\n    public String getLocation() {\n        return mMonitorLocation;\n    }\n}\n\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/concurrency/AsyncMonitorResponseHandler.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.concurrency;\n\nimport com.onedrive.sdk.extensions.AsyncOperationStatus;\nimport com.onedrive.sdk.http.DefaultHttpProvider;\nimport com.onedrive.sdk.http.HttpResponseCode;\nimport com.onedrive.sdk.http.IConnection;\nimport com.onedrive.sdk.http.IHttpRequest;\nimport com.onedrive.sdk.http.IStatefulResponseHandler;\nimport com.onedrive.sdk.logger.ILogger;\nimport com.onedrive.sdk.serializer.ISerializer;\n\nimport java.io.BufferedInputStream;\nimport java.io.InputStream;\n\n/**\n * The handler class for async monitor response from server.\n */\npublic class AsyncMonitorResponseHandler implements IStatefulResponseHandler<AsyncOperationStatus, String> {\n\n    /**\n     * Configure the connection before get response.\n     *\n     * @param connection The http connection.\n     */\n    @Override\n    public void configConnection(final IConnection connection) {\n        connection.setFollowRedirects(false);\n    }\n\n    /**\n     * Generate the async operation result based on server response.\n     *\n     * @param request    The http request.\n     * @param connection The http connection.\n     * @param serializer The serializer.\n     * @param logger     The logger.\n     * @return The async operation status.\n     * @throws Exception An exception occurs if the request was unable to complete for any reason.\n     */\n    @Override\n    public AsyncOperationStatus generateResult(final IHttpRequest request,\n                                               final IConnection connection,\n                                               final ISerializer serializer,\n                                               final ILogger logger)\n            throws Exception {\n        if (connection.getResponseCode() == HttpResponseCode.HTTP_SEE_OTHER) {\n            logger.logDebug(\"Item copy job has completed.\");\n            return AsyncOperationStatus.createdCompleted(connection.getHeaders().get(\"Location\"));\n        }\n\n        InputStream in = null;\n\n        try {\n            in = new BufferedInputStream(connection.getInputStream());\n            final AsyncOperationStatus result = serializer.deserializeObject(\n                    DefaultHttpProvider.streamToString(in), AsyncOperationStatus.class);\n            result.seeOther = connection.getHeaders().get(\"Location\");\n            return result;\n        } finally {\n            if (in != null) {\n                in.close();\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/concurrency/AsyncOperationException.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.concurrency;\n\nimport com.onedrive.sdk.core.ClientException;\nimport com.onedrive.sdk.core.OneDriveErrorCodes;\nimport com.onedrive.sdk.extensions.AsyncOperationStatus;\n\n/**\n * The exception raised when there was a async operation did not complete as expected.\n */\npublic class AsyncOperationException extends ClientException {\n\n    /**\n     * The status, that might indicate the cause of the exception.\n     */\n    private final AsyncOperationStatus mStatus;\n\n    /**\n     * Creates a AsyncOperationException.\n     * @param status The status of this exception.\n     */\n    public AsyncOperationException(final AsyncOperationStatus status) {\n        super(status.status + \": \" + status.statusDescription, null, OneDriveErrorCodes.AsyncTaskFailed);\n        mStatus = status;\n    }\n\n    /**\n     * Gets the status for this exception.\n     * @return The async operation status.\n     */\n    public AsyncOperationStatus getStatus() {\n        return mStatus;\n    }\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/concurrency/ChunkedUploadProvider.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.concurrency;\n\nimport com.onedrive.sdk.extensions.ChunkedUploadResult;\nimport com.onedrive.sdk.extensions.IOneDriveClient;\nimport com.onedrive.sdk.extensions.UploadSession;\nimport com.onedrive.sdk.options.Option;\n\nimport java.io.IOException;\nimport java.io.InputStream;\nimport java.security.InvalidParameterException;\nimport java.util.List;\n\n/**\n * ChunkedUpload service provider.\n *\n * @param <UploadType> The upload item type.\n */\npublic class ChunkedUploadProvider<UploadType> {\n\n    /**\n     * The default chunk size for upload. Currently set to 5 MiB.\n     */\n    private static final int DEFAULT_CHUNK_SIZE = 5 * 1024 * 1024;\n\n    /**\n     * The required chunk size increment by OneDrive Service, which is 320 KiB.\n     */\n    private static final int REQUIRED_CHUNK_SIZE_INCREMENT = 320 * 1024;\n\n    /**\n     * The maximum chunk size for a single upload allowed by OneDrive service.\n     * Currently the value is 60 MiB.\n     */\n    private static final int MAXIMUM_CHUNK_SIZE = 60 * 1024 * 1024;\n\n    /**\n     * The default retry times for a simple chunk upload if failure happened.\n     */\n    private static final int MAXIMUM_RETRY_TIMES = 3;\n\n    /**\n     * The client.\n     */\n    private final IOneDriveClient mClient;\n\n    /**\n     * The input stream.\n     */\n    private final InputStream mInputStream;\n\n    /**\n     * The upload session url.\n     */\n    private final String mUploadUrl;\n\n    /**\n     * The stream size.\n     */\n    private final int mStreamSize;\n\n    /**\n     * The upload response handler.\n     */\n    private final ChunkedUploadResponseHandler<UploadType> mResponseHandler;\n\n    /**\n     * The counter for how many bytes read from input stream.\n     */\n    private int mReadSoFar;\n\n    /**\n     * Create the ChunkedUploadProvider\n     *\n     * @param uploadSession The initial upload session.\n     * @param client        The onedrive client.\n     * @param inputStream   The input stream.\n     * @param streamSize    The stream size.\n     * @param uploadTypeClass The upload type class.\n     */\n    public ChunkedUploadProvider(final UploadSession uploadSession,\n                                 final IOneDriveClient client,\n                                 final InputStream inputStream,\n                                 final int streamSize,\n                                 final Class<UploadType> uploadTypeClass) {\n        if (uploadSession == null) {\n            throw new InvalidParameterException(\"Upload session is null.\");\n        }\n\n        if (client == null) {\n            throw new InvalidParameterException(\"OneDrive client is null.\");\n        }\n\n        if (inputStream == null) {\n            throw new InvalidParameterException(\"Input stream is null.\");\n        }\n\n        if (streamSize <= 0) {\n            throw new InvalidParameterException(\"Stream size should larger than 0.\");\n        }\n\n        this.mClient = client;\n        this.mReadSoFar = 0;\n        this.mInputStream = inputStream;\n        this.mStreamSize = streamSize;\n        this.mUploadUrl = uploadSession.uploadUrl;\n        this.mResponseHandler = new ChunkedUploadResponseHandler(uploadTypeClass);\n    }\n\n    /**\n     * Upload content to remote upload session based on the input stream.\n     *\n     * @param options  The upload options.\n     * @param callback The progress callback invoked during uploading.\n     * @param configs  The optional ocnfigs for the upload options, [0] should be the customized chunk\n     *                 size and the [1] should be the maxRetry for upload retry.\n     * @throws IOException The io exception happend during upload.\n     */\n    public void upload(final List<Option> options,\n                       final IProgressCallback<UploadType> callback,\n                       final int... configs)\n            throws IOException {\n        int chunkSize = DEFAULT_CHUNK_SIZE;\n\n        if (configs.length > 0) {\n            chunkSize = configs[0];\n        }\n\n        int maxRetry = MAXIMUM_RETRY_TIMES;\n\n        if (configs.length > 1) {\n            maxRetry = configs[1];\n        }\n\n        if (chunkSize % REQUIRED_CHUNK_SIZE_INCREMENT != 0) {\n            throw new IllegalArgumentException(\"Chunk size must be a multiple of 320 KiB\");\n        }\n\n        if (chunkSize > MAXIMUM_CHUNK_SIZE) {\n            throw new IllegalArgumentException(\"Please set chunk size smaller than 60 MiB\");\n        }\n\n        byte[] buffer = new byte[chunkSize];\n\n        while (this.mReadSoFar < this.mStreamSize) {\n            int read = this.mInputStream.read(buffer);\n\n            if (read == -1) {\n                break;\n            }\n\n            ChunkedUploadRequest request =\n\t\t\t    new ChunkedUploadRequest(this.mUploadUrl, this.mClient, options, buffer, read,\n                                         maxRetry, this.mReadSoFar, this.mStreamSize);\n            ChunkedUploadResult result = request.upload(this.mResponseHandler);\n\n            if (result.uploadCompleted()) {\n                callback.progress(this.mStreamSize, this.mStreamSize);\n                callback.success((UploadType) result.getItem());\n                break;\n            } else if (result.chunkCompleted()) {\n                callback.progress(this.mReadSoFar, this.mStreamSize);\n            } else if (result.hasError()) {\n                callback.failure(result.getError());\n                break;\n            }\n\n            this.mReadSoFar += read;\n        }\n    }\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/concurrency/ChunkedUploadRequest.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.concurrency;\n\nimport com.onedrive.sdk.core.ClientException;\nimport com.onedrive.sdk.core.OneDriveErrorCodes;\nimport com.onedrive.sdk.extensions.ChunkedUploadResult;\nimport com.onedrive.sdk.extensions.IOneDriveClient;\nimport com.onedrive.sdk.http.BaseRequest;\nimport com.onedrive.sdk.http.HttpMethod;\nimport com.onedrive.sdk.options.Option;\n\nimport java.util.List;\n\n/**\n * The chunk upload request.\n */\npublic class ChunkedUploadRequest {\n\n    /**\n     * Content Range header name.\n     */\n    private static final String CONTENT_RANGE_HEADER_NAME = \"Content-Range\";\n\n    /**\n     * Content Range value format.\n     */\n    private static final String CONTENT_RANGE_FORMAT = \"bytes %1$d-%2$d/%3$d\";\n\n    /**\n     * The seconds for retry delay.\n     */\n    private static final int RETRY_DELAY = 2 * 1000;\n\n    /**\n     * The chunk data sent to the server.\n     */\n    private final byte[] mData;\n\n    /**\n     * The base request.\n     */\n    private final BaseRequest mBaseRequest;\n\n    /**\n     * The max retry for single request.\n     */\n    private final int mMaxRetry;\n\n    /**\n     * The retry counter.\n     */\n    private int mRetryCount;\n\n    /**\n     * Construct the ChunkedUploadRequest\n     * @param requestUrl The upload url.\n     * @param client The OneDrive client.\n     * @param options The query options.\n     * @param chunk The chunk byte array.\n     * @param chunkSize The chunk array size.\n     * @param maxRetry The limit on retry.\n     * @param beginIndex The begin index of this chunk in the input stream.\n     * @param totalLenth The total length of the input stream.\n     */\n    public ChunkedUploadRequest(final String requestUrl,\n                                final IOneDriveClient client,\n                                final List<Option> options,\n                                final byte[] chunk,\n                                final int chunkSize,\n                                final int maxRetry,\n                                final int beginIndex,\n                                final int totalLenth) {\n        this.mData = new byte[chunkSize];\n        System.arraycopy(chunk, 0, this.mData, 0, chunkSize);\n        this.mRetryCount = 0;\n        this.mMaxRetry = maxRetry;\n        this.mBaseRequest = new BaseRequest(requestUrl, client, options, ChunkedUploadResult.class) { };\n        this.mBaseRequest.setHttpMethod(HttpMethod.PUT);\n        this.mBaseRequest.addHeader(CONTENT_RANGE_HEADER_NAME,\n                                    String.format(\n                                            CONTENT_RANGE_FORMAT,\n                                            beginIndex,\n                                            beginIndex + chunkSize - 1,\n                                            totalLenth));\n    }\n\n    /**\n     * Upload a chunk with tries.\n     * @return The upload result.\n     * @param responseHandler The handler handle http response.\n     * @param <UploadType> The upload item type.\n     */\n    public <UploadType> ChunkedUploadResult upload(\n            final ChunkedUploadResponseHandler<UploadType> responseHandler) {\n        while (this.mRetryCount < this.mMaxRetry) {\n            try {\n                Thread.sleep(RETRY_DELAY * this.mRetryCount * this.mRetryCount);\n            } catch (final InterruptedException e) {\n                this.mBaseRequest.getClient().getLogger().logError(\"Exception while waiting upload file retry\", e);\n            }\n\n            ChunkedUploadResult result = null;\n\n            try {\n                result = this.mBaseRequest\n                        .getClient()\n                        .getHttpProvider()\n                        .send(mBaseRequest, ChunkedUploadResult.class, this.mData, responseHandler);\n            } catch (final ClientException e) {\n                this.mBaseRequest.getClient().getLogger().logDebug(\"Request failed with, retry if necessary.\");\n            }\n\n            if (result != null && result.chunkCompleted()) {\n                return result;\n            }\n\n            this.mRetryCount++;\n        }\n\n        return new ChunkedUploadResult(\n                new ClientException(\"Upload session failed to many times.\" , null,\n                                    OneDriveErrorCodes.UploadSessionIncomplete));\n    }\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/concurrency/ChunkedUploadResponseHandler.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.concurrency;\n\nimport com.onedrive.sdk.extensions.ChunkedUploadResult;\nimport com.onedrive.sdk.extensions.UploadSession;\nimport com.onedrive.sdk.http.DefaultHttpProvider;\nimport com.onedrive.sdk.http.HttpResponseCode;\nimport com.onedrive.sdk.http.IConnection;\nimport com.onedrive.sdk.http.IHttpRequest;\nimport com.onedrive.sdk.http.IStatefulResponseHandler;\nimport com.onedrive.sdk.http.OneDriveServiceException;\nimport com.onedrive.sdk.logger.ILogger;\nimport com.onedrive.sdk.serializer.ISerializer;\n\nimport java.io.BufferedInputStream;\nimport java.io.InputStream;\n\n/**\n * The class handles the stateful response from OneDrive upload session.\n *\n * @param <UploadType> The expected uploaded item.\n */\npublic class ChunkedUploadResponseHandler<UploadType>\n        implements IStatefulResponseHandler<ChunkedUploadResult, UploadType> {\n    /**\n     * The expected deserialize type for upload type.\n     */\n    private final Class<UploadType> mDeserializeTypeClass;\n\n    /**\n     * Create a chunked upload response handler.\n     *\n     * @param uploadType The expected upload item type.\n     */\n    public ChunkedUploadResponseHandler(final Class<UploadType> uploadType) {\n        this.mDeserializeTypeClass = uploadType;\n    }\n\n    /**\n     * Do nothing before get response.\n     *\n     * @param connection The connection.\n     */\n    @Override\n    public void configConnection(final IConnection connection) {\n        return;\n    }\n\n    /**\n     * Generate the chunked upload response result.\n     *\n     * @param request    The http request.\n     * @param connection The http connection.\n     * @param serializer The serializer.\n     * @param logger     The system logger.\n     * @return The chunked upload result which could be upload session/uploaded item or error.\n     * @throws Exception An exception occurs if the request was unable to complete for any reason.\n     */\n    @Override\n    public ChunkedUploadResult generateResult(\n            final IHttpRequest request,\n            final IConnection connection,\n            final ISerializer serializer,\n            final ILogger logger) throws Exception {\n        InputStream in = null;\n\n        try {\n            if (connection.getResponseCode() == HttpResponseCode.HTTP_ACCEPTED) {\n                logger.logDebug(\"Chunk bytes has been accepted by the server.\");\n                in = new BufferedInputStream(connection.getInputStream());\n                final UploadSession seesion = serializer.deserializeObject(\n                        DefaultHttpProvider.streamToString(in), UploadSession.class);\n\n                return new ChunkedUploadResult(seesion);\n\n            } else if (connection.getResponseCode() == HttpResponseCode.HTTP_CREATED\n                    || connection.getResponseCode() == HttpResponseCode.HTTP_OK) {\n                logger.logDebug(\"Upload session is completed, uploaded item returned.\");\n                in = new BufferedInputStream(connection.getInputStream());\n                String rawJson = DefaultHttpProvider.streamToString(in);\n                UploadType uploadedItem = serializer.deserializeObject(rawJson,\n                                                                       this.mDeserializeTypeClass);\n\n                return new ChunkedUploadResult(uploadedItem);\n            } else if (connection.getResponseCode() >= HttpResponseCode.HTTP_CLIENT_ERROR) {\n                logger.logDebug(\"Receiving error during upload, see detail on result error\");\n\n                return new ChunkedUploadResult(\n                        OneDriveServiceException.createFromConnection(request, null, serializer,\n                                                                      connection));\n            }\n        } finally {\n            if (in != null) {\n                in.close();\n            }\n        }\n\n        return null;\n    }\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/concurrency/DefaultExecutors.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.concurrency;\n\nimport com.onedrive.sdk.core.ClientException;\nimport com.onedrive.sdk.logger.ILogger;\n\nimport java.util.concurrent.Executors;\nimport java.util.concurrent.ThreadPoolExecutor;\n\n/**\n * The default executors implementation for the OneDrive SDK.\n */\npublic class DefaultExecutors implements IExecutors {\n\n    /**\n     * The executor for handling background actions.\n     */\n    private final ThreadPoolExecutor mBackgroundExecutor;\n\n    /**\n     * The executor for handling foreground actions.\n     */\n    private final SynchronousExecutor mForegroundExecutor;\n\n    /**\n     * The logger.\n     */\n    private final ILogger mLogger;\n\n    /**\n     * Creates a new instance of the DefaultExecutors.\n     * @param logger The logger.\n     */\n    public DefaultExecutors(final ILogger logger) {\n        mLogger = logger;\n        mBackgroundExecutor = (ThreadPoolExecutor)Executors.newCachedThreadPool();\n        mForegroundExecutor = new SynchronousExecutor();\n    }\n\n    /**\n     * Runs the given Runnable on the background thread.\n     * @param runnable The Runnable to execute.\n     */\n    @Override\n    public void performOnBackground(final Runnable runnable) {\n        mLogger.logDebug(\"Starting background task, current active count: \"\n                         + mBackgroundExecutor.getActiveCount());\n        mBackgroundExecutor.execute(runnable);\n    }\n\n    /**\n     * Performs the given callback with the result object.\n     * @param result The result value.\n     * @param callback The callback to call on the foreground with this result.\n     * @param <Result> The result type.\n     */\n    @Override\n    public <Result> void performOnForeground(final Result result,\n                                             final ICallback<Result> callback) {\n        mLogger.logDebug(\"Starting foreground task, current active count:\"\n                         + mForegroundExecutor.getActiveCount()\n                         + \", with result \"\n                         + result);\n        mForegroundExecutor.execute(new Runnable() {\n            @Override\n            public void run() {\n                callback.success(result);\n            }\n        });\n    }\n\n    /**\n     * Performs the given callback with the result object.\n     * @param progress The progress value.\n     * @param progressMax The progress value.\n     * @param callback The callback to call on the foreground with this result.\n     * @param <Result> The result type.\n     */\n    public <Result> void performOnForeground(final int progress,\n                                             final int progressMax,\n                                             final IProgressCallback<Result> callback) {\n        mLogger.logDebug(\"Starting foreground task, current active count:\"\n                         + mForegroundExecutor.getActiveCount()\n                         + \", with progress  \"\n                         + progress\n                         + \", max progress\"\n                         + progressMax);\n        mForegroundExecutor.execute(new Runnable() {\n            @Override\n            public void run() {\n                callback.progress(progress, progressMax);\n            }\n        });\n    }\n    /**\n     * Performs the given callback with the exception object.\n     * @param exception The exception value.\n     * @param callback The callback to call on the foreground with this exception.\n     * @param <Result> The result type.\n     */\n    @Override\n    public <Result> void performOnForeground(final ClientException exception,\n                                             final ICallback<Result> callback) {\n        mLogger.logDebug(\"Starting foreground task, current active count:\"\n                         + mForegroundExecutor.getActiveCount()\n                         + \", with exception \"\n                         + exception);\n        mForegroundExecutor.execute(new Runnable() {\n            @Override\n            public void run() {\n                callback.failure(exception);\n            }\n        });\n    }\n\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/concurrency/ICallback.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.concurrency;\n\nimport com.onedrive.sdk.core.ClientException;\n\n/**\n * A callback that describes how to deal with success and failure.\n * @param <Result> The result type of the successful action.\n */\npublic interface ICallback<Result> {\n    /**\n     * How successful results are handled.\n     * @param result The result.\n     */\n    void success(final Result result);\n\n    /**\n     * How failures are handled.\n     * @param ex The exception.\n     */\n    void failure(final ClientException ex);\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/concurrency/IExecutors.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.concurrency;\n\nimport com.onedrive.sdk.core.ClientException;\n\n/**\n * A way to manage scheduled actions that are run in the foreground or background threading environments.\n */\npublic interface IExecutors {\n\n    /**\n     * Runs the given Runnable on the background thread.\n     * @param runnable The Runnable to execute.\n     */\n    void performOnBackground(final Runnable runnable);\n\n    /**\n     * Performs the given callback with the result object.\n     * @param result The result value.\n     * @param callback The callback to call on the foreground with this result.\n     * @param <Result> The result type.\n     */\n    <Result> void performOnForeground(final Result result,\n                                      final ICallback<Result> callback);\n\n    /**\n     * Performs the given callback with the result object.\n     * @param progress The progress value.\n     * @param progressMax The progress value.\n     * @param callback The callback to call on the foreground with this result.\n     * @param <Result> The result type.\n     */\n    <Result> void performOnForeground(final int progress,\n                                      final int progressMax,\n                                      final IProgressCallback<Result> callback);\n\n    /**\n     * Performs the given callback with the exception object.\n     * @param exception The exception value.\n     * @param callback The callback to call on the foreground with this exception.\n     * @param <Result> The result type.\n     */\n    <Result> void performOnForeground(final ClientException exception,\n                                      final ICallback<Result> callback);\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/concurrency/IProgressCallback.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.concurrency;\n\n/**\n * A callback that describes how to deal with success, failure, and progress.\n * @param <Result> The result type of the successful action.\n */\npublic interface IProgressCallback<Result> extends ICallback<Result> {\n\n    /**\n     * How progress updates are handled for this callback.\n     * @param current The current amount of progress.\n     * @param max The max amount of progress.\n     */\n    void progress(final long current, final long max);\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/concurrency/ResultGetter.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.concurrency;\n\nimport com.onedrive.sdk.extensions.IOneDriveClient;\n\n/**\n * Gets a result.\n * @param <T> The type of the result.\n */\npublic interface ResultGetter<T> {\n\n    /**\n     * Gets a result from a location with a client.\n     * @param resourceUrl The resource location.\n     * @param client The client to retrieve the resource with.\n     * @return The result.\n     */\n    T getResultFrom(final String resourceUrl, final IOneDriveClient client);\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/concurrency/SimpleWaiter.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.concurrency;\n\n/**\n * A simple signal/waiter interface for synchronizing multi-threaded actions.\n */\npublic class SimpleWaiter {\n\n    /**\n     * The internal lock object for this waiter.\n     */\n    private final Object mInternalLock = new Object();\n\n    /**\n     * Indicates if this waiter has been triggered.\n     */\n    private boolean mTriggerState;\n\n    /**\n     * BLOCKING: Waits for the signal to be triggered, or returns immediately if it has already been triggered.\n     */\n    public void waitForSignal() {\n        synchronized (mInternalLock) {\n            if (this.mTriggerState) {\n                return;\n            }\n            try {\n                mInternalLock.wait();\n            } catch (final InterruptedException e) {\n                throw new RuntimeException(e);\n            }\n        }\n    }\n\n    /**\n     * Triggers the signal for this waiter.\n     */\n    public void signal() {\n        synchronized (mInternalLock) {\n            mTriggerState = true;\n            mInternalLock.notifyAll();\n        }\n    }\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/concurrency/SynchronousExecutor.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.concurrency;\n\nimport android.os.AsyncTask;\nimport android.support.annotation.NonNull;\n\nimport java.util.concurrent.Executor;\nimport java.util.concurrent.atomic.AtomicInteger;\n\n/**\n * An executor that runs only on the main thread of an Android application.\n */\npublic class SynchronousExecutor implements Executor {\n\n    /**\n     * The current number of synchronously executing actions.\n     */\n    private AtomicInteger mActiveCount = new AtomicInteger(0);\n\n    /**\n     * Executes the given Runnable task.\n     * @param runnable The task to run on the main thread.\n     */\n    @Override public void execute(@NonNull final Runnable runnable) {\n        final AsyncTask<Void, Void, Void> asyncTask = new AsyncTask<Void, Void, Void>() {\n            @Override\n            protected Void doInBackground(final Void... params) {\n                return null;\n            }\n            @Override\n            protected void onPostExecute(final Void result) {\n                mActiveCount.incrementAndGet();\n                runnable.run();\n                mActiveCount.decrementAndGet();\n            }\n        };\n        asyncTask.execute();\n    }\n\n    /**\n     * Get the account number of executing actions.\n     * @return The count.\n     */\n    public int getActiveCount() {\n        return mActiveCount.get();\n    }\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/core/BaseClient.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.core;\n\nimport com.onedrive.sdk.authentication.IAuthenticator;\nimport com.onedrive.sdk.concurrency.IExecutors;\nimport com.onedrive.sdk.http.IHttpProvider;\nimport com.onedrive.sdk.logger.ILogger;\nimport com.onedrive.sdk.serializer.ISerializer;\n\n/**\n * A client that communications with an OData service.\n */\npublic class BaseClient implements IBaseClient {\n\n    /**\n     * The authenticator instance.\n     */\n    private IAuthenticator mAuthenticator;\n\n    /**\n     * The executors instance.\n     */\n    private IExecutors mExecutors;\n\n    /**\n     * The http provider instance.\n     */\n    private IHttpProvider mHttpProvider;\n\n    /**\n     * The logger.\n     */\n    private ILogger mLogger;\n\n    /**\n     * The serializer instance.\n     */\n    private ISerializer mSerializer;\n\n    /**\n     * Gets the authenticator.\n     * @return The authenticator.\n     */\n    @Override\n    public IAuthenticator getAuthenticator() {\n        return mAuthenticator;\n    }\n\n    /**\n     * Gets the service root.\n     * @return The service root.\n     */\n    @Override\n    public String getServiceRoot() {\n        return getAuthenticator().getAccountInfo().getServiceRoot();\n    }\n\n    /**\n     * Gets the executors.\n     * @return The executors.\n     */\n    @Override\n    public IExecutors getExecutors() {\n        return mExecutors;\n    }\n\n    /**\n     * Gets the http provider.\n     * @return The http provider.\n     */\n    @Override\n    public IHttpProvider getHttpProvider() {\n        return mHttpProvider;\n    }\n\n    /**\n     * Gets the logger.\n     * @return The logger.\n     */\n    public ILogger getLogger() {\n        return mLogger;\n    }\n\n    /**\n     * Gets the serializer.\n     * @return The serializer.\n     */\n    @Override\n    public ISerializer getSerializer() {\n        return mSerializer;\n    }\n\n    /**\n     * Validates this client.\n     */\n    @Override\n    public void validate() {\n        if (mAuthenticator == null) {\n            throw new NullPointerException(\"Authenticator\");\n        }\n\n        if (mExecutors == null) {\n            throw new NullPointerException(\"Executors\");\n        }\n\n        if (mHttpProvider == null) {\n            throw new NullPointerException(\"HttpProvider\");\n        }\n\n        if (mSerializer == null) {\n            throw new NullPointerException(\"Serializer\");\n        }\n    }\n\n    /**\n     * Sets the logger.\n     * @param logger The logger.\n     */\n    protected void setLogger(final ILogger logger) {\n        mLogger = logger;\n    }\n\n    /**\n     * Sets the executors.\n     * @param executors The executors.\n     */\n    protected void setExecutors(final IExecutors executors) {\n        mExecutors = executors;\n    }\n\n    /**\n     * Sets the authenticator.\n     * @param authenticator The authenticator.\n     */\n    protected void setAuthenticator(final IAuthenticator authenticator) {\n        mAuthenticator = authenticator;\n    }\n\n    /**\n     * Sets the http provider.\n     * @param httpProvider The http provider.\n     */\n    protected void setHttpProvider(final IHttpProvider httpProvider) {\n        mHttpProvider = httpProvider;\n    }\n\n    /**\n     * Sets the serializer.\n     * @param serializer The serializer.\n     */\n    public void setSerializer(final ISerializer serializer) {\n        mSerializer = serializer;\n    }\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/core/ClientException.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.core;\n\n/**\n * An exception from the client.\n */\npublic class ClientException extends RuntimeException {\n\n    /**\n     * The error code for this exception.\n     */\n    private final OneDriveErrorCodes mErrorCode;\n\n    /**\n     * Creates the client exception.\n     * @param message The message to display.\n     * @param ex The exception from.\n     * @param errorCode The error code for this exception.\n     */\n    public ClientException(final String message, final Throwable ex, final OneDriveErrorCodes errorCode) {\n        super(message, ex);\n        mErrorCode = errorCode;\n    }\n\n    /**\n     * Determines if the given error code is expected.\n     * @param expectedCode The expected error code.\n     * @return true if the error code matches, and false if there was no match.\n     */\n    public boolean isError(final OneDriveErrorCodes expectedCode) {\n        return mErrorCode == expectedCode;\n    }\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/core/DefaultClientConfig.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.core;\n\nimport com.onedrive.sdk.authentication.ADALAuthenticator;\nimport com.onedrive.sdk.authentication.AuthorizationInterceptor;\nimport com.onedrive.sdk.authentication.DisambiguationAuthenticator;\nimport com.onedrive.sdk.authentication.IAuthenticator;\nimport com.onedrive.sdk.authentication.MSAAuthenticator;\nimport com.onedrive.sdk.concurrency.DefaultExecutors;\nimport com.onedrive.sdk.concurrency.IExecutors;\nimport com.onedrive.sdk.http.DefaultHttpProvider;\nimport com.onedrive.sdk.http.IHttpProvider;\nimport com.onedrive.sdk.http.IRequestInterceptor;\nimport com.onedrive.sdk.logger.DefaultLogger;\nimport com.onedrive.sdk.logger.ILogger;\nimport com.onedrive.sdk.serializer.DefaultSerializer;\nimport com.onedrive.sdk.serializer.ISerializer;\n\n/**\n * The default configuration for a OneDrive client.\n */\npublic abstract class DefaultClientConfig implements IClientConfig {\n\n    /**\n     * The authenticator instance.\n     */\n    private IAuthenticator mAuthenticator;\n\n    /**\n     * The executors instance.\n     */\n    private IExecutors mExecutors;\n\n    /**\n     * The http provider instance.\n     */\n    private DefaultHttpProvider mHttpProvider;\n\n    /**\n     * The logger.\n     */\n    private ILogger mLogger;\n\n    /**\n     * The serializer instance.\n     */\n    private DefaultSerializer mSerializer;\n\n    /**\n     * The request interceptor.\n     */\n    private IRequestInterceptor mRequestInterceptor;\n\n    /**\n     * Creates an instance of this OneDrive config with an authenticator.\n     * @param authenticator The authenticator.\n     * @return The OneDriveConfiguration.\n     */\n    public static IClientConfig createWithAuthenticator(final IAuthenticator authenticator) {\n        DefaultClientConfig config = new DefaultClientConfig() { };\n        config.mAuthenticator = authenticator;\n        config.getLogger().logDebug(\"Using provided authenticator\");\n        return config;\n    }\n\n    /**\n     * Creates an instance of this OneDrive config that can disambiguate between MSA and ADAL accounts.\n     * @param msaAuthenticator The MSA authenticator.\n     * @param adalAuthenticator The ADAL authenticator.\n     * @return The OneDriveConfiguration.\n     */\n    public static IClientConfig createWithAuthenticators(\n            final MSAAuthenticator msaAuthenticator,\n            final ADALAuthenticator adalAuthenticator) {\n        DefaultClientConfig config = new DefaultClientConfig() { };\n        config.mAuthenticator = new DisambiguationAuthenticator(msaAuthenticator, adalAuthenticator);\n        config.getLogger().logDebug(\"Created DisambiguationAuthenticator\");\n        return config;\n    }\n\n    /**\n     * Gets the authenticator.\n     * @return The authenticator.\n     */\n    @Override\n    public IAuthenticator getAuthenticator() {\n        return mAuthenticator;\n    }\n\n    /**\n     * Gets the http provider.\n     * @return The http provider.\n     */\n    @Override\n    public IHttpProvider getHttpProvider() {\n        if (mHttpProvider == null) {\n            mHttpProvider = new DefaultHttpProvider(getSerializer(),\n                                                    getRequestInterceptor(),\n                                                    getExecutors(),\n                                                    getLogger());\n            mLogger.logDebug(\"Created DefaultHttpProvider\");\n        }\n        return mHttpProvider;\n    }\n\n    /**\n     * Gets the serializer.\n     * @return The serializer.\n     */\n    @Override\n    public ISerializer getSerializer() {\n        if (mSerializer == null) {\n            mSerializer = new DefaultSerializer(getLogger());\n            mLogger.logDebug(\"Created DefaultSerializer\");\n        }\n        return mSerializer;\n    }\n\n    /**\n     * Gets the executors.\n     * @return The executors.\n     */\n    @Override\n    public IExecutors getExecutors() {\n        if (mExecutors == null) {\n            mExecutors = new DefaultExecutors(getLogger());\n            mLogger.logDebug(\"Created DefaultExecutors\");\n        }\n        return mExecutors;\n    }\n\n    /**\n     * Gets the logger.\n     * @return The logger.\n     */\n    public ILogger getLogger() {\n        if (mLogger == null) {\n            mLogger = new DefaultLogger();\n            mLogger.logDebug(\"Created DefaultLogger\");\n        }\n        return mLogger;\n    }\n\n    /**\n     * Gets the request interceptor.\n     * @return The request interceptor.\n     */\n    private IRequestInterceptor getRequestInterceptor() {\n        if (mRequestInterceptor == null) {\n            mRequestInterceptor = new AuthorizationInterceptor(getAuthenticator(), getLogger());\n        }\n        return mRequestInterceptor;\n    }\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/core/IBaseClient.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.core;\n\nimport com.onedrive.sdk.authentication.IAuthenticator;\nimport com.onedrive.sdk.concurrency.IExecutors;\nimport com.onedrive.sdk.http.IHttpProvider;\nimport com.onedrive.sdk.logger.ILogger;\nimport com.onedrive.sdk.serializer.ISerializer;\n\n/**\n * A client that communications with an OData service.\n */\npublic interface IBaseClient {\n\n    /**\n     * Gets the authenticator.\n     * @return The authenticator.\n     */\n    IAuthenticator getAuthenticator();\n\n    /**\n     * Gets the service root.\n     * @return The service root.\n     */\n    String getServiceRoot();\n\n    /**\n     * Gets the executors.\n     * @return The executors.\n     */\n    IExecutors getExecutors();\n\n    /**\n     * Gets the http provider.\n     * @return The http provider.\n     */\n    IHttpProvider getHttpProvider();\n\n    /**\n     * Gets the logger.\n     * @return The logger.\n     */\n    ILogger getLogger();\n\n    /**\n     * Gets the serializer.\n     * @return The serializer.\n     */\n    ISerializer getSerializer();\n\n    /**\n     * Validates this client.\n     */\n    void validate();\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/core/IClientConfig.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.core;\n\nimport com.onedrive.sdk.authentication.IAuthenticator;\nimport com.onedrive.sdk.concurrency.IExecutors;\nimport com.onedrive.sdk.http.IHttpProvider;\nimport com.onedrive.sdk.logger.ILogger;\nimport com.onedrive.sdk.serializer.ISerializer;\n\n/**\n * The default configuration for a OneDrive client.\n */\npublic interface IClientConfig {\n    /**\n     * Gets the authenticator.\n     * @return The authenticator.\n     */\n    IAuthenticator getAuthenticator();\n\n    /**\n     * Gets the executors.\n     * @return The executors.\n     */\n    IExecutors getExecutors();\n\n    /**\n     * Gets the http provider.\n     * @return The http provider.\n     */\n    IHttpProvider getHttpProvider();\n\n    /**\n     * Gets the logger.\n     * @return The logger.\n     */\n    ILogger getLogger();\n\n    /**\n     * Gets the serializer.\n     * @return The serializer.\n     */\n    ISerializer getSerializer();\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/core/OneDriveErrorCodes.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.core;\n\n/**\n * The common OneDrive error codes.\n * See https://dev.onedrive.com/misc/errors.htm for more details.\n */\npublic enum OneDriveErrorCodes {\n    // Standard error codes.\n    AccessDenied,\n    ActivityLimitReached,\n    AsyncTaskFailed,\n    AsyncTaskNotCompleted,\n    AuthenticationCancelled,\n    AuthenticationFailure,\n    AuthenicationPermissionsDenied,\n    GeneralException,\n    InvalidRange,\n    InvalidRequest,\n    ItemNotFound,\n    MalwareDetected,\n    NameAlreadyExists,\n    NotAllowed,\n    NotSupported,\n    QuotaLimitReached,\n    ResourceModified,\n    ResyncRequired,\n    ServiceNotAvailable,\n    TooManyRedirects,\n    Unauthenticated,\n\n    // Extend error codes.\n    AccessRestricted,\n    CannotSnapshotTree,\n    ChildItemCountExceeded,\n    EntityTagDoesNotMatch,\n    FragmentLengthMismatch,\n    FragmentOutOfOrder,\n    FragmentOverlap,\n    InvalidAcceptType,\n    InvalidParameterFormat,\n    InvalidPath,\n    InvalidQueryOption,\n    InvalidStartIndex,\n    LockMismatch,\n    LockNotFoundOrAlreadyExpired,\n    LockOwnerMismatch,\n    MalformedEntityTag,\n    MaxDocumentCountExceeded,\n    MaxFileSizeExceeded,\n    MaxFolderCountExceeded,\n    MaxFragmentLengthExceeded,\n    MaxItemCountExceeded,\n    MaxQueryLengthExceeded,\n    MaxStreamSizeExceeded,\n    ParameterIsTooLong,\n    ParameterIsTooSmall,\n    PathIsTooLong,\n    PathTooDeep,\n    PropertyNotUpdateable,\n    ResyncApplyDifferences,\n    ResyncUploadDifferences,\n    ServiceReadOnly,\n    ThrottledRequest,\n    TooManyResultsRequested,\n    TooManyTermsInQuery,\n    TotalAffectedItemCountExceeded,\n    TruncationNotAllowed,\n    UploadSessionFailed,\n    UploadSessionIncomplete,\n    UploadSessionNotFound,\n    VirusSuspicious,\n    ZeroOrFewerResultsRequested,\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/extensions/AsyncOperationStatus.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.extensions;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\n// This file is available for extending, afterwards please submit a pull request.\n\n/**\n * The class for the Async Operation Status.\n */\npublic class AsyncOperationStatus extends BaseAsyncOperationStatus {\n\n    /**\n     * Other references to lookup for this object\n     */\n    public String seeOther;\n\n    /**\n     * The detailed status description\n     */\n    public String statusDescription;\n\n    /**\n     * Creates a completed operation from a see other location\n     * @param seeOther The location for the completed item\n     * @return The completed async operation status\n     */\n    public static AsyncOperationStatus createdCompleted(final String seeOther) {\n        final AsyncOperationStatus completedStatus = new AsyncOperationStatus();\n        completedStatus.seeOther = seeOther;\n        completedStatus.percentageComplete = 100d;\n        completedStatus.status = \"Completed\";\n        return completedStatus;\n    }\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/extensions/Audio.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.extensions;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\n// This file is available for extending, afterwards please submit a pull request.\n\n/**\n * The class for the Audio.\n */\npublic class Audio extends BaseAudio {\n\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/extensions/ChunkedUploadResult.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.extensions;\n\nimport com.onedrive.sdk.core.ClientException;\nimport com.onedrive.sdk.core.OneDriveErrorCodes;\nimport com.onedrive.sdk.http.OneDriveServiceException;\n\n/**\n * Wrapper class for different upload response from server.\n */\npublic class ChunkedUploadResult<UploadType> {\n    /**\n     * The uploaded item response.\n     */\n    private final UploadType mUploadedItem;\n\n    /**\n     * The next session response.\n     */\n    private final UploadSession mSession;\n\n    /**\n     * The error happened during upload.\n     */\n    private final ClientException mError;\n\n    /**\n     * Construct result with item created.\n     * @param uploaded The created item.\n     */\n    public ChunkedUploadResult(UploadType uploaded) {\n        this.mUploadedItem = uploaded;\n        this.mSession = null;\n        this.mError = null;\n    }\n\n    /**\n     * Construct result with next session.\n     * @param session The next session.\n     */\n    public ChunkedUploadResult(UploadSession session) {\n        this.mSession = session;\n        this.mUploadedItem = null;\n        this.mError = null;\n    }\n\n    /**\n     * Construct result with error.\n     * @param error The error occurred during uploading.\n     */\n    public ChunkedUploadResult(ClientException error) {\n        this.mError = error;\n        this.mUploadedItem = null;\n        this.mSession = null;\n    }\n\n    /**\n     * Construct result with server exception.\n     * @param exception The exception received from server.\n     */\n    public ChunkedUploadResult(OneDriveServiceException exception) {\n        this(new ClientException(exception.getMessage(/* verbose */ true), exception, OneDriveErrorCodes.UploadSessionFailed));\n    }\n\n    /**\n     * Checks the chunk upload is completed.\n     * @return true if current chunk upload is completed.\n     */\n    public boolean chunkCompleted() {\n        return this.mUploadedItem != null || this.mSession != null;\n    }\n\n    /**\n     * Checks the whole upload is completed.\n     * @return true if the response is a an item.\n     */\n    public boolean uploadCompleted() {\n        return this.mUploadedItem != null;\n    }\n\n    /**\n     * Checks if error happened.\n     * @return  true if current request has error.\n     */\n    public boolean hasError() {\n        return this.mError != null;\n    }\n\n    /**\n     * Get the uploaded item.\n     * @return The item.\n     */\n    public UploadType getItem() {\n        return this.mUploadedItem;\n    }\n\n    /**\n     * Get the next session.\n     * @return The next session for uploading.\n     */\n    public UploadSession getSession() {\n        return this.mSession;\n    }\n\n    /**\n     * Get the error.\n     * @return The error.\n     */\n    public ClientException getError() {\n        return this.mError;\n    }\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/extensions/ChunkedUploadSessionDescriptor.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.extensions;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\n// This file is available for extending, afterwards please submit a pull request.\n\n/**\n * The class for the Chunked Upload Session Descriptor.\n */\npublic class ChunkedUploadSessionDescriptor extends BaseChunkedUploadSessionDescriptor {\n\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/extensions/CopyBody.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.extensions;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\nimport com.google.gson.JsonObject;\nimport com.google.gson.annotations.*;\n\n// This file is available for extending, afterwards please submit a pull request.\n\n/**\n * The class for the Copy Body.\n */\npublic class CopyBody extends BaseCopyBody {\n\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/extensions/CopyRequest.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.extensions;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\n// This file is available for extending, afterwards please submit a pull request.\n\n/**\n * The class for the Copy Request.\n */\npublic class CopyRequest extends BaseCopyRequest implements ICopyRequest {\n\n    /**\n     * The request for this Copy\n     *\n     * @param requestUrl The request url\n     * @param client The service client\n     * @param options The options for this request\n     */\n    public CopyRequest(final String requestUrl, final IOneDriveClient client, final List<Option> options, final String name, final ItemReference parentReference) {\n        super(requestUrl, client, options, name, parentReference);\n    }\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/extensions/CopyRequestBuilder.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.extensions;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\n// This file is available for extending, afterwards please submit a pull request.\n\n/**\n * The class for the Copy Request Builder.\n */\npublic class CopyRequestBuilder extends BaseCopyRequestBuilder implements ICopyRequestBuilder {\n\n    /**\n     * The request builder for this Copy\n     *\n     * @param requestUrl The request url\n     * @param client The service client\n     * @param options The options for this request\n     */\n    public CopyRequestBuilder(final String requestUrl, final IOneDriveClient client, final List<Option> options, final String name, final ItemReference parentReference) {\n        super(requestUrl, client, options, name, parentReference);\n    }\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/extensions/CreateLinkBody.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.extensions;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\nimport com.google.gson.JsonObject;\nimport com.google.gson.annotations.*;\n\n// This file is available for extending, afterwards please submit a pull request.\n\n/**\n * The class for the Create Link Body.\n */\npublic class CreateLinkBody extends BaseCreateLinkBody {\n\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/extensions/CreateLinkRequest.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.extensions;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\n// This file is available for extending, afterwards please submit a pull request.\n\n/**\n * The class for the Create Link Request.\n */\npublic class CreateLinkRequest extends BaseCreateLinkRequest implements ICreateLinkRequest {\n\n    /**\n     * The request for this CreateLink\n     *\n     * @param requestUrl The request url\n     * @param client The service client\n     * @param options The options for this request\n     */\n    public CreateLinkRequest(final String requestUrl, final IOneDriveClient client, final List<Option> options, final String type) {\n        super(requestUrl, client, options, type);\n    }\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/extensions/CreateLinkRequestBuilder.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.extensions;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\n// This file is available for extending, afterwards please submit a pull request.\n\n/**\n * The class for the Create Link Request Builder.\n */\npublic class CreateLinkRequestBuilder extends BaseCreateLinkRequestBuilder implements ICreateLinkRequestBuilder {\n\n    /**\n     * The request builder for this CreateLink\n     *\n     * @param requestUrl The request url\n     * @param client The service client\n     * @param options The options for this request\n     */\n    public CreateLinkRequestBuilder(final String requestUrl, final IOneDriveClient client, final List<Option> options, final String type) {\n        super(requestUrl, client, options, type);\n    }\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/extensions/CreateSessionBody.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.extensions;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\nimport com.google.gson.JsonObject;\nimport com.google.gson.annotations.*;\n\n// This file is available for extending, afterwards please submit a pull request.\n\n/**\n * The class for the Create Session Body.\n */\npublic class CreateSessionBody extends BaseCreateSessionBody {\n\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/extensions/CreateSessionRequest.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.extensions;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\n// This file is available for extending, afterwards please submit a pull request.\n\n/**\n * The class for the Create Session Request.\n */\npublic class CreateSessionRequest extends BaseCreateSessionRequest implements ICreateSessionRequest {\n\n    /**\n     * The request for this CreateSession\n     *\n     * @param requestUrl The request url\n     * @param client The service client\n     * @param options The options for this request\n     */\n    public CreateSessionRequest(final String requestUrl, final IOneDriveClient client, final List<Option> options, final ChunkedUploadSessionDescriptor item) {\n        super(requestUrl, client, options, item);\n    }\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/extensions/CreateSessionRequestBuilder.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.extensions;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\n// This file is available for extending, afterwards please submit a pull request.\n\n/**\n * The class for the Create Session Request Builder.\n */\npublic class CreateSessionRequestBuilder extends BaseCreateSessionRequestBuilder implements ICreateSessionRequestBuilder {\n\n    /**\n     * The request builder for this CreateSession\n     *\n     * @param requestUrl The request url\n     * @param client The service client\n     * @param options The options for this request\n     */\n    public CreateSessionRequestBuilder(final String requestUrl, final IOneDriveClient client, final List<Option> options, final ChunkedUploadSessionDescriptor item) {\n        super(requestUrl, client, options, item);\n    }\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/extensions/Deleted.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.extensions;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\n// This file is available for extending, afterwards please submit a pull request.\n\n/**\n * The class for the Deleted.\n */\npublic class Deleted extends BaseDeleted {\n\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/extensions/DeltaCollectionPage.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.extensions;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\n// This file is available for extending, afterwards please submit a pull request.\n\n/**\n * The class for the Delta Collection Page.\n */\npublic class DeltaCollectionPage extends BaseDeltaCollectionPage implements IDeltaCollectionPage {\n\n    /**\n     * A collection page for Item.\n     *\n     * @param response The serialized BaseDeltaCollectionResponse from the OneDrive service\n     * @param builder The request builder for the next collection page\n     */\n    public DeltaCollectionPage(final BaseDeltaCollectionResponse response, final IDeltaRequestBuilder builder) {\n        super(response, builder);\n    }\n\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/extensions/DeltaRequest.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.extensions;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\n// This file is available for extending, afterwards please submit a pull request.\n\n/**\n * The class for the Delta Request.\n */\npublic class DeltaRequest extends BaseDeltaRequest implements IDeltaRequest {\n\n    /**\n     * The request for this Delta\n     *\n     * @param requestUrl The request url\n     * @param client The service client\n     * @param options The options for this request\n     */\n    public DeltaRequest(final String requestUrl, final IOneDriveClient client, final List<Option> options, final String token) {\n        super(requestUrl, client, options, token);\n    }\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/extensions/DeltaRequestBuilder.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.extensions;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\n// This file is available for extending, afterwards please submit a pull request.\n\n/**\n * The class for the Delta Request Builder.\n */\npublic class DeltaRequestBuilder extends BaseDeltaRequestBuilder implements IDeltaRequestBuilder {\n\n    /**\n     * The request builder for this Delta\n     *\n     * @param requestUrl The request url\n     * @param client The service client\n     * @param options The options for this request\n     */\n    public DeltaRequestBuilder(final String requestUrl, final IOneDriveClient client, final List<Option> options, final String token) {\n        super(requestUrl, client, options, token);\n    }\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/extensions/DeltaResponse.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.extensions;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\n// This file is available for extending, afterwards please submit a pull request.\n\n/**\n * The class for the Delta Response.\n */\npublic class DeltaResponse extends BaseDeltaResponse {\n\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/extensions/Drive.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.extensions;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\n// This file is available for extending, afterwards please submit a pull request.\n\n/**\n * The class for the Drive.\n */\npublic class Drive extends BaseDrive {\n\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/extensions/DriveCollectionPage.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.extensions;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\n// This file is available for extending, afterwards please submit a pull request.\n\n/**\n * The class for the Drive Collection Page.\n */\npublic class DriveCollectionPage extends BaseDriveCollectionPage implements IDriveCollectionPage {\n\n    /**\n     * A collection page for Drive.\n     *\n     * @param response The serialized BaseDriveCollectionResponse from the OneDrive service\n     * @param builder The request builder for the next collection page\n     */\n    public DriveCollectionPage(final BaseDriveCollectionResponse response, final IDriveCollectionRequestBuilder builder) {\n        super(response, builder);\n    }\n\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/extensions/DriveCollectionRequest.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.extensions;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\n// This file is available for extending, afterwards please submit a pull request.\n\n/**\n * The class for the Drive Collection Request.\n */\npublic class DriveCollectionRequest extends BaseDriveCollectionRequest implements IDriveCollectionRequest {\n\n    /**\n     * The request for this collection of Drive\n     *\n     * @param requestUrl The request url\n     * @param client The service client\n     * @param options The options for this request\n     */\n    public DriveCollectionRequest(final String requestUrl, final IOneDriveClient client, final List<Option> options) {\n        super(requestUrl, client, options);\n    }\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/extensions/DriveCollectionRequestBuilder.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.extensions;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\n// This file is available for extending, afterwards please submit a pull request.\n\n/**\n * The class for the Drive Collection Request Builder.\n */\npublic class DriveCollectionRequestBuilder extends BaseDriveCollectionRequestBuilder implements IDriveCollectionRequestBuilder {\n\n    /**\n     * The request builder for this collection of Drive\n     *\n     * @param requestUrl The request url\n     * @param client The service client\n     * @param options The options for this request\n     */\n    public DriveCollectionRequestBuilder(final String requestUrl, final IOneDriveClient client, final List<Option> options) {\n        super(requestUrl, client, options);\n    }\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/extensions/DriveRequest.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.extensions;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\n// This file is available for extending, afterwards please submit a pull request.\n\n/**\n * The class for the Drive Request.\n */\npublic class DriveRequest extends BaseDriveRequest implements IDriveRequest {\n\n    /**\n     * The request for the Drive\n     *\n     * @param requestUrl The request url\n     * @param client The service client\n     * @param options The options for this request\n     */\n    public DriveRequest(final String requestUrl, final IOneDriveClient client, final List<Option> options) {\n        super(requestUrl, client, options);\n    }\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/extensions/DriveRequestBuilder.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.extensions;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\n// This file is available for extending, afterwards please submit a pull request.\n\n/**\n * The class for the Drive Request Builder.\n */\npublic class DriveRequestBuilder extends BaseDriveRequestBuilder implements IDriveRequestBuilder {\n\n    /**\n     * The request builder for the Drive\n     *\n     * @param requestUrl The request url\n     * @param client The service client\n     * @param options The options for this request\n     */\n    public DriveRequestBuilder(final String requestUrl, final IOneDriveClient client, final List<Option> options) {\n        super(requestUrl, client, options);\n    }\n\n    /**\n     * Gets the root of the drive\n     * @return The root item\n     */\n    @Override\n    public IItemRequestBuilder getRoot() {\n        return new ItemRequestBuilder(getRequestUrlWithAdditionalSegment(\"root\"), getClient(), null);\n    }\n\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/extensions/File.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.extensions;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\n// This file is available for extending, afterwards please submit a pull request.\n\n/**\n * The class for the File.\n */\npublic class File extends BaseFile {\n\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/extensions/FileSystemInfo.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.extensions;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\n// This file is available for extending, afterwards please submit a pull request.\n\n/**\n * The class for the File System Info.\n */\npublic class FileSystemInfo extends BaseFileSystemInfo {\n\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/extensions/Folder.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.extensions;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\n// This file is available for extending, afterwards please submit a pull request.\n\n/**\n * The class for the Folder.\n */\npublic class Folder extends BaseFolder {\n\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/extensions/Hashes.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.extensions;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\n// This file is available for extending, afterwards please submit a pull request.\n\n/**\n * The class for the Hashes.\n */\npublic class Hashes extends BaseHashes {\n\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/extensions/ICopyRequest.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.extensions;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\n// This file is available for extending, afterwards please submit a pull request.\n\n/**\n * The interface for the Copy Request.\n */\npublic interface ICopyRequest extends IBaseCopyRequest {\n\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/extensions/ICopyRequestBuilder.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.extensions;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\n// This file is available for extending, afterwards please submit a pull request.\n\n/**\n * The interface for the Copy Request Builder.\n */\npublic interface ICopyRequestBuilder extends IBaseCopyRequestBuilder {\n\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/extensions/ICreateLinkRequest.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.extensions;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\n// This file is available for extending, afterwards please submit a pull request.\n\n/**\n * The interface for the Create Link Request.\n */\npublic interface ICreateLinkRequest extends IBaseCreateLinkRequest {\n\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/extensions/ICreateLinkRequestBuilder.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.extensions;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\n// This file is available for extending, afterwards please submit a pull request.\n\n/**\n * The interface for the Create Link Request Builder.\n */\npublic interface ICreateLinkRequestBuilder extends IBaseCreateLinkRequestBuilder {\n\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/extensions/ICreateSessionRequest.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.extensions;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\n// This file is available for extending, afterwards please submit a pull request.\n\n/**\n * The interface for the Create Session Request.\n */\npublic interface ICreateSessionRequest extends IBaseCreateSessionRequest {\n\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/extensions/ICreateSessionRequestBuilder.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.extensions;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\n// This file is available for extending, afterwards please submit a pull request.\n\n/**\n * The interface for the Create Session Request Builder.\n */\npublic interface ICreateSessionRequestBuilder extends IBaseCreateSessionRequestBuilder {\n\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/extensions/IDeltaCollectionPage.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.extensions;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\n// This file is available for extending, afterwards please submit a pull request.\n\n/**\n * The interface for the Delta Collection Page.\n */\npublic interface IDeltaCollectionPage extends IBaseDeltaCollectionPage {\n\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/extensions/IDeltaRequest.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.extensions;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\n// This file is available for extending, afterwards please submit a pull request.\n\n/**\n * The interface for the Delta Request.\n */\npublic interface IDeltaRequest extends IBaseDeltaRequest {\n\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/extensions/IDeltaRequestBuilder.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.extensions;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\n// This file is available for extending, afterwards please submit a pull request.\n\n/**\n * The interface for the Delta Request Builder.\n */\npublic interface IDeltaRequestBuilder extends IBaseDeltaRequestBuilder {\n\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/extensions/IDriveCollectionPage.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.extensions;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\n// This file is available for extending, afterwards please submit a pull request.\n\n/**\n * The interface for the Drive Collection Page.\n */\npublic interface IDriveCollectionPage extends IBaseDriveCollectionPage {\n\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/extensions/IDriveCollectionRequest.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.extensions;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\n// This file is available for extending, afterwards please submit a pull request.\n\n/**\n * The interface for the Drive Collection Request.\n */\npublic interface IDriveCollectionRequest extends IBaseDriveCollectionRequest {\n\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/extensions/IDriveCollectionRequestBuilder.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.extensions;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\n// This file is available for extending, afterwards please submit a pull request.\n\n/**\n * The interface for the Drive Collection Request Builder.\n */\npublic interface IDriveCollectionRequestBuilder extends IBaseDriveCollectionRequestBuilder {\n\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/extensions/IDriveRequest.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.extensions;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\n// This file is available for extending, afterwards please submit a pull request.\n\n/**\n * The interface for the Drive Request.\n */\npublic interface IDriveRequest extends IBaseDriveRequest {\n\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/extensions/IDriveRequestBuilder.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.extensions;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\n// This file is available for extending, afterwards please submit a pull request.\n\n/**\n * The interface for the Drive Request Builder.\n */\npublic interface IDriveRequestBuilder extends IBaseDriveRequestBuilder {\n\n    /**\n     * Gets the root of the drive.\n     * @return The root item.\n     */\n    IItemRequestBuilder getRoot();\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/extensions/IItemCollectionPage.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.extensions;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\n// This file is available for extending, afterwards please submit a pull request.\n\n/**\n * The interface for the Item Collection Page.\n */\npublic interface IItemCollectionPage extends IBaseItemCollectionPage {\n\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/extensions/IItemCollectionRequest.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.extensions;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\n// This file is available for extending, afterwards please submit a pull request.\n\n/**\n * The interface for the Item Collection Request.\n */\npublic interface IItemCollectionRequest extends IBaseItemCollectionRequest {\n\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/extensions/IItemCollectionRequestBuilder.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.extensions;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\n// This file is available for extending, afterwards please submit a pull request.\n\n/**\n * The interface for the Item Collection Request Builder.\n */\npublic interface IItemCollectionRequestBuilder extends IBaseItemCollectionRequestBuilder {\n\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/extensions/IItemRequest.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.extensions;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\n// This file is available for extending, afterwards please submit a pull request.\n\n/**\n * The interface for the Item Request.\n */\npublic interface IItemRequest extends IBaseItemRequest {\n\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/extensions/IItemRequestBuilder.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.extensions;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\n// This file is available for extending, afterwards please submit a pull request.\n\n/**\n * The interface for the Item Request Builder.\n */\npublic interface IItemRequestBuilder extends IBaseItemRequestBuilder {\n\n    /**\n     * Gets the item request builder for the specified item path\n     * @param path The path to the item\n     * @return The request builder for the specified item\n     */\n    IItemRequestBuilder getItemWithPath(final String path);\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/extensions/IItemStreamRequest.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.extensions;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\n// This file is available for extending, afterwards please submit a pull request.\n\n/**\n * The interface for the Item Stream Request.\n */\npublic interface IItemStreamRequest extends IBaseItemStreamRequest {\n\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/extensions/IItemStreamRequestBuilder.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.extensions;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\n// This file is available for extending, afterwards please submit a pull request.\n\n/**\n * The interface for the Item Stream Request Builder.\n */\npublic interface IItemStreamRequestBuilder extends IBaseItemStreamRequestBuilder {\n\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/extensions/IOneDriveClient.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.extensions;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\n// This file is available for extending, afterwards please submit a pull request.\n\n/**\n * The interface for the One Drive Client.\n */\npublic interface IOneDriveClient extends IBaseOneDriveClient {\n\n    /**\n     * Gets a request builder for the default drive.\n     * @return The request builder.\n     */\n    IDriveRequestBuilder getDrive();\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/extensions/IPermissionCollectionPage.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.extensions;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\n// This file is available for extending, afterwards please submit a pull request.\n\n/**\n * The interface for the Permission Collection Page.\n */\npublic interface IPermissionCollectionPage extends IBasePermissionCollectionPage {\n\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/extensions/IPermissionCollectionRequest.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.extensions;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\n// This file is available for extending, afterwards please submit a pull request.\n\n/**\n * The interface for the Permission Collection Request.\n */\npublic interface IPermissionCollectionRequest extends IBasePermissionCollectionRequest {\n\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/extensions/IPermissionCollectionRequestBuilder.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.extensions;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\n// This file is available for extending, afterwards please submit a pull request.\n\n/**\n * The interface for the Permission Collection Request Builder.\n */\npublic interface IPermissionCollectionRequestBuilder extends IBasePermissionCollectionRequestBuilder {\n\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/extensions/IPermissionRequest.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.extensions;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\n// This file is available for extending, afterwards please submit a pull request.\n\n/**\n * The interface for the Permission Request.\n */\npublic interface IPermissionRequest extends IBasePermissionRequest {\n\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/extensions/IPermissionRequestBuilder.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.extensions;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\n// This file is available for extending, afterwards please submit a pull request.\n\n/**\n * The interface for the Permission Request Builder.\n */\npublic interface IPermissionRequestBuilder extends IBasePermissionRequestBuilder {\n\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/extensions/IRecentCollectionPage.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.extensions;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\n// This file is available for extending, afterwards please submit a pull request.\n\n/**\n * The interface for the Recent Collection Page.\n */\npublic interface IRecentCollectionPage extends IBaseRecentCollectionPage {\n\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/extensions/IRecentRequest.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.extensions;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\n// This file is available for extending, afterwards please submit a pull request.\n\n/**\n * The interface for the Recent Request.\n */\npublic interface IRecentRequest extends IBaseRecentRequest {\n\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/extensions/IRecentRequestBuilder.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.extensions;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\n// This file is available for extending, afterwards please submit a pull request.\n\n/**\n * The interface for the Recent Request Builder.\n */\npublic interface IRecentRequestBuilder extends IBaseRecentRequestBuilder {\n\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/extensions/ISearchCollectionPage.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.extensions;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\n// This file is available for extending, afterwards please submit a pull request.\n\n/**\n * The interface for the Search Collection Page.\n */\npublic interface ISearchCollectionPage extends IBaseSearchCollectionPage {\n\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/extensions/ISearchRequest.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.extensions;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\n// This file is available for extending, afterwards please submit a pull request.\n\n/**\n * The interface for the Search Request.\n */\npublic interface ISearchRequest extends IBaseSearchRequest {\n\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/extensions/ISearchRequestBuilder.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.extensions;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\n// This file is available for extending, afterwards please submit a pull request.\n\n/**\n * The interface for the Search Request Builder.\n */\npublic interface ISearchRequestBuilder extends IBaseSearchRequestBuilder {\n\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/extensions/IShareCollectionPage.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.extensions;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\n// This file is available for extending, afterwards please submit a pull request.\n\n/**\n * The interface for the Share Collection Page.\n */\npublic interface IShareCollectionPage extends IBaseShareCollectionPage {\n\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/extensions/IShareCollectionRequest.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.extensions;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\n// This file is available for extending, afterwards please submit a pull request.\n\n/**\n * The interface for the Share Collection Request.\n */\npublic interface IShareCollectionRequest extends IBaseShareCollectionRequest {\n\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/extensions/IShareCollectionRequestBuilder.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.extensions;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\n// This file is available for extending, afterwards please submit a pull request.\n\n/**\n * The interface for the Share Collection Request Builder.\n */\npublic interface IShareCollectionRequestBuilder extends IBaseShareCollectionRequestBuilder {\n\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/extensions/IShareRequest.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.extensions;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\n// This file is available for extending, afterwards please submit a pull request.\n\n/**\n * The interface for the Share Request.\n */\npublic interface IShareRequest extends IBaseShareRequest {\n\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/extensions/IShareRequestBuilder.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.extensions;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\n// This file is available for extending, afterwards please submit a pull request.\n\n/**\n * The interface for the Share Request Builder.\n */\npublic interface IShareRequestBuilder extends IBaseShareRequestBuilder {\n\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/extensions/IStringCollectionPage.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.extensions;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\n// This file is available for extending, afterwards please submit a pull request.\n\n/**\n * The interface for the String Collection Page.\n */\npublic interface IStringCollectionPage extends IBaseStringCollectionPage {\n\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/extensions/IStringCollectionRequest.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.extensions;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\n// This file is available for extending, afterwards please submit a pull request.\n\n/**\n * The interface for the String Collection Request.\n */\npublic interface IStringCollectionRequest extends IBaseStringCollectionRequest {\n\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/extensions/IStringCollectionRequestBuilder.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.extensions;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\n// This file is available for extending, afterwards please submit a pull request.\n\n/**\n * The interface for the String Collection Request Builder.\n */\npublic interface IStringCollectionRequestBuilder extends IBaseStringCollectionRequestBuilder {\n\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/extensions/IThumbnailRequest.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.extensions;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\n// This file is available for extending, afterwards please submit a pull request.\n\n/**\n * The interface for the Thumbnail Request.\n */\npublic interface IThumbnailRequest extends IBaseThumbnailRequest {\n\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/extensions/IThumbnailRequestBuilder.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.extensions;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\n// This file is available for extending, afterwards please submit a pull request.\n\n/**\n * The interface for the Thumbnail Request Builder.\n */\npublic interface IThumbnailRequestBuilder extends IBaseThumbnailRequestBuilder {\n\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/extensions/IThumbnailSetCollectionPage.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.extensions;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\n// This file is available for extending, afterwards please submit a pull request.\n\n/**\n * The interface for the Thumbnail Set Collection Page.\n */\npublic interface IThumbnailSetCollectionPage extends IBaseThumbnailSetCollectionPage {\n\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/extensions/IThumbnailSetCollectionRequest.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.extensions;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\n// This file is available for extending, afterwards please submit a pull request.\n\n/**\n * The interface for the Thumbnail Set Collection Request.\n */\npublic interface IThumbnailSetCollectionRequest extends IBaseThumbnailSetCollectionRequest {\n\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/extensions/IThumbnailSetCollectionRequestBuilder.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.extensions;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\n// This file is available for extending, afterwards please submit a pull request.\n\n/**\n * The interface for the Thumbnail Set Collection Request Builder.\n */\npublic interface IThumbnailSetCollectionRequestBuilder extends IBaseThumbnailSetCollectionRequestBuilder {\n\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/extensions/IThumbnailSetRequest.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.extensions;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\n// This file is available for extending, afterwards please submit a pull request.\n\n/**\n * The interface for the Thumbnail Set Request.\n */\npublic interface IThumbnailSetRequest extends IBaseThumbnailSetRequest {\n\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/extensions/IThumbnailSetRequestBuilder.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.extensions;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\n// This file is available for extending, afterwards please submit a pull request.\n\n/**\n * The interface for the Thumbnail Set Request Builder.\n */\npublic interface IThumbnailSetRequestBuilder extends IBaseThumbnailSetRequestBuilder {\n\n    /**\n     * Gets a request for a thumbnail of a specific size\n     * @param size The size to request\n     * @return The request builder for that thumbnail size\n     */\n    IThumbnailRequestBuilder getThumbnailSize(final String size);\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/extensions/IThumbnailStreamRequest.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.extensions;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\n// This file is available for extending, afterwards please submit a pull request.\n\n/**\n * The interface for the Thumbnail Stream Request.\n */\npublic interface IThumbnailStreamRequest extends IBaseThumbnailStreamRequest {\n\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/extensions/IThumbnailStreamRequestBuilder.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.extensions;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\n// This file is available for extending, afterwards please submit a pull request.\n\n/**\n * The interface for the Thumbnail Stream Request Builder.\n */\npublic interface IThumbnailStreamRequestBuilder extends IBaseThumbnailStreamRequestBuilder {\n\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/extensions/Identity.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.extensions;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\n// This file is available for extending, afterwards please submit a pull request.\n\n/**\n * The class for the Identity.\n */\npublic class Identity extends BaseIdentity {\n\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/extensions/IdentitySet.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.extensions;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\n// This file is available for extending, afterwards please submit a pull request.\n\n/**\n * The class for the Identity Set.\n */\npublic class IdentitySet extends BaseIdentitySet {\n\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/extensions/Image.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.extensions;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\n// This file is available for extending, afterwards please submit a pull request.\n\n/**\n * The class for the Image.\n */\npublic class Image extends BaseImage {\n\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/extensions/Item.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.extensions;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\n// This file is available for extending, afterwards please submit a pull request.\n\n/**\n * The class for the Item.\n */\npublic class Item extends BaseItem {\n\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/extensions/ItemCollectionPage.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.extensions;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\n// This file is available for extending, afterwards please submit a pull request.\n\n/**\n * The class for the Item Collection Page.\n */\npublic class ItemCollectionPage extends BaseItemCollectionPage implements IItemCollectionPage {\n\n    /**\n     * A collection page for Item.\n     *\n     * @param response The serialized BaseItemCollectionResponse from the OneDrive service\n     * @param builder The request builder for the next collection page\n     */\n    public ItemCollectionPage(final BaseItemCollectionResponse response, final IItemCollectionRequestBuilder builder) {\n        super(response, builder);\n    }\n\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/extensions/ItemCollectionRequest.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.extensions;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\n// This file is available for extending, afterwards please submit a pull request.\n\n/**\n * The class for the Item Collection Request.\n */\npublic class ItemCollectionRequest extends BaseItemCollectionRequest implements IItemCollectionRequest {\n\n    /**\n     * The request for this collection of Item\n     *\n     * @param requestUrl The request url\n     * @param client The service client\n     * @param options The options for this request\n     */\n    public ItemCollectionRequest(final String requestUrl, final IOneDriveClient client, final List<Option> options) {\n        super(requestUrl, client, options);\n    }\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/extensions/ItemCollectionRequestBuilder.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.extensions;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\n// This file is available for extending, afterwards please submit a pull request.\n\n/**\n * The class for the Item Collection Request Builder.\n */\npublic class ItemCollectionRequestBuilder extends BaseItemCollectionRequestBuilder implements IItemCollectionRequestBuilder {\n\n    /**\n     * The request builder for this collection of Item\n     *\n     * @param requestUrl The request url\n     * @param client The service client\n     * @param options The options for this request\n     */\n    public ItemCollectionRequestBuilder(final String requestUrl, final IOneDriveClient client, final List<Option> options) {\n        super(requestUrl, client, options);\n    }\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/extensions/ItemReference.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.extensions;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\n// This file is available for extending, afterwards please submit a pull request.\n\n/**\n * The class for the Item Reference.\n */\npublic class ItemReference extends BaseItemReference {\n\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/extensions/ItemRequest.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.extensions;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\n// This file is available for extending, afterwards please submit a pull request.\n\n/**\n * The class for the Item Request.\n */\npublic class ItemRequest extends BaseItemRequest implements IItemRequest {\n\n    /**\n     * The request for the Item\n     *\n     * @param requestUrl The request url\n     * @param client The service client\n     * @param options The options for this request\n     */\n    public ItemRequest(final String requestUrl, final IOneDriveClient client, final List<Option> options) {\n        super(requestUrl, client, options);\n    }\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/extensions/ItemRequestBuilder.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.extensions;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\n// This file is available for extending, afterwards please submit a pull request.\n\n/**\n * The class for the Item Request Builder.\n */\npublic class ItemRequestBuilder extends BaseItemRequestBuilder implements IItemRequestBuilder {\n\n    /**\n     * The request builder for the Item\n     *\n     * @param requestUrl The request url\n     * @param client The service client\n     * @param options The options for this request\n     */\n    public ItemRequestBuilder(final String requestUrl, final IOneDriveClient client, final List<Option> options) {\n        super(requestUrl, client, options);\n    }\n\n    /**\n     * Gets the item request builder for the specified item path.\n     * @param path The path to the item.\n     * @return The request builder for the specified item.\n     */\n    public IItemRequestBuilder getItemWithPath(final String path) {\n        return new ItemRequestBuilder(getRequestUrl() + \":/\" + path + \":\", getClient(), null);\n    }\n }\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/extensions/ItemStreamRequest.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.extensions;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\n// This file is available for extending, afterwards please submit a pull request.\n\n/**\n * The class for the Item Stream Request.\n */\npublic class ItemStreamRequest extends BaseItemStreamRequest implements IItemStreamRequest {\n\n    /**\n     * The request for the ItemStream\n     *\n     * @param requestUrl The request url\n     * @param client The service client\n     * @param options The options for this request\n     */\n    public ItemStreamRequest(final String requestUrl, final IOneDriveClient client, final List<Option> options) {\n        super(requestUrl, client, options);\n    }\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/extensions/ItemStreamRequestBuilder.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.extensions;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\n// This file is available for extending, afterwards please submit a pull request.\n\n/**\n * The class for the Item Stream Request Builder.\n */\npublic class ItemStreamRequestBuilder extends BaseItemStreamRequestBuilder implements IItemStreamRequestBuilder {\n\n    /**\n     * The request builder for the ItemStream\n     *\n     * @param requestUrl The request url\n     * @param client The service client\n     * @param options The options for this request\n     */\n    public ItemStreamRequestBuilder(final String requestUrl, final IOneDriveClient client, final List<Option> options) {\n        super(requestUrl, client, options);\n    }\n }\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/extensions/Location.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.extensions;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\n// This file is available for extending, afterwards please submit a pull request.\n\n/**\n * The class for the Location.\n */\npublic class Location extends BaseLocation {\n\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/extensions/OneDriveClient.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.extensions;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\nimport com.onedrive.sdk.authentication.*;\nimport com.onedrive.sdk.logger.*;\nimport android.app.Activity;\n\n// This file is available for extending, afterwards please submit a pull request.\n\n/**\n * The class for the One Drive Client.\n */\npublic class OneDriveClient extends BaseOneDriveClient implements IOneDriveClient {\n\n    /**\n     * Restricted constructor\n     */\n    protected OneDriveClient() {\n    }\n\n    /**\n     * Gets a request builder for the default drive\n     * @return The request builder\n     */\n    @Override\n    public IDriveRequestBuilder getDrive() {\n        return new DriveRequestBuilder(getServiceRoot() + \"/drive\", this, null);\n    }\n\n    /**\n     * The builder for this OneDriveClient\n     */\n    public static class Builder  {\n\n        /**\n         * The client under construction\n         */\n        private final OneDriveClient mClient = new OneDriveClient();\n\n        /**\n         * Sets the serializer\n         * @param serializer The serializer\n         * @return the instance of this builder\n         */\n        public Builder serializer(final ISerializer serializer) {\n            mClient.setSerializer(serializer);\n            return this;\n        }\n\n        /**\n         * Sets the httpProvider\n         * @param httpProvider The httpProvider\n         * @return the instance of this builder\n         */\n        public Builder httpProvider(final IHttpProvider httpProvider) {\n            mClient.setHttpProvider(httpProvider);\n            return this;\n        }\n\n        /**\n         * Sets the authenticator\n         * @param authenticator The authenticator\n         * @return the instance of this builder\n         */\n        public Builder authenticator(final IAuthenticator authenticator) {\n            mClient.setAuthenticator(authenticator);\n            return this;\n        }\n\n        /**\n         * Sets the executors\n         * @param executors The executors\n         * @return the instance of this builder\n         */\n        public Builder executors(final IExecutors executors) {\n            mClient.setExecutors(executors);\n            return this;\n        }\n\n        /**\n         * Sets the logger\n         * @param logger The logger\n         * @return the instance of this builder\n         */\n        private Builder logger(final ILogger logger) {\n            mClient.setLogger(logger);\n            return this;\n        }\n\n        /**\n         * Set this builder based on the client configuration\n         * @param clientConfig The client configuration\n         * @return the instance of this builder\n         */\n        public Builder fromConfig(final IClientConfig clientConfig) {\n            return this.authenticator(clientConfig.getAuthenticator())\n                       .executors(clientConfig.getExecutors())\n                       .httpProvider(clientConfig.getHttpProvider())\n                       .logger(clientConfig.getLogger())\n                       .serializer(clientConfig.getSerializer());\n        }\n\n        /**\n         * Login a user and then returns the OneDriveClient asynchronously\n         * @param activity The activity the UI should be from\n         * @param callback The callback when the client has been built\n         */\n        public void loginAndBuildClient(final Activity activity, final ICallback<IOneDriveClient> callback) {\n            mClient.validate();\n\n            mClient.getExecutors().performOnBackground(new Runnable() {\n                @Override\n                public void run() {\n                    final IExecutors executors = mClient.getExecutors();\n                    try {\n                        executors.performOnForeground(loginAndBuildClient(activity), callback);\n                    } catch (final ClientException e) {\n                        executors.performOnForeground(e, callback);\n                    }\n                }\n            });\n        }\n\n        /**\n         * Login a user and then returns the OneDriveClient\n         * @param activity The activity the UI should be from\n         * @throws ClientException if there was an exception creating the client\n         */\n        private IOneDriveClient loginAndBuildClient(final Activity activity) throws ClientException {\n            mClient.validate();\n\n            mClient.getAuthenticator()\n                .init(mClient.getExecutors(), mClient.getHttpProvider(), activity, mClient.getLogger());\n\n            IAccountInfo silentAccountInfo = null;\n            try {\n                silentAccountInfo = mClient.getAuthenticator().loginSilent();\n            } catch (final Exception ignored) {\n            }\n\n            if (silentAccountInfo == null\n                && mClient.getAuthenticator().login(null) == null) {\n                throw new ClientAuthenticatorException(\"Unable to authenticate silently or interactively\",\n                                                       OneDriveErrorCodes.AuthenticationFailure);\n            }\n\n            return mClient;\n        }\n    }\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/extensions/OpenWithApp.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.extensions;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\n// This file is available for extending, afterwards please submit a pull request.\n\n/**\n * The class for the Open With App.\n */\npublic class OpenWithApp extends BaseOpenWithApp {\n\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/extensions/OpenWithSet.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.extensions;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\n// This file is available for extending, afterwards please submit a pull request.\n\n/**\n * The class for the Open With Set.\n */\npublic class OpenWithSet extends BaseOpenWithSet {\n\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/extensions/Permission.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.extensions;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\n// This file is available for extending, afterwards please submit a pull request.\n\n/**\n * The class for the Permission.\n */\npublic class Permission extends BasePermission {\n\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/extensions/PermissionCollectionPage.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.extensions;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\n// This file is available for extending, afterwards please submit a pull request.\n\n/**\n * The class for the Permission Collection Page.\n */\npublic class PermissionCollectionPage extends BasePermissionCollectionPage implements IPermissionCollectionPage {\n\n    /**\n     * A collection page for Item.\n     *\n     * @param response The serialized BasePermissionCollectionResponse from the OneDrive service\n     * @param builder The request builder for the next collection page\n     */\n    public PermissionCollectionPage(final BasePermissionCollectionResponse response, final IPermissionCollectionRequestBuilder builder) {\n        super(response, builder);\n    }\n\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/extensions/PermissionCollectionRequest.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.extensions;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\n// This file is available for extending, afterwards please submit a pull request.\n\n/**\n * The class for the Permission Collection Request.\n */\npublic class PermissionCollectionRequest extends BasePermissionCollectionRequest implements IPermissionCollectionRequest {\n\n    /**\n     * The request for this collection of Item\n     *\n     * @param requestUrl The request url\n     * @param client The service client\n     * @param options The options for this request\n     */\n    public PermissionCollectionRequest(final String requestUrl, final IOneDriveClient client, final List<Option> options) {\n        super(requestUrl, client, options);\n    }\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/extensions/PermissionCollectionRequestBuilder.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.extensions;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\n// This file is available for extending, afterwards please submit a pull request.\n\n/**\n * The class for the Permission Collection Request Builder.\n */\npublic class PermissionCollectionRequestBuilder extends BasePermissionCollectionRequestBuilder implements IPermissionCollectionRequestBuilder {\n\n    /**\n     * The request builder for this collection of Item\n     *\n     * @param requestUrl The request url\n     * @param client The service client\n     * @param options The options for this request\n     */\n    public PermissionCollectionRequestBuilder(final String requestUrl, final IOneDriveClient client, final List<Option> options) {\n        super(requestUrl, client, options);\n    }\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/extensions/PermissionRequest.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.extensions;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\n// This file is available for extending, afterwards please submit a pull request.\n\n/**\n * The class for the Permission Request.\n */\npublic class PermissionRequest extends BasePermissionRequest implements IPermissionRequest {\n\n    /**\n     * The request for the Permission\n     *\n     * @param requestUrl The request url\n     * @param client The service client\n     * @param options The options for this request\n     */\n    public PermissionRequest(final String requestUrl, final IOneDriveClient client, final List<Option> options) {\n        super(requestUrl, client, options);\n    }\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/extensions/PermissionRequestBuilder.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.extensions;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\n// This file is available for extending, afterwards please submit a pull request.\n\n/**\n * The class for the Permission Request Builder.\n */\npublic class PermissionRequestBuilder extends BasePermissionRequestBuilder implements IPermissionRequestBuilder {\n\n    /**\n     * The request builder for the Permission\n     *\n     * @param requestUrl The request url\n     * @param client The service client\n     * @param options The options for this request\n     */\n    public PermissionRequestBuilder(final String requestUrl, final IOneDriveClient client, final List<Option> options) {\n        super(requestUrl, client, options);\n    }\n }\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/extensions/Photo.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.extensions;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\n// This file is available for extending, afterwards please submit a pull request.\n\n/**\n * The class for the Photo.\n */\npublic class Photo extends BasePhoto {\n\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/extensions/Quota.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.extensions;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\n// This file is available for extending, afterwards please submit a pull request.\n\n/**\n * The class for the Quota.\n */\npublic class Quota extends BaseQuota {\n\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/extensions/RecentCollectionPage.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.extensions;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\n// This file is available for extending, afterwards please submit a pull request.\n\n/**\n * The class for the Recent Collection Page.\n */\npublic class RecentCollectionPage extends BaseRecentCollectionPage implements IRecentCollectionPage {\n\n    /**\n     * A collection page for Drive.\n     *\n     * @param response The serialized BaseRecentCollectionResponse from the OneDrive service\n     * @param builder The request builder for the next collection page\n     */\n    public RecentCollectionPage(final BaseRecentCollectionResponse response, final IRecentRequestBuilder builder) {\n        super(response, builder);\n    }\n\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/extensions/RecentRequest.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.extensions;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\n// This file is available for extending, afterwards please submit a pull request.\n\n/**\n * The class for the Recent Request.\n */\npublic class RecentRequest extends BaseRecentRequest implements IRecentRequest {\n\n    /**\n     * The request for this Recent\n     *\n     * @param requestUrl The request url\n     * @param client The service client\n     * @param options The options for this request\n     */\n    public RecentRequest(final String requestUrl, final IOneDriveClient client, final List<Option> options) {\n        super(requestUrl, client, options);\n    }\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/extensions/RecentRequestBuilder.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.extensions;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\n// This file is available for extending, afterwards please submit a pull request.\n\n/**\n * The class for the Recent Request Builder.\n */\npublic class RecentRequestBuilder extends BaseRecentRequestBuilder implements IRecentRequestBuilder {\n\n    /**\n     * The request builder for this Recent\n     *\n     * @param requestUrl The request url\n     * @param client The service client\n     * @param options The options for this request\n     */\n    public RecentRequestBuilder(final String requestUrl, final IOneDriveClient client, final List<Option> options) {\n        super(requestUrl, client, options);\n    }\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/extensions/SearchCollectionPage.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.extensions;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\n// This file is available for extending, afterwards please submit a pull request.\n\n/**\n * The class for the Search Collection Page.\n */\npublic class SearchCollectionPage extends BaseSearchCollectionPage implements ISearchCollectionPage {\n\n    /**\n     * A collection page for Item.\n     *\n     * @param response The serialized BaseSearchCollectionResponse from the OneDrive service\n     * @param builder The request builder for the next collection page\n     */\n    public SearchCollectionPage(final BaseSearchCollectionResponse response, final ISearchRequestBuilder builder) {\n        super(response, builder);\n    }\n\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/extensions/SearchRequest.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.extensions;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\n// This file is available for extending, afterwards please submit a pull request.\n\n/**\n * The class for the Search Request.\n */\npublic class SearchRequest extends BaseSearchRequest implements ISearchRequest {\n\n    /**\n     * The request for this Search\n     *\n     * @param requestUrl The request url\n     * @param client The service client\n     * @param options The options for this request\n     */\n    public SearchRequest(final String requestUrl, final IOneDriveClient client, final List<Option> options, final String q) {\n        super(requestUrl, client, options, q);\n    }\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/extensions/SearchRequestBuilder.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.extensions;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\n// This file is available for extending, afterwards please submit a pull request.\n\n/**\n * The class for the Search Request Builder.\n */\npublic class SearchRequestBuilder extends BaseSearchRequestBuilder implements ISearchRequestBuilder {\n\n    /**\n     * The request builder for this Search\n     *\n     * @param requestUrl The request url\n     * @param client The service client\n     * @param options The options for this request\n     */\n    public SearchRequestBuilder(final String requestUrl, final IOneDriveClient client, final List<Option> options, final String q) {\n        super(requestUrl, client, options, q);\n    }\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/extensions/SearchResult.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.extensions;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\n// This file is available for extending, afterwards please submit a pull request.\n\n/**\n * The class for the Search Result.\n */\npublic class SearchResult extends BaseSearchResult {\n\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/extensions/Share.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.extensions;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\n// This file is available for extending, afterwards please submit a pull request.\n\n/**\n * The class for the Share.\n */\npublic class Share extends BaseShare {\n\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/extensions/ShareCollectionPage.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.extensions;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\n// This file is available for extending, afterwards please submit a pull request.\n\n/**\n * The class for the Share Collection Page.\n */\npublic class ShareCollectionPage extends BaseShareCollectionPage implements IShareCollectionPage {\n\n    /**\n     * A collection page for Share.\n     *\n     * @param response The serialized BaseShareCollectionResponse from the OneDrive service\n     * @param builder The request builder for the next collection page\n     */\n    public ShareCollectionPage(final BaseShareCollectionResponse response, final IShareCollectionRequestBuilder builder) {\n        super(response, builder);\n    }\n\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/extensions/ShareCollectionRequest.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.extensions;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\n// This file is available for extending, afterwards please submit a pull request.\n\n/**\n * The class for the Share Collection Request.\n */\npublic class ShareCollectionRequest extends BaseShareCollectionRequest implements IShareCollectionRequest {\n\n    /**\n     * The request for this collection of Share\n     *\n     * @param requestUrl The request url\n     * @param client The service client\n     * @param options The options for this request\n     */\n    public ShareCollectionRequest(final String requestUrl, final IOneDriveClient client, final List<Option> options) {\n        super(requestUrl, client, options);\n    }\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/extensions/ShareCollectionRequestBuilder.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.extensions;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\n// This file is available for extending, afterwards please submit a pull request.\n\n/**\n * The class for the Share Collection Request Builder.\n */\npublic class ShareCollectionRequestBuilder extends BaseShareCollectionRequestBuilder implements IShareCollectionRequestBuilder {\n\n    /**\n     * The request builder for this collection of Share\n     *\n     * @param requestUrl The request url\n     * @param client The service client\n     * @param options The options for this request\n     */\n    public ShareCollectionRequestBuilder(final String requestUrl, final IOneDriveClient client, final List<Option> options) {\n        super(requestUrl, client, options);\n    }\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/extensions/ShareRequest.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.extensions;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\n// This file is available for extending, afterwards please submit a pull request.\n\n/**\n * The class for the Share Request.\n */\npublic class ShareRequest extends BaseShareRequest implements IShareRequest {\n\n    /**\n     * The request for the Share\n     *\n     * @param requestUrl The request url\n     * @param client The service client\n     * @param options The options for this request\n     */\n    public ShareRequest(final String requestUrl, final IOneDriveClient client, final List<Option> options) {\n        super(requestUrl, client, options);\n    }\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/extensions/ShareRequestBuilder.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.extensions;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\n// This file is available for extending, afterwards please submit a pull request.\n\n/**\n * The class for the Share Request Builder.\n */\npublic class ShareRequestBuilder extends BaseShareRequestBuilder implements IShareRequestBuilder {\n\n    /**\n     * The request builder for the Share\n     *\n     * @param requestUrl The request url\n     * @param client The service client\n     * @param options The options for this request\n     */\n    public ShareRequestBuilder(final String requestUrl, final IOneDriveClient client, final List<Option> options) {\n        super(requestUrl, client, options);\n    }\n }\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/extensions/Shared.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.extensions;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\n// This file is available for extending, afterwards please submit a pull request.\n\n/**\n * The class for the Shared.\n */\npublic class Shared extends BaseShared {\n\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/extensions/SharingInvitation.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.extensions;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\n// This file is available for extending, afterwards please submit a pull request.\n\n/**\n * The class for the Sharing Invitation.\n */\npublic class SharingInvitation extends BaseSharingInvitation {\n\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/extensions/SharingLink.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.extensions;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\n// This file is available for extending, afterwards please submit a pull request.\n\n/**\n * The class for the Sharing Link.\n */\npublic class SharingLink extends BaseSharingLink {\n\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/extensions/SpecialFolder.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.extensions;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\n// This file is available for extending, afterwards please submit a pull request.\n\n/**\n * The class for the Special Folder.\n */\npublic class SpecialFolder extends BaseSpecialFolder {\n\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/extensions/StringCollectionPage.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.extensions;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\n// This file is available for extending, afterwards please submit a pull request.\n\n/**\n * The class for the String Collection Page.\n */\npublic class StringCollectionPage extends BaseStringCollectionPage implements IStringCollectionPage {\n\n    /**\n     * A collection page for Shared.\n     *\n     * @param response The serialized BaseStringCollectionResponse from the OneDrive service\n     * @param builder The request builder for the next collection page\n     */\n    public StringCollectionPage(final BaseStringCollectionResponse response, final IStringCollectionRequestBuilder builder) {\n        super(response, builder);\n    }\n\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/extensions/StringCollectionRequest.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.extensions;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\n// This file is available for extending, afterwards please submit a pull request.\n\n/**\n * The class for the String Collection Request.\n */\npublic class StringCollectionRequest extends BaseStringCollectionRequest implements IStringCollectionRequest {\n\n    /**\n     * The request for this collection of Shared\n     *\n     * @param requestUrl The request url\n     * @param client The service client\n     * @param options The options for this request\n     */\n    public StringCollectionRequest(final String requestUrl, final IOneDriveClient client, final List<Option> options) {\n        super(requestUrl, client, options);\n    }\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/extensions/StringCollectionRequestBuilder.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.extensions;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\n// This file is available for extending, afterwards please submit a pull request.\n\n/**\n * The class for the String Collection Request Builder.\n */\npublic class StringCollectionRequestBuilder extends BaseStringCollectionRequestBuilder implements IStringCollectionRequestBuilder {\n\n    /**\n     * The request builder for this collection of Shared\n     *\n     * @param requestUrl The request url\n     * @param client The service client\n     * @param options The options for this request\n     */\n    public StringCollectionRequestBuilder(final String requestUrl, final IOneDriveClient client, final List<Option> options) {\n        super(requestUrl, client, options);\n    }\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/extensions/Thumbnail.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.extensions;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\n// This file is available for extending, afterwards please submit a pull request.\n\n/**\n * The class for the Thumbnail.\n */\npublic class Thumbnail extends BaseThumbnail {\n\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/extensions/ThumbnailRequest.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.extensions;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\n// This file is available for extending, afterwards please submit a pull request.\n\n/**\n * The class for the Thumbnail Request.\n */\npublic class ThumbnailRequest extends BaseThumbnailRequest implements IThumbnailRequest {\n\n    /**\n     * The request for the Thumbnail\n     *\n     * @param requestUrl The request url\n     * @param client The service client\n     * @param options The options for this request\n     */\n    public ThumbnailRequest(final String requestUrl, final IOneDriveClient client, final List<Option> options) {\n        super(requestUrl, client, options);\n    }\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/extensions/ThumbnailRequestBuilder.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.extensions;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\n// This file is available for extending, afterwards please submit a pull request.\n\n/**\n * The class for the Thumbnail Request Builder.\n */\npublic class ThumbnailRequestBuilder extends BaseThumbnailRequestBuilder implements IThumbnailRequestBuilder {\n\n    /**\n     * The request builder for the Thumbnail\n     *\n     * @param requestUrl The request url\n     * @param client The service client\n     * @param options The options for this request\n     */\n    public ThumbnailRequestBuilder(final String requestUrl, final IOneDriveClient client, final List<Option> options) {\n        super(requestUrl, client, options);\n    }\n }\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/extensions/ThumbnailSet.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.extensions;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\n// This file is available for extending, afterwards please submit a pull request.\n\n/**\n * The class for the Thumbnail Set.\n */\npublic class ThumbnailSet extends BaseThumbnailSet {\n\n    /**\n     * Gets a custom thumbnail\n     * @param name The name of the custom thumbnail to retrieve\n     * @return The thumbnail, null if it doesn't exist\n     */\n    public Thumbnail getCustomThumbnail(final String name) {\n        if (getRawObject().has(name)) {\n            return getSerializer().deserializeObject(getRawObject().get(name).toString(), Thumbnail.class);\n        }\n        return null;\n    }\n\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/extensions/ThumbnailSetCollectionPage.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.extensions;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\n// This file is available for extending, afterwards please submit a pull request.\n\n/**\n * The class for the Thumbnail Set Collection Page.\n */\npublic class ThumbnailSetCollectionPage extends BaseThumbnailSetCollectionPage implements IThumbnailSetCollectionPage {\n\n    /**\n     * A collection page for Item.\n     *\n     * @param response The serialized BaseThumbnailSetCollectionResponse from the OneDrive service\n     * @param builder The request builder for the next collection page\n     */\n    public ThumbnailSetCollectionPage(final BaseThumbnailSetCollectionResponse response, final IThumbnailSetCollectionRequestBuilder builder) {\n        super(response, builder);\n    }\n\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/extensions/ThumbnailSetCollectionRequest.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.extensions;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\n// This file is available for extending, afterwards please submit a pull request.\n\n/**\n * The class for the Thumbnail Set Collection Request.\n */\npublic class ThumbnailSetCollectionRequest extends BaseThumbnailSetCollectionRequest implements IThumbnailSetCollectionRequest {\n\n    /**\n     * The request for this collection of Item\n     *\n     * @param requestUrl The request url\n     * @param client The service client\n     * @param options The options for this request\n     */\n    public ThumbnailSetCollectionRequest(final String requestUrl, final IOneDriveClient client, final List<Option> options) {\n        super(requestUrl, client, options);\n    }\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/extensions/ThumbnailSetCollectionRequestBuilder.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.extensions;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\n// This file is available for extending, afterwards please submit a pull request.\n\n/**\n * The class for the Thumbnail Set Collection Request Builder.\n */\npublic class ThumbnailSetCollectionRequestBuilder extends BaseThumbnailSetCollectionRequestBuilder implements IThumbnailSetCollectionRequestBuilder {\n\n    /**\n     * The request builder for this collection of Item\n     *\n     * @param requestUrl The request url\n     * @param client The service client\n     * @param options The options for this request\n     */\n    public ThumbnailSetCollectionRequestBuilder(final String requestUrl, final IOneDriveClient client, final List<Option> options) {\n        super(requestUrl, client, options);\n    }\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/extensions/ThumbnailSetRequest.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.extensions;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\n// This file is available for extending, afterwards please submit a pull request.\n\n/**\n * The class for the Thumbnail Set Request.\n */\npublic class ThumbnailSetRequest extends BaseThumbnailSetRequest implements IThumbnailSetRequest {\n\n    /**\n     * The request for the ThumbnailSet\n     *\n     * @param requestUrl The request url\n     * @param client The service client\n     * @param options The options for this request\n     */\n    public ThumbnailSetRequest(final String requestUrl, final IOneDriveClient client, final List<Option> options) {\n        super(requestUrl, client, options);\n    }\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/extensions/ThumbnailSetRequestBuilder.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.extensions;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\n// This file is available for extending, afterwards please submit a pull request.\n\n/**\n * The class for the Thumbnail Set Request Builder.\n */\npublic class ThumbnailSetRequestBuilder extends BaseThumbnailSetRequestBuilder implements IThumbnailSetRequestBuilder {\n\n    /**\n     * The request builder for the ThumbnailSet\n     *\n     * @param requestUrl The request url\n     * @param client The service client\n     * @param options The options for this request\n     */\n    public ThumbnailSetRequestBuilder(final String requestUrl, final IOneDriveClient client, final List<Option> options) {\n        super(requestUrl, client, options);\n    }\n\n    @Override\n    public IThumbnailRequestBuilder getThumbnailSize(final String size) {\n        return new ThumbnailRequestBuilder(getRequestUrlWithAdditionalSegment(size), getClient(), /* options */ null);\n    }\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/extensions/ThumbnailStreamRequest.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.extensions;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\n// This file is available for extending, afterwards please submit a pull request.\n\n/**\n * The class for the Thumbnail Stream Request.\n */\npublic class ThumbnailStreamRequest extends BaseThumbnailStreamRequest implements IThumbnailStreamRequest {\n\n    /**\n     * The request for the ThumbnailStream\n     *\n     * @param requestUrl The request url\n     * @param client The service client\n     * @param options The options for this request\n     */\n    public ThumbnailStreamRequest(final String requestUrl, final IOneDriveClient client, final List<Option> options) {\n        super(requestUrl, client, options);\n    }\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/extensions/ThumbnailStreamRequestBuilder.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.extensions;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\n// This file is available for extending, afterwards please submit a pull request.\n\n/**\n * The class for the Thumbnail Stream Request Builder.\n */\npublic class ThumbnailStreamRequestBuilder extends BaseThumbnailStreamRequestBuilder implements IThumbnailStreamRequestBuilder {\n\n    /**\n     * The request builder for the ThumbnailStream\n     *\n     * @param requestUrl The request url\n     * @param client The service client\n     * @param options The options for this request\n     */\n    public ThumbnailStreamRequestBuilder(final String requestUrl, final IOneDriveClient client, final List<Option> options) {\n        super(requestUrl, client, options);\n    }\n }\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/extensions/UploadSession.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.extensions;\n\nimport com.onedrive.sdk.concurrency.ChunkedUploadProvider;\nimport com.onedrive.sdk.generated.*;\n\nimport java.io.InputStream;\n\n// This file is available for extending, afterwards please submit a pull request.\n\n/**\n * The class for the Upload Session.\n */\npublic class UploadSession<UploadType> extends BaseUploadSession {\n\n    /**\n     * Create the upload session service provider.\n     * @param client The OneDrive client.\n     * @param input The input stream.\n     * @param size The size of the input.\n     * @param uploadTypeClass The expected uploaded item type.\n     * @return The uploaded item.\n     */\n    public ChunkedUploadProvider createUploadProvider(IOneDriveClient client, InputStream input, int size, Class<UploadType> uploadTypeClass) {\n        return new ChunkedUploadProvider<UploadType>(this, client, input, size, uploadTypeClass);\n    }\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/extensions/Video.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.extensions;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\n// This file is available for extending, afterwards please submit a pull request.\n\n/**\n * The class for the Video.\n */\npublic class Video extends BaseVideo {\n\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/generated/BaseAsyncOperationStatus.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.generated;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\nimport com.google.gson.JsonObject;\nimport com.google.gson.annotations.*;\n\n// **NOTE** This file was generated by a tool and any changes will be overwritten.\n\n/**\n * The class for the Base Async Operation Status.\n */\npublic class BaseAsyncOperationStatus implements IJsonBackedObject {\n\n    /**\n     * The Operation.\n     */\n    @SerializedName(\"operation\")\n    public String operation;\n\n    /**\n     * The Percentage Complete.\n     */\n    @SerializedName(\"percentageComplete\")\n    public Double percentageComplete;\n\n    /**\n     * The Status.\n     */\n    @SerializedName(\"status\")\n    public String status;\n\n\n    /**\n     * The raw representation of this class\n     */\n    private transient JsonObject mRawObject;\n\n    /**\n     * The serializer\n     */\n    private transient ISerializer mSerializer;\n\n    /**\n     * Gets the raw representation of this class\n     * @return the raw representation of this class\n     */\n    public JsonObject getRawObject() {\n        return mRawObject;\n    }\n\n    /**\n     * Gets serializer\n     * @return the serializer\n     */\n    protected ISerializer getSerializer() {\n        return mSerializer;\n    }\n\n    /**\n     * Sets the raw json object\n     *\n     * @param serializer The serializer\n     * @param json The json object to set this object to\n     */\n    public void setRawObject(final ISerializer serializer, final JsonObject json) {\n        mSerializer = serializer;\n        mRawObject = json;\n\n    }\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/generated/BaseAudio.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.generated;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\nimport com.google.gson.JsonObject;\nimport com.google.gson.annotations.*;\n\n// **NOTE** This file was generated by a tool and any changes will be overwritten.\n\n/**\n * The class for the Base Audio.\n */\npublic class BaseAudio implements IJsonBackedObject {\n\n    /**\n     * The Album.\n     */\n    @SerializedName(\"album\")\n    public String album;\n\n    /**\n     * The Album Artist.\n     */\n    @SerializedName(\"albumArtist\")\n    public String albumArtist;\n\n    /**\n     * The Artist.\n     */\n    @SerializedName(\"artist\")\n    public String artist;\n\n    /**\n     * The Bitrate.\n     */\n    @SerializedName(\"bitrate\")\n    public Long bitrate;\n\n    /**\n     * The Composers.\n     */\n    @SerializedName(\"composers\")\n    public String composers;\n\n    /**\n     * The Copyright.\n     */\n    @SerializedName(\"copyright\")\n    public String copyright;\n\n    /**\n     * The Disc.\n     */\n    @SerializedName(\"disc\")\n    public Short disc;\n\n    /**\n     * The Disc Count.\n     */\n    @SerializedName(\"discCount\")\n    public Short discCount;\n\n    /**\n     * The Duration.\n     */\n    @SerializedName(\"duration\")\n    public Long duration;\n\n    /**\n     * The Genre.\n     */\n    @SerializedName(\"genre\")\n    public String genre;\n\n    /**\n     * The Has Drm.\n     */\n    @SerializedName(\"hasDrm\")\n    public Boolean hasDrm;\n\n    /**\n     * The Is Variable Bitrate.\n     */\n    @SerializedName(\"isVariableBitrate\")\n    public Boolean isVariableBitrate;\n\n    /**\n     * The Title.\n     */\n    @SerializedName(\"title\")\n    public String title;\n\n    /**\n     * The Track.\n     */\n    @SerializedName(\"track\")\n    public Integer track;\n\n    /**\n     * The Track Count.\n     */\n    @SerializedName(\"trackCount\")\n    public Integer trackCount;\n\n    /**\n     * The Year.\n     */\n    @SerializedName(\"year\")\n    public Integer year;\n\n\n    /**\n     * The raw representation of this class\n     */\n    private transient JsonObject mRawObject;\n\n    /**\n     * The serializer\n     */\n    private transient ISerializer mSerializer;\n\n    /**\n     * Gets the raw representation of this class\n     * @return the raw representation of this class\n     */\n    public JsonObject getRawObject() {\n        return mRawObject;\n    }\n\n    /**\n     * Gets serializer\n     * @return the serializer\n     */\n    protected ISerializer getSerializer() {\n        return mSerializer;\n    }\n\n    /**\n     * Sets the raw json object\n     *\n     * @param serializer The serializer\n     * @param json The json object to set this object to\n     */\n    public void setRawObject(final ISerializer serializer, final JsonObject json) {\n        mSerializer = serializer;\n        mRawObject = json;\n\n    }\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/generated/BaseChunkedUploadSessionDescriptor.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.generated;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\nimport com.google.gson.JsonObject;\nimport com.google.gson.annotations.*;\n\n// **NOTE** This file was generated by a tool and any changes will be overwritten.\n\n/**\n * The class for the Base Chunked Upload Session Descriptor.\n */\npublic class BaseChunkedUploadSessionDescriptor implements IJsonBackedObject {\n\n    /**\n     * The Name.\n     */\n    @SerializedName(\"name\")\n    public String name;\n\n\n    /**\n     * The raw representation of this class\n     */\n    private transient JsonObject mRawObject;\n\n    /**\n     * The serializer\n     */\n    private transient ISerializer mSerializer;\n\n    /**\n     * Gets the raw representation of this class\n     * @return the raw representation of this class\n     */\n    public JsonObject getRawObject() {\n        return mRawObject;\n    }\n\n    /**\n     * Gets serializer\n     * @return the serializer\n     */\n    protected ISerializer getSerializer() {\n        return mSerializer;\n    }\n\n    /**\n     * Sets the raw json object\n     *\n     * @param serializer The serializer\n     * @param json The json object to set this object to\n     */\n    public void setRawObject(final ISerializer serializer, final JsonObject json) {\n        mSerializer = serializer;\n        mRawObject = json;\n\n    }\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/generated/BaseCopyBody.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.generated;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\nimport com.google.gson.JsonObject;\nimport com.google.gson.annotations.*;\n\n// **NOTE** This file was generated by a tool and any changes will be overwritten.\n\n/**\n * The class for the Base Copy Body.\n */\npublic class BaseCopyBody {\n\n    /**\n     * The name.\n     */\n    @SerializedName(\"name\")\n    public String name;\n\n    /**\n     * The parent Reference.\n     */\n    @SerializedName(\"parentReference\")\n    public ItemReference parentReference;\n\n\n    /**\n     * The raw representation of this class\n     */\n    private transient JsonObject mRawObject;\n\n    /**\n     * The serializer\n     */\n    private transient ISerializer mSerializer;\n\n    /**\n     * Gets the raw representation of this class\n     * @return the raw representation of this class\n     */\n    public JsonObject getRawObject() {\n        return mRawObject;\n    }\n\n    /**\n     * Gets serializer\n     * @return the serializer\n     */\n    protected ISerializer getSerializer() {\n        return mSerializer;\n    }\n\n    /**\n     * Sets the raw json object\n     *\n     * @param serializer The serializer\n     * @param json The json object to set this object to\n     */\n    public void setRawObject(final ISerializer serializer, final JsonObject json) {\n        mSerializer = serializer;\n        mRawObject = json;\n\n    }\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/generated/BaseCopyRequest.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.generated;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\n// **NOTE** This file was generated by a tool and any changes will be overwritten.\n\n/**\n * The class for the Base Copy Request.\n */\npublic class BaseCopyRequest extends BaseRequest implements IBaseCopyRequest {\n    protected final CopyBody mBody;\n\n    /**\n     * The request for this Copy\n     *\n     * @param requestUrl The request url\n     * @param client The service client\n     * @param options The options for this request\n     */\n    public BaseCopyRequest(final String requestUrl, final IOneDriveClient client, final List<Option> options, final String name, final ItemReference parentReference) {\n        super(requestUrl, client, options, AsyncMonitorLocation.class);\n        mBody = new CopyBody();\n        mBody.name = name;\n        mBody.parentReference = parentReference;\n        addHeader(\"Prefer\", \"respond-async\");\n    }\n\n    /**\n     * @deprecated  As of release 1.1.3, replaced by {@link #post(ICallback)}\n     */\n    @Deprecated public void create(final ICallback<AsyncMonitor<Item>> callback) {\n        this.post(callback);\n    }\n\n    /**\n     * @deprecated  As of release 1.1.3, replaced by {@link #post()}\n     */\n    @Deprecated public AsyncMonitor<Item> create() throws ClientException {\n        return this.post();\n    }\n\n    public void post(final ICallback<AsyncMonitor<Item>> callback) {\n        getClient().getExecutors().performOnBackground(new Runnable() {\n            @Override\n            public void run() {\n                try {\n                    getClient().getExecutors().performOnForeground(post(), callback);\n                } catch (final ClientException e) {\n                    getClient().getExecutors().performOnForeground(e, callback);\n                }\n            }\n        });\n    }\n\n    public AsyncMonitor<Item> post() throws ClientException {\n        final AsyncMonitorLocation monitorLocation = send(HttpMethod.POST, mBody);\n\n        return new AsyncMonitor<>(getClient(), monitorLocation, new ResultGetter<Item>() {\n            @Override\n            public Item getResultFrom(final String resourceUrl, final IOneDriveClient client) {\n                return new ItemRequest(resourceUrl, client, /* options */ null).get();\n            }\n        });\n    }\n\n    public ICopyRequest select(final String value) {\n        getQueryOptions().add(new QueryOption(\"select\", value));\n        return (CopyRequest)this;\n    }\n\n    public ICopyRequest top(final int value) {\n        getQueryOptions().add(new QueryOption(\"top\", value+\"\"));\n        return (CopyRequest)this;\n    }\n\n    public ICopyRequest expand(final String value) {\n        getQueryOptions().add(new QueryOption(\"expand\", value));\n        return (CopyRequest)this;\n    }\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/generated/BaseCopyRequestBuilder.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.generated;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\n// **NOTE** This file was generated by a tool and any changes will be overwritten.\n\n/**\n * The class for the Base Copy Request Builder.\n */\npublic class BaseCopyRequestBuilder extends BaseRequestBuilder {\n\n    public final String mName;\n    public final ItemReference mParentReference;\n\n    /**\n     * The request builder for this Copy\n     *\n     * @param requestUrl The request url\n     * @param client The service client\n     * @param options The options for this request\n     */\n    public BaseCopyRequestBuilder(final String requestUrl, final IOneDriveClient client, final List<Option> options, final String name, final ItemReference parentReference) {\n        super(requestUrl, client, options);\n        mName = name;\n        mParentReference = parentReference;\n    }\n\n    public ICopyRequest buildRequest() {\n        return buildRequest(getOptions());\n    }\n\n    public ICopyRequest buildRequest(final List<Option> options) {\n        return new CopyRequest(getRequestUrl(), getClient(), options, mName, mParentReference);\n    }\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/generated/BaseCreateLinkBody.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.generated;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\nimport com.google.gson.JsonObject;\nimport com.google.gson.annotations.*;\n\n// **NOTE** This file was generated by a tool and any changes will be overwritten.\n\n/**\n * The class for the Base Create Link Body.\n */\npublic class BaseCreateLinkBody {\n\n    /**\n     * The type.\n     */\n    @SerializedName(\"type\")\n    public String type;\n\n\n    /**\n     * The raw representation of this class\n     */\n    private transient JsonObject mRawObject;\n\n    /**\n     * The serializer\n     */\n    private transient ISerializer mSerializer;\n\n    /**\n     * Gets the raw representation of this class\n     * @return the raw representation of this class\n     */\n    public JsonObject getRawObject() {\n        return mRawObject;\n    }\n\n    /**\n     * Gets serializer\n     * @return the serializer\n     */\n    protected ISerializer getSerializer() {\n        return mSerializer;\n    }\n\n    /**\n     * Sets the raw json object\n     *\n     * @param serializer The serializer\n     * @param json The json object to set this object to\n     */\n    public void setRawObject(final ISerializer serializer, final JsonObject json) {\n        mSerializer = serializer;\n        mRawObject = json;\n\n    }\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/generated/BaseCreateLinkRequest.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.generated;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\n// **NOTE** This file was generated by a tool and any changes will be overwritten.\n\n/**\n * The class for the Base Create Link Request.\n */\npublic class BaseCreateLinkRequest extends BaseRequest implements IBaseCreateLinkRequest {\n    protected final CreateLinkBody mBody;\n\n    /**\n     * The request for this CreateLink\n     *\n     * @param requestUrl The request url\n     * @param client The service client\n     * @param options The options for this request\n     */\n    public BaseCreateLinkRequest(final String requestUrl, final IOneDriveClient client, final List<Option> options, final String type) {\n        super(requestUrl, client, options, Permission.class);\n        mBody = new CreateLinkBody();\n        mBody.type = type;\n    }\n\n    /**\n     * @deprecated  As of release 1.1.3, replaced by {@link #post(ICallback)}\n     */\n    @Deprecated public void create(final ICallback<Permission> callback) {\n        this.post(callback);\n    }\n\n    /**\n     * @deprecated  As of release 1.1.3, replaced by {@link #post()}\n     */\n    @Deprecated public Permission create() throws ClientException {\n        return this.post();\n    }\n\n    public void post(final ICallback<Permission> callback) {\n        send(HttpMethod.POST, callback, mBody);\n    }\n\n    public Permission post() throws ClientException {\n        return send(HttpMethod.POST, mBody);\n    }\n\n    public ICreateLinkRequest select(final String value) {\n        getQueryOptions().add(new QueryOption(\"select\", value));\n        return (CreateLinkRequest)this;\n    }\n\n    public ICreateLinkRequest top(final int value) {\n        getQueryOptions().add(new QueryOption(\"top\", value+\"\"));\n        return (CreateLinkRequest)this;\n    }\n\n    public ICreateLinkRequest expand(final String value) {\n        getQueryOptions().add(new QueryOption(\"expand\", value));\n        return (CreateLinkRequest)this;\n    }\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/generated/BaseCreateLinkRequestBuilder.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.generated;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\n// **NOTE** This file was generated by a tool and any changes will be overwritten.\n\n/**\n * The class for the Base Create Link Request Builder.\n */\npublic class BaseCreateLinkRequestBuilder extends BaseRequestBuilder {\n\n    public final String mType;\n\n    /**\n     * The request builder for this CreateLink\n     *\n     * @param requestUrl The request url\n     * @param client The service client\n     * @param options The options for this request\n     */\n    public BaseCreateLinkRequestBuilder(final String requestUrl, final IOneDriveClient client, final List<Option> options, final String type) {\n        super(requestUrl, client, options);\n        mType = type;\n    }\n\n    public ICreateLinkRequest buildRequest() {\n        return buildRequest(getOptions());\n    }\n\n    public ICreateLinkRequest buildRequest(final List<Option> options) {\n        return new CreateLinkRequest(getRequestUrl(), getClient(), options, mType);\n    }\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/generated/BaseCreateSessionBody.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.generated;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\nimport com.google.gson.JsonObject;\nimport com.google.gson.annotations.*;\n\n// **NOTE** This file was generated by a tool and any changes will be overwritten.\n\n/**\n * The class for the Base Create Session Body.\n */\npublic class BaseCreateSessionBody {\n\n    /**\n     * The item.\n     */\n    @SerializedName(\"item\")\n    public ChunkedUploadSessionDescriptor item;\n\n\n    /**\n     * The raw representation of this class\n     */\n    private transient JsonObject mRawObject;\n\n    /**\n     * The serializer\n     */\n    private transient ISerializer mSerializer;\n\n    /**\n     * Gets the raw representation of this class\n     * @return the raw representation of this class\n     */\n    public JsonObject getRawObject() {\n        return mRawObject;\n    }\n\n    /**\n     * Gets serializer\n     * @return the serializer\n     */\n    protected ISerializer getSerializer() {\n        return mSerializer;\n    }\n\n    /**\n     * Sets the raw json object\n     *\n     * @param serializer The serializer\n     * @param json The json object to set this object to\n     */\n    public void setRawObject(final ISerializer serializer, final JsonObject json) {\n        mSerializer = serializer;\n        mRawObject = json;\n\n    }\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/generated/BaseCreateSessionRequest.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.generated;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\n// **NOTE** This file was generated by a tool and any changes will be overwritten.\n\n/**\n * The class for the Base Create Session Request.\n */\npublic class BaseCreateSessionRequest extends BaseRequest implements IBaseCreateSessionRequest {\n    protected final CreateSessionBody mBody;\n\n    /**\n     * The request for this CreateSession\n     *\n     * @param requestUrl The request url\n     * @param client The service client\n     * @param options The options for this request\n     */\n    public BaseCreateSessionRequest(final String requestUrl, final IOneDriveClient client, final List<Option> options, final ChunkedUploadSessionDescriptor item) {\n        super(requestUrl, client, options, UploadSession.class);\n        mBody = new CreateSessionBody();\n        mBody.item = item;\n    }\n\n    /**\n     * @deprecated  As of release 1.1.3, replaced by {@link #post(ICallback)}\n     */\n    @Deprecated public void create(final ICallback<UploadSession> callback) {\n        this.post(callback);\n    }\n\n    /**\n     * @deprecated  As of release 1.1.3, replaced by {@link #post()}\n     */\n    @Deprecated public UploadSession create() throws ClientException {\n        return this.post();\n    }\n\n    public void post(final ICallback<UploadSession> callback) {\n        send(HttpMethod.POST, callback, mBody);\n    }\n\n    public UploadSession post() throws ClientException {\n        return send(HttpMethod.POST, mBody);\n    }\n\n    public ICreateSessionRequest select(final String value) {\n        getQueryOptions().add(new QueryOption(\"select\", value));\n        return (CreateSessionRequest)this;\n    }\n\n    public ICreateSessionRequest top(final int value) {\n        getQueryOptions().add(new QueryOption(\"top\", value+\"\"));\n        return (CreateSessionRequest)this;\n    }\n\n    public ICreateSessionRequest expand(final String value) {\n        getQueryOptions().add(new QueryOption(\"expand\", value));\n        return (CreateSessionRequest)this;\n    }\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/generated/BaseCreateSessionRequestBuilder.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.generated;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\n// **NOTE** This file was generated by a tool and any changes will be overwritten.\n\n/**\n * The class for the Base Create Session Request Builder.\n */\npublic class BaseCreateSessionRequestBuilder extends BaseRequestBuilder {\n\n    public final ChunkedUploadSessionDescriptor mItem;\n\n    /**\n     * The request builder for this CreateSession\n     *\n     * @param requestUrl The request url\n     * @param client The service client\n     * @param options The options for this request\n     */\n    public BaseCreateSessionRequestBuilder(final String requestUrl, final IOneDriveClient client, final List<Option> options, final ChunkedUploadSessionDescriptor item) {\n        super(requestUrl, client, options);\n        mItem = item;\n    }\n\n    public ICreateSessionRequest buildRequest() {\n        return buildRequest(getOptions());\n    }\n\n    public ICreateSessionRequest buildRequest(final List<Option> options) {\n        return new CreateSessionRequest(getRequestUrl(), getClient(), options, mItem);\n    }\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/generated/BaseDeleted.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.generated;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\nimport com.google.gson.JsonObject;\nimport com.google.gson.annotations.*;\n\n// **NOTE** This file was generated by a tool and any changes will be overwritten.\n\n/**\n * The class for the Base Deleted.\n */\npublic class BaseDeleted implements IJsonBackedObject {\n\n    /**\n     * The State.\n     */\n    @SerializedName(\"state\")\n    public String state;\n\n\n    /**\n     * The raw representation of this class\n     */\n    private transient JsonObject mRawObject;\n\n    /**\n     * The serializer\n     */\n    private transient ISerializer mSerializer;\n\n    /**\n     * Gets the raw representation of this class\n     * @return the raw representation of this class\n     */\n    public JsonObject getRawObject() {\n        return mRawObject;\n    }\n\n    /**\n     * Gets serializer\n     * @return the serializer\n     */\n    protected ISerializer getSerializer() {\n        return mSerializer;\n    }\n\n    /**\n     * Sets the raw json object\n     *\n     * @param serializer The serializer\n     * @param json The json object to set this object to\n     */\n    public void setRawObject(final ISerializer serializer, final JsonObject json) {\n        mSerializer = serializer;\n        mRawObject = json;\n\n    }\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/generated/BaseDeltaCollectionPage.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.generated;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\nimport com.google.gson.JsonObject;\nimport com.google.gson.annotations.*;\n\n// **NOTE** This file was generated by a tool and any changes will be overwritten.\n\n/**\n * The class for the Base Delta Collection Page.\n */\npublic class BaseDeltaCollectionPage extends BaseCollectionPage<Item, IDeltaRequestBuilder> implements IBaseDeltaCollectionPage {\n\n    /**\n     * A collection page for Delta.\n     *\n     * @param response The serialized BaseDeltaCollectionResponse from the OneDrive service\n     * @param builder The request builder for the next collection page\n     */\n    public BaseDeltaCollectionPage(final BaseDeltaCollectionResponse response, final IDeltaRequestBuilder builder) {\n       super(response.value, builder);\n    }\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/generated/BaseDeltaCollectionResponse.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.generated;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\nimport com.google.gson.JsonArray;\nimport com.google.gson.JsonObject;\nimport com.google.gson.annotations.*;\n\n// **NOTE** This file was generated by a tool and any changes will be overwritten.\n\n/**\n * The class for the Base Delta Collection Response.\n */\npublic class BaseDeltaCollectionResponse implements IJsonBackedObject {\n\n    @SerializedName(\"value\")\n    public List<Item> value;\n\n    @SerializedName(\"@odata.nextLink\")\n    public String nextLink;\n\n    /**\n     * The raw representation of this class\n     */\n    private transient JsonObject mRawObject;\n\n    /**\n     * The serializer\n     */\n    private transient ISerializer mSerializer;\n\n    /**\n     * Gets the raw representation of this class\n     * @return the raw representation of this class\n     */\n    public JsonObject getRawObject() {\n        return mRawObject;\n    }\n\n    /**\n     * Gets serializer\n     * @return the serializer\n     */\n    protected ISerializer getSerializer() {\n        return mSerializer;\n    }\n\n    /**\n     * Sets the raw json object\n     *\n     * @param serializer The serializer\n     * @param json The json object to set this object to\n     */\n    public void setRawObject(final ISerializer serializer, final JsonObject json) {\n        mSerializer = serializer;\n        mRawObject = json;\n\n\n        if (json.has(\"value\")) {\n            final JsonArray array = json.getAsJsonArray(\"value\");\n            for (int i = 0; i < array.size(); i++) {\n                value.get(i).setRawObject(mSerializer, (JsonObject) array.get(i));\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/generated/BaseDeltaRequest.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.generated;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\n// **NOTE** This file was generated by a tool and any changes will be overwritten.\n\n/**\n * The class for the Base Delta Request.\n */\npublic class BaseDeltaRequest extends BaseCollectionRequest<BaseDeltaCollectionResponse, IDeltaCollectionPage> implements IBaseDeltaRequest {\n\n    /**\n     * The request for this Delta\n     *\n     * @param requestUrl The request url\n     * @param client The service client\n     * @param options The options for this request\n     */\n    public BaseDeltaRequest(final String requestUrl, final IOneDriveClient client, final List<Option> options, final String token) {\n        super(requestUrl, client, options, BaseDeltaCollectionResponse.class, IDeltaCollectionPage.class);\n        if (token != null) {\n            addQueryOption(new QueryOption(\"token\", token));\n        }\n    }\n\n    public void get(final ICallback<IDeltaCollectionPage> callback) {\n        final IExecutors executors = getBaseRequest().getClient().getExecutors();\n        executors.performOnBackground(new Runnable() {\n           @Override\n           public void run() {\n                try {\n                    executors.performOnForeground(get(), callback);\n                } catch (final ClientException e) {\n                    executors.performOnForeground(e, callback);\n                }\n           }\n        });\n    }\n\n    public IDeltaCollectionPage get() throws ClientException {\n        final BaseDeltaCollectionResponse response = send();\n        return buildFromResponse(response);\n    }\n\n    public IDeltaRequest select(final String value) {\n        addQueryOption(new QueryOption(\"select\", value));\n        return (DeltaRequest)this;\n    }\n\n    public IDeltaRequest top(final int value) {\n        addQueryOption(new QueryOption(\"top\", value+\"\"));\n        return (DeltaRequest)this;\n    }\n\n    public IDeltaRequest expand(final String value) {\n        addQueryOption(new QueryOption(\"expand\", value));\n        return (DeltaRequest)this;\n    }\n\n    public IDeltaCollectionPage buildFromResponse(final BaseDeltaCollectionResponse response) {\n        final IDeltaRequestBuilder builder;\n        if (response.nextLink != null) {\n            builder = new DeltaRequestBuilder(response.nextLink, getBaseRequest().getClient(), /* options */ null, /* token */ null);\n        } else {\n            builder = null;\n        }\n        final IDeltaCollectionPage page = new DeltaCollectionPage(response, builder);\n        page.setRawObject(response.getSerializer(), response.getRawObject());\n        return page;\n    }\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/generated/BaseDeltaRequestBuilder.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.generated;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\n// **NOTE** This file was generated by a tool and any changes will be overwritten.\n\n/**\n * The class for the Base Delta Request Builder.\n */\npublic class BaseDeltaRequestBuilder extends BaseRequestBuilder {\n\n    public final String mToken;\n\n    /**\n     * The request builder for this Delta\n     *\n     * @param requestUrl The request url\n     * @param client The service client\n     * @param options The options for this request\n     */\n    public BaseDeltaRequestBuilder(final String requestUrl, final IOneDriveClient client, final List<Option> options, final String token) {\n        super(requestUrl, client, options);\n        mToken = token;\n    }\n\n    public IDeltaRequest buildRequest() {\n        return buildRequest(getOptions());\n    }\n\n    public IDeltaRequest buildRequest(final List<Option> options) {\n        return new DeltaRequest(getRequestUrl(), getClient(), options, mToken);\n    }\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/generated/BaseDeltaResponse.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.generated;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\nimport com.google.gson.JsonObject;\nimport com.google.gson.annotations.*;\n\n// **NOTE** This file was generated by a tool and any changes will be overwritten.\n\n/**\n * The class for the Base Delta Response.\n */\npublic class BaseDeltaResponse implements IJsonBackedObject {\n\n    /**\n     * The Value.\n     */\n    public transient ItemCollectionPage value;\n\n    /**\n     * The @delta.token.\n     */\n    @SerializedName(\"@delta.token\")\n    public String delta_token;\n\n    /**\n     * The @odata.delta Link.\n     */\n    @SerializedName(\"@odata.deltaLink\")\n    public String odata_deltaLink;\n\n\n    /**\n     * The raw representation of this class\n     */\n    private transient JsonObject mRawObject;\n\n    /**\n     * The serializer\n     */\n    private transient ISerializer mSerializer;\n\n    /**\n     * Gets the raw representation of this class\n     * @return the raw representation of this class\n     */\n    public JsonObject getRawObject() {\n        return mRawObject;\n    }\n\n    /**\n     * Gets serializer\n     * @return the serializer\n     */\n    protected ISerializer getSerializer() {\n        return mSerializer;\n    }\n\n    /**\n     * Sets the raw json object\n     *\n     * @param serializer The serializer\n     * @param json The json object to set this object to\n     */\n    public void setRawObject(final ISerializer serializer, final JsonObject json) {\n        mSerializer = serializer;\n        mRawObject = json;\n\n    }\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/generated/BaseDrive.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.generated;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\nimport com.google.gson.JsonObject;\nimport com.google.gson.annotations.*;\n\n// **NOTE** This file was generated by a tool and any changes will be overwritten.\n\n/**\n * The class for the Base Drive.\n */\npublic class BaseDrive implements IJsonBackedObject {\n\n    /**\n     * The Id.\n     */\n    @SerializedName(\"id\")\n    public String id;\n\n    /**\n     * The Drive Type.\n     */\n    @SerializedName(\"driveType\")\n    public String driveType;\n\n    /**\n     * The Owner.\n     */\n    @SerializedName(\"owner\")\n    public IdentitySet owner;\n\n    /**\n     * The Quota.\n     */\n    @SerializedName(\"quota\")\n    public Quota quota;\n\n    /**\n     * The Items.\n     */\n    public transient ItemCollectionPage items;\n\n    /**\n     * The Shared.\n     */\n    public transient ItemCollectionPage shared;\n\n    /**\n     * The Special.\n     */\n    public transient ItemCollectionPage special;\n\n\n    /**\n     * The raw representation of this class\n     */\n    private transient JsonObject mRawObject;\n\n    /**\n     * The serializer\n     */\n    private transient ISerializer mSerializer;\n\n    /**\n     * Gets the raw representation of this class\n     * @return the raw representation of this class\n     */\n    public JsonObject getRawObject() {\n        return mRawObject;\n    }\n\n    /**\n     * Gets serializer\n     * @return the serializer\n     */\n    protected ISerializer getSerializer() {\n        return mSerializer;\n    }\n\n    /**\n     * Sets the raw json object\n     *\n     * @param serializer The serializer\n     * @param json The json object to set this object to\n     */\n    public void setRawObject(final ISerializer serializer, final JsonObject json) {\n        mSerializer = serializer;\n        mRawObject = json;\n\n\n        if (json.has(\"items\")) {\n            final BaseItemCollectionResponse response = new BaseItemCollectionResponse();\n            if (json.has(\"items@odata.nextLink\")) {\n                response.nextLink = json.get(\"items@odata.nextLink\").getAsString();\n            }\n\n            final JsonObject[] sourceArray = serializer.deserializeObject(json.get(\"items\").toString(), JsonObject[].class);\n            final Item[] array = new Item[sourceArray.length];\n            for (int i = 0; i < sourceArray.length; i++) {\n                array[i] = serializer.deserializeObject(sourceArray[i].toString(), Item.class);\n                array[i].setRawObject(serializer, sourceArray[i]);\n            }\n            response.value = Arrays.asList(array);\n            items = new ItemCollectionPage(response, null);\n        }\n\n        if (json.has(\"shared\")) {\n            final BaseItemCollectionResponse response = new BaseItemCollectionResponse();\n            if (json.has(\"shared@odata.nextLink\")) {\n                response.nextLink = json.get(\"shared@odata.nextLink\").getAsString();\n            }\n\n            final JsonObject[] sourceArray = serializer.deserializeObject(json.get(\"shared\").toString(), JsonObject[].class);\n            final Item[] array = new Item[sourceArray.length];\n            for (int i = 0; i < sourceArray.length; i++) {\n                array[i] = serializer.deserializeObject(sourceArray[i].toString(), Item.class);\n                array[i].setRawObject(serializer, sourceArray[i]);\n            }\n            response.value = Arrays.asList(array);\n            shared = new ItemCollectionPage(response, null);\n        }\n\n        if (json.has(\"special\")) {\n            final BaseItemCollectionResponse response = new BaseItemCollectionResponse();\n            if (json.has(\"special@odata.nextLink\")) {\n                response.nextLink = json.get(\"special@odata.nextLink\").getAsString();\n            }\n\n            final JsonObject[] sourceArray = serializer.deserializeObject(json.get(\"special\").toString(), JsonObject[].class);\n            final Item[] array = new Item[sourceArray.length];\n            for (int i = 0; i < sourceArray.length; i++) {\n                array[i] = serializer.deserializeObject(sourceArray[i].toString(), Item.class);\n                array[i].setRawObject(serializer, sourceArray[i]);\n            }\n            response.value = Arrays.asList(array);\n            special = new ItemCollectionPage(response, null);\n        }\n    }\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/generated/BaseDriveCollectionPage.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\n// **NOTE** This file was generated by a tool and any changes will be overwritten.\npackage com.onedrive.sdk.generated;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\nimport com.google.gson.JsonObject;\nimport com.google.gson.annotations.*;\n\n// **NOTE** This file was generated by a tool and any changes will be overwritten.\n\n/**\n * The class for the Base Drive Collection Page.\n */\npublic class BaseDriveCollectionPage extends BaseCollectionPage<Drive, IDriveCollectionRequestBuilder> implements IBaseDriveCollectionPage {\n\n    /**\n     * A collection page for Drive.\n     *\n     * @param response The serialized BaseDriveCollectionResponse from the OneDrive service\n     * @param builder The request builder for the next collection page\n     */\n    public BaseDriveCollectionPage(final BaseDriveCollectionResponse response, final IDriveCollectionRequestBuilder builder) {\n        super(response.value, builder);\n    }\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/generated/BaseDriveCollectionRequest.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\n// **NOTE** This file was generated by a tool and any changes will be overwritten.\npackage com.onedrive.sdk.generated;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\n// **NOTE** This file was generated by a tool and any changes will be overwritten.\n\n/**\n * The class for the Base Drive Collection Request.\n */\npublic class BaseDriveCollectionRequest extends BaseCollectionRequest<BaseDriveCollectionResponse, IDriveCollectionPage> implements IBaseDriveCollectionRequest {\n\n    /**\n     * The request builder for this collection of Drive\n     *\n     * @param requestUrl The request url\n     * @param client The service client\n     * @param options The options for this request\n     */\n    public BaseDriveCollectionRequest(final String requestUrl, IOneDriveClient client, final List<Option> options) {\n        super(requestUrl, client, options, BaseDriveCollectionResponse.class, IDriveCollectionPage.class);\n    }\n\n    public void get(final ICallback<IDriveCollectionPage> callback) {\n        final IExecutors executors = getBaseRequest().getClient().getExecutors();\n        executors.performOnBackground(new Runnable() {\n           @Override\n           public void run() {\n                try {\n                    executors.performOnForeground(get(), callback);\n                } catch (final ClientException e) {\n                    executors.performOnForeground(e, callback);\n                }\n           }\n        });\n    }\n\n    public IDriveCollectionPage get() throws ClientException {\n        final BaseDriveCollectionResponse response = send();\n        return buildFromResponse(response);\n    }\n\n    public IDriveCollectionRequest expand(final String value) {\n        addQueryOption(new QueryOption(\"expand\", value));\n        return (DriveCollectionRequest)this;\n    }\n\n    public IDriveCollectionRequest select(final String value) {\n        addQueryOption(new QueryOption(\"select\", value));\n        return (DriveCollectionRequest)this;\n    }\n\n    public IDriveCollectionRequest top(final int value) {\n        addQueryOption(new QueryOption(\"top\", value + \"\"));\n        return (DriveCollectionRequest)this;\n    }\n\n    public IDriveCollectionPage buildFromResponse(final BaseDriveCollectionResponse response) {\n        final IDriveCollectionRequestBuilder builder;\n        if (response.nextLink != null) {\n            builder = new DriveCollectionRequestBuilder(response.nextLink, getBaseRequest().getClient(), /* options */ null);\n        } else {\n            builder = null;\n        }\n        final DriveCollectionPage page = new DriveCollectionPage(response, builder);\n        page.setRawObject(response.getSerializer(), response.getRawObject());\n        return page;\n    }\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/generated/BaseDriveCollectionRequestBuilder.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.generated;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\n// **NOTE** This file was generated by a tool and any changes will be overwritten.\n\n/**\n * The class for the Base Drive Collection Request Builder.\n */\npublic class BaseDriveCollectionRequestBuilder extends BaseRequestBuilder implements IBaseDriveCollectionRequestBuilder {\n\n    /**\n     * The request builder for this collection of Drive\n     *\n     * @param requestUrl The request url\n     * @param client The service client\n     * @param options The options for this request\n     */\n    public BaseDriveCollectionRequestBuilder(final String requestUrl, final IOneDriveClient client, final List<Option> options) {\n        super(requestUrl, client, options);\n    }\n\n    public IDriveCollectionRequest buildRequest() {\n        return buildRequest(getOptions());\n    }\n\n    public IDriveCollectionRequest buildRequest(final List<Option> options) {\n        return new DriveCollectionRequest(getRequestUrl(), getClient(), options);\n    }\n\n    public IDriveRequestBuilder byId(final String id) {\n        return new DriveRequestBuilder(getRequestUrlWithAdditionalSegment(id), getClient(), getOptions());\n    }\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/generated/BaseDriveCollectionResponse.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.generated;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\nimport com.google.gson.JsonArray;\nimport com.google.gson.JsonObject;\nimport com.google.gson.annotations.*;\n\n// **NOTE** This file was generated by a tool and any changes will be overwritten.\n\n/**\n * The class for the Base Drive Collection Response.\n */\npublic class BaseDriveCollectionResponse implements IJsonBackedObject {\n\n    /**\n     * The list of Drive within this collection page\n     */\n    @SerializedName(\"value\")\n    public List<Drive> value;\n\n    /**\n     * The url to the next page of this collection, or null\n     */\n    @SerializedName(\"@odata.nextLink\")\n    public String nextLink;\n\n    /**\n     * The raw representation of this class\n     */\n    private transient JsonObject mRawObject;\n\n    /**\n     * The serializer\n     */\n    private transient ISerializer mSerializer;\n\n    /**\n     * Gets the raw representation of this class\n     * @return the raw representation of this class\n     */\n    public JsonObject getRawObject() {\n        return mRawObject;\n    }\n\n    /**\n     * Gets serializer\n     * @return the serializer\n     */\n    protected ISerializer getSerializer() {\n        return mSerializer;\n    }\n\n    /**\n     * Sets the raw json object\n     *\n     * @param serializer The serializer\n     * @param json The json object to set this object to\n     */\n    public void setRawObject(final ISerializer serializer, final JsonObject json) {\n        mSerializer = serializer;\n        mRawObject = json;\n\n\n        if (json.has(\"value\")) {\n            final JsonArray array = json.getAsJsonArray(\"value\");\n            for (int i = 0; i < array.size(); i++) {\n                value.get(i).setRawObject(mSerializer, (JsonObject) array.get(i));\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/generated/BaseDriveRequest.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.generated;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\n// **NOTE** This file was generated by a tool and any changes will be overwritten.\n\n/**\n * The class for the Base Drive Request.\n */\npublic class BaseDriveRequest extends BaseRequest implements IBaseDriveRequest {\n\n    /**\n     * The request for the Drive\n     *\n     * @param requestUrl The request url\n     * @param client The service client\n     * @param options The options for this request\n     */\n    public BaseDriveRequest(String requestUrl, IOneDriveClient client, List<Option> options) {\n        super(requestUrl, client, options, Drive.class);\n    }\n\n    public void get(final ICallback<Drive> callback) {\n        send(HttpMethod.GET, callback, null);\n    }\n\n    public Drive get() throws ClientException {\n       return send(HttpMethod.GET, null);\n    }\n\n    /**\n     * @deprecated  As of release 1.1.3, replaced by {@link #patch(Drive, ICallback)}\n     */\n    @Deprecated public void update(final Drive sourceDrive, final ICallback<Drive> callback) {\n        this.patch(sourceDrive, callback);\n    }\n\n    /**\n     * @deprecated  As of release 1.1.3, replaced by {@link #patch(Drive)}\n     */\n    @Deprecated public Drive update(final Drive sourceDrive) throws ClientException {\n        return this.patch(sourceDrive);\n    }\n\n    public void patch(final Drive sourceDrive, final ICallback<Drive> callback) {\n        send(HttpMethod.PATCH, callback, sourceDrive);\n    }\n\n    public Drive patch(final Drive sourceDrive) throws ClientException {\n        return send(HttpMethod.PATCH, sourceDrive);\n    }\n\n    public void delete(final ICallback<Void> callback) {\n        send(HttpMethod.DELETE, callback, null);\n    }\n\n    public void delete() throws ClientException {\n        send(HttpMethod.DELETE, null);\n    }\n\n    /**\n     * @deprecated  As of release 1.1.3, replaced by {@link #post(Drive, ICallback)}\n     */\n    @Deprecated public void create(final Drive newDrive, final ICallback<Drive> callback) {\n        this.post(newDrive, callback);\n    }\n\n    /**\n     * @deprecated  As of release 1.1.3, replaced by {@link #post(Drive)}\n     */\n    @Deprecated public Drive create(final Drive newDrive) throws ClientException {\n        return this.post(newDrive);\n    }\n\n    public void post(final Drive newDrive, final ICallback<Drive> callback) {\n        send(HttpMethod.POST, callback, newDrive);\n    }\n\n    public Drive post(final Drive newDrive) throws ClientException {\n        return send(HttpMethod.POST, newDrive);\n    }\n\n    public IDriveRequest select(final String value) {\n        getQueryOptions().add(new QueryOption(\"select\", value));\n        return (DriveRequest)this;\n    }\n\n    public IDriveRequest top(final int value) {\n        getQueryOptions().add(new QueryOption(\"top\", value+\"\"));\n        return (DriveRequest)this;\n    }\n\n    public IDriveRequest expand(final String value) {\n        getQueryOptions().add(new QueryOption(\"expand\", value));\n        return (DriveRequest)this;\n    }\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/generated/BaseDriveRequestBuilder.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.generated;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\n// **NOTE** This file was generated by a tool and any changes will be overwritten.\n\n/**\n * The class for the Base Drive Request Builder.\n */\npublic class BaseDriveRequestBuilder extends BaseRequestBuilder implements IBaseDriveRequestBuilder {\n\n    /**\n     * The request builder for the Drive\n     *\n     * @param requestUrl The request url\n     * @param client The service client\n     * @param options The options for this request\n     */\n    public BaseDriveRequestBuilder(final String requestUrl, final IOneDriveClient client, final List<Option> options) {\n        super(requestUrl, client, options);\n    }\n\n    /**\n     * Creates the request\n     */\n    public IDriveRequest buildRequest() {\n        return buildRequest(getOptions());\n    }\n\n    /**\n     * Creates the request with specific options instead of the existing options\n     */\n    public IDriveRequest buildRequest(final List<Option> options) {\n        return new DriveRequest(getRequestUrl(), getClient(), options);\n    }\n\n    public IItemRequestBuilder getItems(final String id) {\n        return new ItemRequestBuilder(getRequestUrlWithAdditionalSegment(\"items\") + \"/\" + id, getClient(), null);\n    }\n\n    public IItemRequestBuilder getShared(final String id) {\n        return new ItemRequestBuilder(getRequestUrlWithAdditionalSegment(\"shared\") + \"/\" + id, getClient(), null);\n    }\n\n    public IItemRequestBuilder getSpecial(final String id) {\n        return new ItemRequestBuilder(getRequestUrlWithAdditionalSegment(\"special\") + \"/\" + id, getClient(), null);\n    }\n\n    public IRecentRequestBuilder getRecent() {\n        return new RecentRequestBuilder(getRequestUrlWithAdditionalSegment(\"view.recent\"), getClient(), null);\n    }\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/generated/BaseFile.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.generated;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\nimport com.google.gson.JsonObject;\nimport com.google.gson.annotations.*;\n\n// **NOTE** This file was generated by a tool and any changes will be overwritten.\n\n/**\n * The class for the Base File.\n */\npublic class BaseFile implements IJsonBackedObject {\n\n    /**\n     * The Hashes.\n     */\n    @SerializedName(\"hashes\")\n    public Hashes hashes;\n\n    /**\n     * The Mime Type.\n     */\n    @SerializedName(\"mimeType\")\n    public String mimeType;\n\n\n    /**\n     * The raw representation of this class\n     */\n    private transient JsonObject mRawObject;\n\n    /**\n     * The serializer\n     */\n    private transient ISerializer mSerializer;\n\n    /**\n     * Gets the raw representation of this class\n     * @return the raw representation of this class\n     */\n    public JsonObject getRawObject() {\n        return mRawObject;\n    }\n\n    /**\n     * Gets serializer\n     * @return the serializer\n     */\n    protected ISerializer getSerializer() {\n        return mSerializer;\n    }\n\n    /**\n     * Sets the raw json object\n     *\n     * @param serializer The serializer\n     * @param json The json object to set this object to\n     */\n    public void setRawObject(final ISerializer serializer, final JsonObject json) {\n        mSerializer = serializer;\n        mRawObject = json;\n\n    }\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/generated/BaseFileSystemInfo.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.generated;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\nimport com.google.gson.JsonObject;\nimport com.google.gson.annotations.*;\n\n// **NOTE** This file was generated by a tool and any changes will be overwritten.\n\n/**\n * The class for the Base File System Info.\n */\npublic class BaseFileSystemInfo implements IJsonBackedObject {\n\n    /**\n     * The Created Date Time.\n     */\n    @SerializedName(\"createdDateTime\")\n    public java.util.Calendar createdDateTime;\n\n    /**\n     * The Last Modified Date Time.\n     */\n    @SerializedName(\"lastModifiedDateTime\")\n    public java.util.Calendar lastModifiedDateTime;\n\n\n    /**\n     * The raw representation of this class\n     */\n    private transient JsonObject mRawObject;\n\n    /**\n     * The serializer\n     */\n    private transient ISerializer mSerializer;\n\n    /**\n     * Gets the raw representation of this class\n     * @return the raw representation of this class\n     */\n    public JsonObject getRawObject() {\n        return mRawObject;\n    }\n\n    /**\n     * Gets serializer\n     * @return the serializer\n     */\n    protected ISerializer getSerializer() {\n        return mSerializer;\n    }\n\n    /**\n     * Sets the raw json object\n     *\n     * @param serializer The serializer\n     * @param json The json object to set this object to\n     */\n    public void setRawObject(final ISerializer serializer, final JsonObject json) {\n        mSerializer = serializer;\n        mRawObject = json;\n\n    }\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/generated/BaseFolder.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.generated;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\nimport com.google.gson.JsonObject;\nimport com.google.gson.annotations.*;\n\n// **NOTE** This file was generated by a tool and any changes will be overwritten.\n\n/**\n * The class for the Base Folder.\n */\npublic class BaseFolder implements IJsonBackedObject {\n\n    /**\n     * The Child Count.\n     */\n    @SerializedName(\"childCount\")\n    public Integer childCount;\n\n\n    /**\n     * The raw representation of this class\n     */\n    private transient JsonObject mRawObject;\n\n    /**\n     * The serializer\n     */\n    private transient ISerializer mSerializer;\n\n    /**\n     * Gets the raw representation of this class\n     * @return the raw representation of this class\n     */\n    public JsonObject getRawObject() {\n        return mRawObject;\n    }\n\n    /**\n     * Gets serializer\n     * @return the serializer\n     */\n    protected ISerializer getSerializer() {\n        return mSerializer;\n    }\n\n    /**\n     * Sets the raw json object\n     *\n     * @param serializer The serializer\n     * @param json The json object to set this object to\n     */\n    public void setRawObject(final ISerializer serializer, final JsonObject json) {\n        mSerializer = serializer;\n        mRawObject = json;\n\n    }\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/generated/BaseHashes.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.generated;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\nimport com.google.gson.JsonObject;\nimport com.google.gson.annotations.*;\n\n// **NOTE** This file was generated by a tool and any changes will be overwritten.\n\n/**\n * The class for the Base Hashes.\n */\npublic class BaseHashes implements IJsonBackedObject {\n\n    /**\n     * The Crc32Hash.\n     */\n    @SerializedName(\"crc32Hash\")\n    public String crc32Hash;\n\n    /**\n     * The Sha1Hash.\n     */\n    @SerializedName(\"sha1Hash\")\n    public String sha1Hash;\n\n\n    /**\n     * The raw representation of this class\n     */\n    private transient JsonObject mRawObject;\n\n    /**\n     * The serializer\n     */\n    private transient ISerializer mSerializer;\n\n    /**\n     * Gets the raw representation of this class\n     * @return the raw representation of this class\n     */\n    public JsonObject getRawObject() {\n        return mRawObject;\n    }\n\n    /**\n     * Gets serializer\n     * @return the serializer\n     */\n    protected ISerializer getSerializer() {\n        return mSerializer;\n    }\n\n    /**\n     * Sets the raw json object\n     *\n     * @param serializer The serializer\n     * @param json The json object to set this object to\n     */\n    public void setRawObject(final ISerializer serializer, final JsonObject json) {\n        mSerializer = serializer;\n        mRawObject = json;\n\n    }\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/generated/BaseIdentity.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.generated;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\nimport com.google.gson.JsonObject;\nimport com.google.gson.annotations.*;\n\n// **NOTE** This file was generated by a tool and any changes will be overwritten.\n\n/**\n * The class for the Base Identity.\n */\npublic class BaseIdentity implements IJsonBackedObject {\n\n    /**\n     * The Display Name.\n     */\n    @SerializedName(\"displayName\")\n    public String displayName;\n\n    /**\n     * The Id.\n     */\n    @SerializedName(\"id\")\n    public String id;\n\n    /**\n     * The Thumbnails.\n     */\n    @SerializedName(\"thumbnails\")\n    public ThumbnailSet thumbnails;\n\n\n    /**\n     * The raw representation of this class\n     */\n    private transient JsonObject mRawObject;\n\n    /**\n     * The serializer\n     */\n    private transient ISerializer mSerializer;\n\n    /**\n     * Gets the raw representation of this class\n     * @return the raw representation of this class\n     */\n    public JsonObject getRawObject() {\n        return mRawObject;\n    }\n\n    /**\n     * Gets serializer\n     * @return the serializer\n     */\n    protected ISerializer getSerializer() {\n        return mSerializer;\n    }\n\n    /**\n     * Sets the raw json object\n     *\n     * @param serializer The serializer\n     * @param json The json object to set this object to\n     */\n    public void setRawObject(final ISerializer serializer, final JsonObject json) {\n        mSerializer = serializer;\n        mRawObject = json;\n\n    }\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/generated/BaseIdentitySet.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.generated;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\nimport com.google.gson.JsonObject;\nimport com.google.gson.annotations.*;\n\n// **NOTE** This file was generated by a tool and any changes will be overwritten.\n\n/**\n * The class for the Base Identity Set.\n */\npublic class BaseIdentitySet implements IJsonBackedObject {\n\n    /**\n     * The Application.\n     */\n    @SerializedName(\"application\")\n    public Identity application;\n\n    /**\n     * The Device.\n     */\n    @SerializedName(\"device\")\n    public Identity device;\n\n    /**\n     * The User.\n     */\n    @SerializedName(\"user\")\n    public Identity user;\n\n\n    /**\n     * The raw representation of this class\n     */\n    private transient JsonObject mRawObject;\n\n    /**\n     * The serializer\n     */\n    private transient ISerializer mSerializer;\n\n    /**\n     * Gets the raw representation of this class\n     * @return the raw representation of this class\n     */\n    public JsonObject getRawObject() {\n        return mRawObject;\n    }\n\n    /**\n     * Gets serializer\n     * @return the serializer\n     */\n    protected ISerializer getSerializer() {\n        return mSerializer;\n    }\n\n    /**\n     * Sets the raw json object\n     *\n     * @param serializer The serializer\n     * @param json The json object to set this object to\n     */\n    public void setRawObject(final ISerializer serializer, final JsonObject json) {\n        mSerializer = serializer;\n        mRawObject = json;\n\n    }\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/generated/BaseImage.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.generated;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\nimport com.google.gson.JsonObject;\nimport com.google.gson.annotations.*;\n\n// **NOTE** This file was generated by a tool and any changes will be overwritten.\n\n/**\n * The class for the Base Image.\n */\npublic class BaseImage implements IJsonBackedObject {\n\n    /**\n     * The Height.\n     */\n    @SerializedName(\"height\")\n    public Integer height;\n\n    /**\n     * The Width.\n     */\n    @SerializedName(\"width\")\n    public Integer width;\n\n\n    /**\n     * The raw representation of this class\n     */\n    private transient JsonObject mRawObject;\n\n    /**\n     * The serializer\n     */\n    private transient ISerializer mSerializer;\n\n    /**\n     * Gets the raw representation of this class\n     * @return the raw representation of this class\n     */\n    public JsonObject getRawObject() {\n        return mRawObject;\n    }\n\n    /**\n     * Gets serializer\n     * @return the serializer\n     */\n    protected ISerializer getSerializer() {\n        return mSerializer;\n    }\n\n    /**\n     * Sets the raw json object\n     *\n     * @param serializer The serializer\n     * @param json The json object to set this object to\n     */\n    public void setRawObject(final ISerializer serializer, final JsonObject json) {\n        mSerializer = serializer;\n        mRawObject = json;\n\n    }\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/generated/BaseItem.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.generated;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\nimport com.google.gson.JsonObject;\nimport com.google.gson.annotations.*;\n\n// **NOTE** This file was generated by a tool and any changes will be overwritten.\n\n/**\n * The class for the Base Item.\n */\npublic class BaseItem implements IJsonBackedObject {\n\n    /**\n     * The Created By.\n     */\n    @SerializedName(\"createdBy\")\n    public IdentitySet createdBy;\n\n    /**\n     * The Created Date Time.\n     */\n    @SerializedName(\"createdDateTime\")\n    public java.util.Calendar createdDateTime;\n\n    /**\n     * The CTag.\n     */\n    @SerializedName(\"cTag\")\n    public String cTag;\n\n    /**\n     * The Description.\n     */\n    @SerializedName(\"description\")\n    public String description;\n\n    /**\n     * The ETag.\n     */\n    @SerializedName(\"eTag\")\n    public String eTag;\n\n    /**\n     * The Id.\n     */\n    @SerializedName(\"id\")\n    public String id;\n\n    /**\n     * The Last Modified By.\n     */\n    @SerializedName(\"lastModifiedBy\")\n    public IdentitySet lastModifiedBy;\n\n    /**\n     * The Last Modified Date Time.\n     */\n    @SerializedName(\"lastModifiedDateTime\")\n    public java.util.Calendar lastModifiedDateTime;\n\n    /**\n     * The Name.\n     */\n    @SerializedName(\"name\")\n    public String name;\n\n    /**\n     * The Parent Reference.\n     */\n    @SerializedName(\"parentReference\")\n    public ItemReference parentReference;\n\n    /**\n     * The Size.\n     */\n    @SerializedName(\"size\")\n    public Long size;\n\n    /**\n     * The Web Url.\n     */\n    @SerializedName(\"webUrl\")\n    public String webUrl;\n\n    /**\n     * The Audio.\n     */\n    @SerializedName(\"audio\")\n    public Audio audio;\n\n    /**\n     * The Deleted.\n     */\n    @SerializedName(\"deleted\")\n    public Deleted deleted;\n\n    /**\n     * The File.\n     */\n    @SerializedName(\"file\")\n    public File file;\n\n    /**\n     * The File System Info.\n     */\n    @SerializedName(\"fileSystemInfo\")\n    public FileSystemInfo fileSystemInfo;\n\n    /**\n     * The Folder.\n     */\n    @SerializedName(\"folder\")\n    public Folder folder;\n\n    /**\n     * The Image.\n     */\n    @SerializedName(\"image\")\n    public Image image;\n\n    /**\n     * The Location.\n     */\n    @SerializedName(\"location\")\n    public Location location;\n\n    /**\n     * The Open With.\n     */\n    @SerializedName(\"openWith\")\n    public OpenWithSet openWith;\n\n    /**\n     * The Photo.\n     */\n    @SerializedName(\"photo\")\n    public Photo photo;\n\n    /**\n     * The Remote Item.\n     */\n    @SerializedName(\"remoteItem\")\n    public Item remoteItem;\n\n    /**\n     * The Search Result.\n     */\n    @SerializedName(\"searchResult\")\n    public SearchResult searchResult;\n\n    /**\n     * The Shared.\n     */\n    @SerializedName(\"shared\")\n    public Shared shared;\n\n    /**\n     * The Special Folder.\n     */\n    @SerializedName(\"specialFolder\")\n    public SpecialFolder specialFolder;\n\n    /**\n     * The Video.\n     */\n    @SerializedName(\"video\")\n    public Video video;\n\n    /**\n     * The Permissions.\n     */\n    public transient PermissionCollectionPage permissions;\n\n    /**\n     * The Versions.\n     */\n    public transient ItemCollectionPage versions;\n\n    /**\n     * The Children.\n     */\n    public transient ItemCollectionPage children;\n\n    /**\n     * The Thumbnails.\n     */\n    public transient ThumbnailSetCollectionPage thumbnails;\n\n\n    /**\n     * The raw representation of this class\n     */\n    private transient JsonObject mRawObject;\n\n    /**\n     * The serializer\n     */\n    private transient ISerializer mSerializer;\n\n    /**\n     * Gets the raw representation of this class\n     * @return the raw representation of this class\n     */\n    public JsonObject getRawObject() {\n        return mRawObject;\n    }\n\n    /**\n     * Gets serializer\n     * @return the serializer\n     */\n    protected ISerializer getSerializer() {\n        return mSerializer;\n    }\n\n    /**\n     * Sets the raw json object\n     *\n     * @param serializer The serializer\n     * @param json The json object to set this object to\n     */\n    public void setRawObject(final ISerializer serializer, final JsonObject json) {\n        mSerializer = serializer;\n        mRawObject = json;\n\n\n        if (json.has(\"permissions\")) {\n            final BasePermissionCollectionResponse response = new BasePermissionCollectionResponse();\n            if (json.has(\"permissions@odata.nextLink\")) {\n                response.nextLink = json.get(\"permissions@odata.nextLink\").getAsString();\n            }\n\n            final JsonObject[] sourceArray = serializer.deserializeObject(json.get(\"permissions\").toString(), JsonObject[].class);\n            final Permission[] array = new Permission[sourceArray.length];\n            for (int i = 0; i < sourceArray.length; i++) {\n                array[i] = serializer.deserializeObject(sourceArray[i].toString(), Permission.class);\n                array[i].setRawObject(serializer, sourceArray[i]);\n            }\n            response.value = Arrays.asList(array);\n            permissions = new PermissionCollectionPage(response, null);\n        }\n\n        if (json.has(\"versions\")) {\n            final BaseItemCollectionResponse response = new BaseItemCollectionResponse();\n            if (json.has(\"versions@odata.nextLink\")) {\n                response.nextLink = json.get(\"versions@odata.nextLink\").getAsString();\n            }\n\n            final JsonObject[] sourceArray = serializer.deserializeObject(json.get(\"versions\").toString(), JsonObject[].class);\n            final Item[] array = new Item[sourceArray.length];\n            for (int i = 0; i < sourceArray.length; i++) {\n                array[i] = serializer.deserializeObject(sourceArray[i].toString(), Item.class);\n                array[i].setRawObject(serializer, sourceArray[i]);\n            }\n            response.value = Arrays.asList(array);\n            versions = new ItemCollectionPage(response, null);\n        }\n\n        if (json.has(\"children\")) {\n            final BaseItemCollectionResponse response = new BaseItemCollectionResponse();\n            if (json.has(\"children@odata.nextLink\")) {\n                response.nextLink = json.get(\"children@odata.nextLink\").getAsString();\n            }\n\n            final JsonObject[] sourceArray = serializer.deserializeObject(json.get(\"children\").toString(), JsonObject[].class);\n            final Item[] array = new Item[sourceArray.length];\n            for (int i = 0; i < sourceArray.length; i++) {\n                array[i] = serializer.deserializeObject(sourceArray[i].toString(), Item.class);\n                array[i].setRawObject(serializer, sourceArray[i]);\n            }\n            response.value = Arrays.asList(array);\n            children = new ItemCollectionPage(response, null);\n        }\n\n        if (json.has(\"thumbnails\")) {\n            final BaseThumbnailSetCollectionResponse response = new BaseThumbnailSetCollectionResponse();\n            if (json.has(\"thumbnails@odata.nextLink\")) {\n                response.nextLink = json.get(\"thumbnails@odata.nextLink\").getAsString();\n            }\n\n            final JsonObject[] sourceArray = serializer.deserializeObject(json.get(\"thumbnails\").toString(), JsonObject[].class);\n            final ThumbnailSet[] array = new ThumbnailSet[sourceArray.length];\n            for (int i = 0; i < sourceArray.length; i++) {\n                array[i] = serializer.deserializeObject(sourceArray[i].toString(), ThumbnailSet.class);\n                array[i].setRawObject(serializer, sourceArray[i]);\n            }\n            response.value = Arrays.asList(array);\n            thumbnails = new ThumbnailSetCollectionPage(response, null);\n        }\n    }\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/generated/BaseItemCollectionPage.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\n// **NOTE** This file was generated by a tool and any changes will be overwritten.\npackage com.onedrive.sdk.generated;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\nimport com.google.gson.JsonObject;\nimport com.google.gson.annotations.*;\n\n// **NOTE** This file was generated by a tool and any changes will be overwritten.\n\n/**\n * The class for the Base Item Collection Page.\n */\npublic class BaseItemCollectionPage extends BaseCollectionPage<Item, IItemCollectionRequestBuilder> implements IBaseItemCollectionPage {\n\n    /**\n     * A collection page for Item.\n     *\n     * @param response The serialized BaseItemCollectionResponse from the OneDrive service\n     * @param builder The request builder for the next collection page\n     */\n    public BaseItemCollectionPage(final BaseItemCollectionResponse response, final IItemCollectionRequestBuilder builder) {\n        super(response.value, builder);\n    }\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/generated/BaseItemCollectionRequest.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\n// **NOTE** This file was generated by a tool and any changes will be overwritten.\npackage com.onedrive.sdk.generated;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\n// **NOTE** This file was generated by a tool and any changes will be overwritten.\n\n/**\n * The class for the Base Item Collection Request.\n */\npublic class BaseItemCollectionRequest extends BaseCollectionRequest<BaseItemCollectionResponse, IItemCollectionPage> implements IBaseItemCollectionRequest {\n\n    /**\n     * The request builder for this collection of Item\n     *\n     * @param requestUrl The request url\n     * @param client The service client\n     * @param options The options for this request\n     */\n    public BaseItemCollectionRequest(final String requestUrl, IOneDriveClient client, final List<Option> options) {\n        super(requestUrl, client, options, BaseItemCollectionResponse.class, IItemCollectionPage.class);\n    }\n\n    public void get(final ICallback<IItemCollectionPage> callback) {\n        final IExecutors executors = getBaseRequest().getClient().getExecutors();\n        executors.performOnBackground(new Runnable() {\n           @Override\n           public void run() {\n                try {\n                    executors.performOnForeground(get(), callback);\n                } catch (final ClientException e) {\n                    executors.performOnForeground(e, callback);\n                }\n           }\n        });\n    }\n\n    public IItemCollectionPage get() throws ClientException {\n        final BaseItemCollectionResponse response = send();\n        return buildFromResponse(response);\n    }\n\n    /**\n     * @deprecated  As of release 1.1.3, replaced by {@link #post(Item, ICallback)}\n     */\n    @Deprecated public void create(final Item newItem, final ICallback<Item> callback) {\n        this.post(newItem, callback);\n    }\n\n    /**\n     * @deprecated  As of release 1.1.3, replaced by {@link #post(Item)}\n     */\n    @Deprecated public Item create(final Item newItem) throws ClientException {\n        return this.post(newItem);\n    }\n\n    public void post(final Item newItem, final ICallback<Item> callback) {\n        final String requestUrl = getBaseRequest().getRequestUrl().toString();\n        new ItemRequestBuilder(requestUrl, getBaseRequest().getClient(), /* Options */ null)\n            .buildRequest()\n            .post(newItem, callback);\n    }\n\n    public Item post(final Item newItem) throws ClientException {\n        final String requestUrl = getBaseRequest().getRequestUrl().toString();\n        return new ItemRequestBuilder(requestUrl, getBaseRequest().getClient(), /* Options */ null)\n            .buildRequest()\n            .post(newItem);\n    }\n    public IItemCollectionRequest expand(final String value) {\n        addQueryOption(new QueryOption(\"expand\", value));\n        return (ItemCollectionRequest)this;\n    }\n\n    public IItemCollectionRequest select(final String value) {\n        addQueryOption(new QueryOption(\"select\", value));\n        return (ItemCollectionRequest)this;\n    }\n\n    public IItemCollectionRequest top(final int value) {\n        addQueryOption(new QueryOption(\"top\", value + \"\"));\n        return (ItemCollectionRequest)this;\n    }\n\n    public IItemCollectionPage buildFromResponse(final BaseItemCollectionResponse response) {\n        final IItemCollectionRequestBuilder builder;\n        if (response.nextLink != null) {\n            builder = new ItemCollectionRequestBuilder(response.nextLink, getBaseRequest().getClient(), /* options */ null);\n        } else {\n            builder = null;\n        }\n        final ItemCollectionPage page = new ItemCollectionPage(response, builder);\n        page.setRawObject(response.getSerializer(), response.getRawObject());\n        return page;\n    }\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/generated/BaseItemCollectionRequestBuilder.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.generated;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\n// **NOTE** This file was generated by a tool and any changes will be overwritten.\n\n/**\n * The class for the Base Item Collection Request Builder.\n */\npublic class BaseItemCollectionRequestBuilder extends BaseRequestBuilder implements IBaseItemCollectionRequestBuilder {\n\n    /**\n     * The request builder for this collection of Item\n     *\n     * @param requestUrl The request url\n     * @param client The service client\n     * @param options The options for this request\n     */\n    public BaseItemCollectionRequestBuilder(final String requestUrl, final IOneDriveClient client, final List<Option> options) {\n        super(requestUrl, client, options);\n    }\n\n    public IItemCollectionRequest buildRequest() {\n        return buildRequest(getOptions());\n    }\n\n    public IItemCollectionRequest buildRequest(final List<Option> options) {\n        return new ItemCollectionRequest(getRequestUrl(), getClient(), options);\n    }\n\n    public IItemRequestBuilder byId(final String id) {\n        return new ItemRequestBuilder(getRequestUrlWithAdditionalSegment(id), getClient(), getOptions());\n    }\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/generated/BaseItemCollectionResponse.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.generated;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\nimport com.google.gson.JsonArray;\nimport com.google.gson.JsonObject;\nimport com.google.gson.annotations.*;\n\n// **NOTE** This file was generated by a tool and any changes will be overwritten.\n\n/**\n * The class for the Base Item Collection Response.\n */\npublic class BaseItemCollectionResponse implements IJsonBackedObject {\n\n    /**\n     * The list of Item within this collection page\n     */\n    @SerializedName(\"value\")\n    public List<Item> value;\n\n    /**\n     * The url to the next page of this collection, or null\n     */\n    @SerializedName(\"@odata.nextLink\")\n    public String nextLink;\n\n    /**\n     * The raw representation of this class\n     */\n    private transient JsonObject mRawObject;\n\n    /**\n     * The serializer\n     */\n    private transient ISerializer mSerializer;\n\n    /**\n     * Gets the raw representation of this class\n     * @return the raw representation of this class\n     */\n    public JsonObject getRawObject() {\n        return mRawObject;\n    }\n\n    /**\n     * Gets serializer\n     * @return the serializer\n     */\n    protected ISerializer getSerializer() {\n        return mSerializer;\n    }\n\n    /**\n     * Sets the raw json object\n     *\n     * @param serializer The serializer\n     * @param json The json object to set this object to\n     */\n    public void setRawObject(final ISerializer serializer, final JsonObject json) {\n        mSerializer = serializer;\n        mRawObject = json;\n\n\n        if (json.has(\"value\")) {\n            final JsonArray array = json.getAsJsonArray(\"value\");\n            for (int i = 0; i < array.size(); i++) {\n                value.get(i).setRawObject(mSerializer, (JsonObject) array.get(i));\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/generated/BaseItemReference.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.generated;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\nimport com.google.gson.JsonObject;\nimport com.google.gson.annotations.*;\n\n// **NOTE** This file was generated by a tool and any changes will be overwritten.\n\n/**\n * The class for the Base Item Reference.\n */\npublic class BaseItemReference implements IJsonBackedObject {\n\n    /**\n     * The Drive Id.\n     */\n    @SerializedName(\"driveId\")\n    public String driveId;\n\n    /**\n     * The Id.\n     */\n    @SerializedName(\"id\")\n    public String id;\n\n    /**\n     * The Path.\n     */\n    @SerializedName(\"path\")\n    public String path;\n\n\n    /**\n     * The raw representation of this class\n     */\n    private transient JsonObject mRawObject;\n\n    /**\n     * The serializer\n     */\n    private transient ISerializer mSerializer;\n\n    /**\n     * Gets the raw representation of this class\n     * @return the raw representation of this class\n     */\n    public JsonObject getRawObject() {\n        return mRawObject;\n    }\n\n    /**\n     * Gets serializer\n     * @return the serializer\n     */\n    protected ISerializer getSerializer() {\n        return mSerializer;\n    }\n\n    /**\n     * Sets the raw json object\n     *\n     * @param serializer The serializer\n     * @param json The json object to set this object to\n     */\n    public void setRawObject(final ISerializer serializer, final JsonObject json) {\n        mSerializer = serializer;\n        mRawObject = json;\n\n    }\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/generated/BaseItemRequest.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.generated;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\n// **NOTE** This file was generated by a tool and any changes will be overwritten.\n\n/**\n * The class for the Base Item Request.\n */\npublic class BaseItemRequest extends BaseRequest implements IBaseItemRequest {\n\n    /**\n     * The request for the Item\n     *\n     * @param requestUrl The request url\n     * @param client The service client\n     * @param options The options for this request\n     */\n    public BaseItemRequest(String requestUrl, IOneDriveClient client, List<Option> options) {\n        super(requestUrl, client, options, Item.class);\n    }\n\n    public void get(final ICallback<Item> callback) {\n        send(HttpMethod.GET, callback, null);\n    }\n\n    public Item get() throws ClientException {\n       return send(HttpMethod.GET, null);\n    }\n\n    /**\n     * @deprecated  As of release 1.1.3, replaced by {@link #patch(Item, ICallback)}\n     */\n    @Deprecated public void update(final Item sourceItem, final ICallback<Item> callback) {\n        this.patch(sourceItem, callback);\n    }\n\n    /**\n     * @deprecated  As of release 1.1.3, replaced by {@link #patch(Item)}\n     */\n    @Deprecated public Item update(final Item sourceItem) throws ClientException {\n        return this.patch(sourceItem);\n    }\n\n    public void patch(final Item sourceItem, final ICallback<Item> callback) {\n        send(HttpMethod.PATCH, callback, sourceItem);\n    }\n\n    public Item patch(final Item sourceItem) throws ClientException {\n        return send(HttpMethod.PATCH, sourceItem);\n    }\n\n    public void delete(final ICallback<Void> callback) {\n        send(HttpMethod.DELETE, callback, null);\n    }\n\n    public void delete() throws ClientException {\n        send(HttpMethod.DELETE, null);\n    }\n\n    /**\n     * @deprecated  As of release 1.1.3, replaced by {@link #post(Item, ICallback)}\n     */\n    @Deprecated public void create(final Item newItem, final ICallback<Item> callback) {\n        this.post(newItem, callback);\n    }\n\n    /**\n     * @deprecated  As of release 1.1.3, replaced by {@link #post(Item)}\n     */\n    @Deprecated public Item create(final Item newItem) throws ClientException {\n        return this.post(newItem);\n    }\n\n    public void post(final Item newItem, final ICallback<Item> callback) {\n        send(HttpMethod.POST, callback, newItem);\n    }\n\n    public Item post(final Item newItem) throws ClientException {\n        return send(HttpMethod.POST, newItem);\n    }\n\n    public IItemRequest select(final String value) {\n        getQueryOptions().add(new QueryOption(\"select\", value));\n        return (ItemRequest)this;\n    }\n\n    public IItemRequest top(final int value) {\n        getQueryOptions().add(new QueryOption(\"top\", value+\"\"));\n        return (ItemRequest)this;\n    }\n\n    public IItemRequest expand(final String value) {\n        getQueryOptions().add(new QueryOption(\"expand\", value));\n        return (ItemRequest)this;\n    }\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/generated/BaseItemRequestBuilder.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.generated;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\n// **NOTE** This file was generated by a tool and any changes will be overwritten.\n\n/**\n * The class for the Base Item Request Builder.\n */\npublic class BaseItemRequestBuilder extends BaseRequestBuilder implements IBaseItemRequestBuilder {\n\n    /**\n     * The request builder for the Item\n     *\n     * @param requestUrl The request url\n     * @param client The service client\n     * @param options The options for this request\n     */\n    public BaseItemRequestBuilder(final String requestUrl, final IOneDriveClient client, final List<Option> options) {\n        super(requestUrl, client, options);\n    }\n\n    /**\n     * Creates the request\n     */\n    public IItemRequest buildRequest() {\n        return buildRequest(getOptions());\n    }\n\n    /**\n     * Creates the request with specific options instead of the existing options\n     */\n    public IItemRequest buildRequest(final List<Option> options) {\n        return new ItemRequest(getRequestUrl(), getClient(), options);\n    }\n\n    public IPermissionCollectionRequestBuilder getPermissions() {\n        return new PermissionCollectionRequestBuilder(getRequestUrlWithAdditionalSegment(\"permissions\"), getClient(), null);\n    }\n\n    public IPermissionRequestBuilder getPermissions(final String id) {\n        return new PermissionRequestBuilder(getRequestUrlWithAdditionalSegment(\"permissions\") + \"/\" + id, getClient(), null);\n    }\n\n    public IItemCollectionRequestBuilder getChildren() {\n        return new ItemCollectionRequestBuilder(getRequestUrlWithAdditionalSegment(\"children\"), getClient(), null);\n    }\n\n    public IItemRequestBuilder getChildren(final String id) {\n        return new ItemRequestBuilder(getRequestUrlWithAdditionalSegment(\"children\") + \"/\" + id, getClient(), null);\n    }\n\n    public IThumbnailSetCollectionRequestBuilder getThumbnails() {\n        return new ThumbnailSetCollectionRequestBuilder(getRequestUrlWithAdditionalSegment(\"thumbnails\"), getClient(), null);\n    }\n\n    public IThumbnailSetRequestBuilder getThumbnails(final String id) {\n        return new ThumbnailSetRequestBuilder(getRequestUrlWithAdditionalSegment(\"thumbnails\") + \"/\" + id, getClient(), null);\n    }\n\n    public IItemStreamRequestBuilder getContent() {\n        return new ItemStreamRequestBuilder(getRequestUrlWithAdditionalSegment(\"content\"), getClient(), null);\n    }\n\n    public ICreateSessionRequestBuilder getCreateSession(final ChunkedUploadSessionDescriptor item) {\n        return new CreateSessionRequestBuilder(getRequestUrlWithAdditionalSegment(\"action.createUploadSession\"), getClient(), null, item);\n    }\n\n    public ICopyRequestBuilder getCopy(final String name, final ItemReference parentReference) {\n        return new CopyRequestBuilder(getRequestUrlWithAdditionalSegment(\"action.copy\"), getClient(), null, name, parentReference);\n    }\n\n    public ICreateLinkRequestBuilder getCreateLink(final String type) {\n        return new CreateLinkRequestBuilder(getRequestUrlWithAdditionalSegment(\"action.createLink\"), getClient(), null, type);\n    }\n\n    public IDeltaRequestBuilder getDelta(final String token) {\n        return new DeltaRequestBuilder(getRequestUrlWithAdditionalSegment(\"view.delta\"), getClient(), null, token);\n    }\n\n    public ISearchRequestBuilder getSearch(final String q) {\n        return new SearchRequestBuilder(getRequestUrlWithAdditionalSegment(\"view.search\"), getClient(), null, q);\n    }\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/generated/BaseItemStreamRequest.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.generated;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\nimport java.io.*;\n\n// **NOTE** This file was generated by a tool and any changes will be overwritten.\n\n/**\n * The class for the Base Item Stream Request.\n */\npublic class BaseItemStreamRequest extends BaseStreamRequest<Item> implements IBaseItemStreamRequest {\n\n    /**\n     * The request for this ItemStream\n     *\n     * @param requestUrl The request url\n     * @param client The service client\n     * @param options The options for this request\n     */\n    public BaseItemStreamRequest(String requestUrl, IOneDriveClient client, List<Option> options) {\n        super(requestUrl, client, options, Item.class);\n    }\n\n    public void get(final ICallback<InputStream> callback) {\n        send(callback);\n    }\n\n    public InputStream get() throws ClientException {\n       return send();\n    }\n\n    public void put(final byte[] fileContents, final ICallback<Item> callback) {\n        send(fileContents, callback);\n    }\n\n    public Item put(final byte[] fileContents) throws ClientException {\n        return send(fileContents);\n    }\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/generated/BaseItemStreamRequestBuilder.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.generated;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\n// **NOTE** This file was generated by a tool and any changes will be overwritten.\n\n/**\n * The class for the Base Item Stream Request Builder.\n */\npublic class BaseItemStreamRequestBuilder extends BaseRequestBuilder implements IBaseItemStreamRequestBuilder {\n\n    /**\n     * The request builder for the ItemStream\n     *\n     * @param requestUrl The request url\n     * @param client The service client\n     * @param options The options for this request\n     */\n    public BaseItemStreamRequestBuilder(final String requestUrl, final IOneDriveClient client, final List<Option> options) {\n        super(requestUrl, client, options);\n    }\n\n    /**\n     * Creates the request\n     */\n    public IItemStreamRequest buildRequest() {\n        return buildRequest(getOptions());\n    }\n\n    /**\n     * Creates the request with specific options instead of the existing options\n     */\n    public IItemStreamRequest buildRequest(final List<Option> options) {\n        return new ItemStreamRequest(getRequestUrl(), getClient(), options);\n    }\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/generated/BaseLocation.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.generated;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\nimport com.google.gson.JsonObject;\nimport com.google.gson.annotations.*;\n\n// **NOTE** This file was generated by a tool and any changes will be overwritten.\n\n/**\n * The class for the Base Location.\n */\npublic class BaseLocation implements IJsonBackedObject {\n\n    /**\n     * The Altitude.\n     */\n    @SerializedName(\"altitude\")\n    public Double altitude;\n\n    /**\n     * The Latitude.\n     */\n    @SerializedName(\"latitude\")\n    public Double latitude;\n\n    /**\n     * The Longitude.\n     */\n    @SerializedName(\"longitude\")\n    public Double longitude;\n\n\n    /**\n     * The raw representation of this class\n     */\n    private transient JsonObject mRawObject;\n\n    /**\n     * The serializer\n     */\n    private transient ISerializer mSerializer;\n\n    /**\n     * Gets the raw representation of this class\n     * @return the raw representation of this class\n     */\n    public JsonObject getRawObject() {\n        return mRawObject;\n    }\n\n    /**\n     * Gets serializer\n     * @return the serializer\n     */\n    protected ISerializer getSerializer() {\n        return mSerializer;\n    }\n\n    /**\n     * Sets the raw json object\n     *\n     * @param serializer The serializer\n     * @param json The json object to set this object to\n     */\n    public void setRawObject(final ISerializer serializer, final JsonObject json) {\n        mSerializer = serializer;\n        mRawObject = json;\n\n    }\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/generated/BaseOneDriveClient.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.generated;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\n// **NOTE** This file was generated by a tool and any changes will be overwritten.\n\n/**\n * The class for the Base One Drive Client.\n */\npublic class BaseOneDriveClient extends BaseClient implements IBaseOneDriveClient {\n\n    /**\n     * Gets the collection of Drive objects.\n     *\n     * @return The request builder for the collection of Drive objects\n     */\n    public IDriveCollectionRequestBuilder getDrives() {\n        return new DriveCollectionRequestBuilder(getServiceRoot() + \"/drives\", (IOneDriveClient)this, null);\n    }\n\n    /**\n     * Gets a single Drive.\n     *\n     * @param id The id of the Drive to retrieve.\n     * @return The request builder for the Drive object\n     */\n    public IDriveRequestBuilder getDrive(final String id) {\n        return new DriveRequestBuilder(getServiceRoot() + \"/drives/\" + id, (IOneDriveClient)this, null);\n    }\n\n    /**\n     * Gets the collection of Share objects.\n     *\n     * @return The request builder for the collection of Share objects\n     */\n    public IShareCollectionRequestBuilder getShares() {\n        return new ShareCollectionRequestBuilder(getServiceRoot() + \"/shares\", (IOneDriveClient)this, null);\n    }\n\n    /**\n     * Gets a single Share.\n     *\n     * @param id The id of the Share to retrieve.\n     * @return The request builder for the Share object\n     */\n    public IShareRequestBuilder getShare(final String id) {\n        return new ShareRequestBuilder(getServiceRoot() + \"/shares/\" + id, (IOneDriveClient)this, null);\n    }\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/generated/BaseOpenWithApp.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.generated;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\nimport com.google.gson.JsonObject;\nimport com.google.gson.annotations.*;\n\n// **NOTE** This file was generated by a tool and any changes will be overwritten.\n\n/**\n * The class for the Base Open With App.\n */\npublic class BaseOpenWithApp implements IJsonBackedObject {\n\n    /**\n     * The App.\n     */\n    @SerializedName(\"app\")\n    public Identity app;\n\n    /**\n     * The View Url.\n     */\n    @SerializedName(\"viewUrl\")\n    public String viewUrl;\n\n    /**\n     * The Edit Url.\n     */\n    @SerializedName(\"editUrl\")\n    public String editUrl;\n\n    /**\n     * The View Post Parameters.\n     */\n    @SerializedName(\"viewPostParameters\")\n    public String viewPostParameters;\n\n    /**\n     * The Edit Post Parameters.\n     */\n    @SerializedName(\"editPostParameters\")\n    public String editPostParameters;\n\n\n    /**\n     * The raw representation of this class\n     */\n    private transient JsonObject mRawObject;\n\n    /**\n     * The serializer\n     */\n    private transient ISerializer mSerializer;\n\n    /**\n     * Gets the raw representation of this class\n     * @return the raw representation of this class\n     */\n    public JsonObject getRawObject() {\n        return mRawObject;\n    }\n\n    /**\n     * Gets serializer\n     * @return the serializer\n     */\n    protected ISerializer getSerializer() {\n        return mSerializer;\n    }\n\n    /**\n     * Sets the raw json object\n     *\n     * @param serializer The serializer\n     * @param json The json object to set this object to\n     */\n    public void setRawObject(final ISerializer serializer, final JsonObject json) {\n        mSerializer = serializer;\n        mRawObject = json;\n\n    }\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/generated/BaseOpenWithSet.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.generated;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\nimport com.google.gson.JsonObject;\nimport com.google.gson.annotations.*;\n\n// **NOTE** This file was generated by a tool and any changes will be overwritten.\n\n/**\n * The class for the Base Open With Set.\n */\npublic class BaseOpenWithSet implements IJsonBackedObject {\n\n    /**\n     * The Web.\n     */\n    @SerializedName(\"web\")\n    public OpenWithApp web;\n\n    /**\n     * The Web Embed.\n     */\n    @SerializedName(\"webEmbed\")\n    public OpenWithApp webEmbed;\n\n\n    /**\n     * The raw representation of this class\n     */\n    private transient JsonObject mRawObject;\n\n    /**\n     * The serializer\n     */\n    private transient ISerializer mSerializer;\n\n    /**\n     * Gets the raw representation of this class\n     * @return the raw representation of this class\n     */\n    public JsonObject getRawObject() {\n        return mRawObject;\n    }\n\n    /**\n     * Gets serializer\n     * @return the serializer\n     */\n    protected ISerializer getSerializer() {\n        return mSerializer;\n    }\n\n    /**\n     * Sets the raw json object\n     *\n     * @param serializer The serializer\n     * @param json The json object to set this object to\n     */\n    public void setRawObject(final ISerializer serializer, final JsonObject json) {\n        mSerializer = serializer;\n        mRawObject = json;\n\n    }\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/generated/BasePermission.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.generated;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\nimport com.google.gson.JsonObject;\nimport com.google.gson.annotations.*;\n\n// **NOTE** This file was generated by a tool and any changes will be overwritten.\n\n/**\n * The class for the Base Permission.\n */\npublic class BasePermission implements IJsonBackedObject {\n\n    /**\n     * The Granted To.\n     */\n    @SerializedName(\"grantedTo\")\n    public IdentitySet grantedTo;\n\n    /**\n     * The Id.\n     */\n    @SerializedName(\"id\")\n    public String id;\n\n    /**\n     * The Invitation.\n     */\n    @SerializedName(\"invitation\")\n    public SharingInvitation invitation;\n\n    /**\n     * The Inherited From.\n     */\n    @SerializedName(\"inheritedFrom\")\n    public ItemReference inheritedFrom;\n\n    /**\n     * The Link.\n     */\n    @SerializedName(\"link\")\n    public SharingLink link;\n\n    /**\n     * The Roles.\n     */\n    @SerializedName(\"roles\")\n    public List<String> roles;\n\n    /**\n     * The Share Id.\n     */\n    @SerializedName(\"shareId\")\n    public String shareId;\n\n\n    /**\n     * The raw representation of this class\n     */\n    private transient JsonObject mRawObject;\n\n    /**\n     * The serializer\n     */\n    private transient ISerializer mSerializer;\n\n    /**\n     * Gets the raw representation of this class\n     * @return the raw representation of this class\n     */\n    public JsonObject getRawObject() {\n        return mRawObject;\n    }\n\n    /**\n     * Gets serializer\n     * @return the serializer\n     */\n    protected ISerializer getSerializer() {\n        return mSerializer;\n    }\n\n    /**\n     * Sets the raw json object\n     *\n     * @param serializer The serializer\n     * @param json The json object to set this object to\n     */\n    public void setRawObject(final ISerializer serializer, final JsonObject json) {\n        mSerializer = serializer;\n        mRawObject = json;\n\n    }\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/generated/BasePermissionCollectionPage.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\n// **NOTE** This file was generated by a tool and any changes will be overwritten.\npackage com.onedrive.sdk.generated;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\nimport com.google.gson.JsonObject;\nimport com.google.gson.annotations.*;\n\n// **NOTE** This file was generated by a tool and any changes will be overwritten.\n\n/**\n * The class for the Base Permission Collection Page.\n */\npublic class BasePermissionCollectionPage extends BaseCollectionPage<Permission, IPermissionCollectionRequestBuilder> implements IBasePermissionCollectionPage {\n\n    /**\n     * A collection page for Permission.\n     *\n     * @param response The serialized BasePermissionCollectionResponse from the OneDrive service\n     * @param builder The request builder for the next collection page\n     */\n    public BasePermissionCollectionPage(final BasePermissionCollectionResponse response, final IPermissionCollectionRequestBuilder builder) {\n        super(response.value, builder);\n    }\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/generated/BasePermissionCollectionRequest.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\n// **NOTE** This file was generated by a tool and any changes will be overwritten.\npackage com.onedrive.sdk.generated;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\n// **NOTE** This file was generated by a tool and any changes will be overwritten.\n\n/**\n * The class for the Base Permission Collection Request.\n */\npublic class BasePermissionCollectionRequest extends BaseCollectionRequest<BasePermissionCollectionResponse, IPermissionCollectionPage> implements IBasePermissionCollectionRequest {\n\n    /**\n     * The request builder for this collection of Permission\n     *\n     * @param requestUrl The request url\n     * @param client The service client\n     * @param options The options for this request\n     */\n    public BasePermissionCollectionRequest(final String requestUrl, IOneDriveClient client, final List<Option> options) {\n        super(requestUrl, client, options, BasePermissionCollectionResponse.class, IPermissionCollectionPage.class);\n    }\n\n    public void get(final ICallback<IPermissionCollectionPage> callback) {\n        final IExecutors executors = getBaseRequest().getClient().getExecutors();\n        executors.performOnBackground(new Runnable() {\n           @Override\n           public void run() {\n                try {\n                    executors.performOnForeground(get(), callback);\n                } catch (final ClientException e) {\n                    executors.performOnForeground(e, callback);\n                }\n           }\n        });\n    }\n\n    public IPermissionCollectionPage get() throws ClientException {\n        final BasePermissionCollectionResponse response = send();\n        return buildFromResponse(response);\n    }\n\n    public IPermissionCollectionRequest expand(final String value) {\n        addQueryOption(new QueryOption(\"expand\", value));\n        return (PermissionCollectionRequest)this;\n    }\n\n    public IPermissionCollectionRequest select(final String value) {\n        addQueryOption(new QueryOption(\"select\", value));\n        return (PermissionCollectionRequest)this;\n    }\n\n    public IPermissionCollectionRequest top(final int value) {\n        addQueryOption(new QueryOption(\"top\", value + \"\"));\n        return (PermissionCollectionRequest)this;\n    }\n\n    public IPermissionCollectionPage buildFromResponse(final BasePermissionCollectionResponse response) {\n        final IPermissionCollectionRequestBuilder builder;\n        if (response.nextLink != null) {\n            builder = new PermissionCollectionRequestBuilder(response.nextLink, getBaseRequest().getClient(), /* options */ null);\n        } else {\n            builder = null;\n        }\n        final PermissionCollectionPage page = new PermissionCollectionPage(response, builder);\n        page.setRawObject(response.getSerializer(), response.getRawObject());\n        return page;\n    }\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/generated/BasePermissionCollectionRequestBuilder.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.generated;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\n// **NOTE** This file was generated by a tool and any changes will be overwritten.\n\n/**\n * The class for the Base Permission Collection Request Builder.\n */\npublic class BasePermissionCollectionRequestBuilder extends BaseRequestBuilder implements IBasePermissionCollectionRequestBuilder {\n\n    /**\n     * The request builder for this collection of Item\n     *\n     * @param requestUrl The request url\n     * @param client The service client\n     * @param options The options for this request\n     */\n    public BasePermissionCollectionRequestBuilder(final String requestUrl, final IOneDriveClient client, final List<Option> options) {\n        super(requestUrl, client, options);\n    }\n\n    public IPermissionCollectionRequest buildRequest() {\n        return buildRequest(getOptions());\n    }\n\n    public IPermissionCollectionRequest buildRequest(final List<Option> options) {\n        return new PermissionCollectionRequest(getRequestUrl(), getClient(), options);\n    }\n\n    public IPermissionRequestBuilder byId(final String id) {\n        return new PermissionRequestBuilder(getRequestUrlWithAdditionalSegment(id), getClient(), getOptions());\n    }\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/generated/BasePermissionCollectionResponse.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.generated;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\nimport com.google.gson.JsonArray;\nimport com.google.gson.JsonObject;\nimport com.google.gson.annotations.*;\n\n// **NOTE** This file was generated by a tool and any changes will be overwritten.\n\n/**\n * The class for the Base Permission Collection Response.\n */\npublic class BasePermissionCollectionResponse implements IJsonBackedObject {\n\n    /**\n     * The list of Permission within this collection page\n     */\n    @SerializedName(\"value\")\n    public List<Permission> value;\n\n    /**\n     * The url to the next page of this collection, or null\n     */\n    @SerializedName(\"@odata.nextLink\")\n    public String nextLink;\n\n    /**\n     * The raw representation of this class\n     */\n    private transient JsonObject mRawObject;\n\n    /**\n     * The serializer\n     */\n    private transient ISerializer mSerializer;\n\n    /**\n     * Gets the raw representation of this class\n     * @return the raw representation of this class\n     */\n    public JsonObject getRawObject() {\n        return mRawObject;\n    }\n\n    /**\n     * Gets serializer\n     * @return the serializer\n     */\n    protected ISerializer getSerializer() {\n        return mSerializer;\n    }\n\n    /**\n     * Sets the raw json object\n     *\n     * @param serializer The serializer\n     * @param json The json object to set this object to\n     */\n    public void setRawObject(final ISerializer serializer, final JsonObject json) {\n        mSerializer = serializer;\n        mRawObject = json;\n\n\n        if (json.has(\"value\")) {\n            final JsonArray array = json.getAsJsonArray(\"value\");\n            for (int i = 0; i < array.size(); i++) {\n                value.get(i).setRawObject(mSerializer, (JsonObject) array.get(i));\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/generated/BasePermissionRequest.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.generated;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\n// **NOTE** This file was generated by a tool and any changes will be overwritten.\n\n/**\n * The class for the Base Permission Request.\n */\npublic class BasePermissionRequest extends BaseRequest implements IBasePermissionRequest {\n\n    /**\n     * The request for the Permission\n     *\n     * @param requestUrl The request url\n     * @param client The service client\n     * @param options The options for this request\n     */\n    public BasePermissionRequest(String requestUrl, IOneDriveClient client, List<Option> options) {\n        super(requestUrl, client, options, Permission.class);\n    }\n\n    public void get(final ICallback<Permission> callback) {\n        send(HttpMethod.GET, callback, null);\n    }\n\n    public Permission get() throws ClientException {\n       return send(HttpMethod.GET, null);\n    }\n\n    /**\n     * @deprecated  As of release 1.1.3, replaced by {@link #patch(Permission, ICallback)}\n     */\n    @Deprecated public void update(final Permission sourcePermission, final ICallback<Permission> callback) {\n        this.patch(sourcePermission, callback);\n    }\n\n    /**\n     * @deprecated  As of release 1.1.3, replaced by {@link #patch(Permission)}\n     */\n    @Deprecated public Permission update(final Permission sourcePermission) throws ClientException {\n        return this.patch(sourcePermission);\n    }\n\n    public void patch(final Permission sourcePermission, final ICallback<Permission> callback) {\n        send(HttpMethod.PATCH, callback, sourcePermission);\n    }\n\n    public Permission patch(final Permission sourcePermission) throws ClientException {\n        return send(HttpMethod.PATCH, sourcePermission);\n    }\n\n    public void delete(final ICallback<Void> callback) {\n        send(HttpMethod.DELETE, callback, null);\n    }\n\n    public void delete() throws ClientException {\n        send(HttpMethod.DELETE, null);\n    }\n\n    /**\n     * @deprecated  As of release 1.1.3, replaced by {@link #post(Permission, ICallback)}\n     */\n    @Deprecated public void create(final Permission newPermission, final ICallback<Permission> callback) {\n        this.post(newPermission, callback);\n    }\n\n    /**\n     * @deprecated  As of release 1.1.3, replaced by {@link #post(Permission)}\n     */\n    @Deprecated public Permission create(final Permission newPermission) throws ClientException {\n        return this.post(newPermission);\n    }\n\n    public void post(final Permission newPermission, final ICallback<Permission> callback) {\n        send(HttpMethod.POST, callback, newPermission);\n    }\n\n    public Permission post(final Permission newPermission) throws ClientException {\n        return send(HttpMethod.POST, newPermission);\n    }\n\n    public IPermissionRequest select(final String value) {\n        getQueryOptions().add(new QueryOption(\"select\", value));\n        return (PermissionRequest)this;\n    }\n\n    public IPermissionRequest top(final int value) {\n        getQueryOptions().add(new QueryOption(\"top\", value+\"\"));\n        return (PermissionRequest)this;\n    }\n\n    public IPermissionRequest expand(final String value) {\n        getQueryOptions().add(new QueryOption(\"expand\", value));\n        return (PermissionRequest)this;\n    }\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/generated/BasePermissionRequestBuilder.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.generated;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\n// **NOTE** This file was generated by a tool and any changes will be overwritten.\n\n/**\n * The class for the Base Permission Request Builder.\n */\npublic class BasePermissionRequestBuilder extends BaseRequestBuilder implements IBasePermissionRequestBuilder {\n\n    /**\n     * The request builder for the Permission\n     *\n     * @param requestUrl The request url\n     * @param client The service client\n     * @param options The options for this request\n     */\n    public BasePermissionRequestBuilder(final String requestUrl, final IOneDriveClient client, final List<Option> options) {\n        super(requestUrl, client, options);\n    }\n\n    /**\n     * Creates the request\n     */\n    public IPermissionRequest buildRequest() {\n        return buildRequest(getOptions());\n    }\n\n    /**\n     * Creates the request with specific options instead of the existing options\n     */\n    public IPermissionRequest buildRequest(final List<Option> options) {\n        return new PermissionRequest(getRequestUrl(), getClient(), options);\n    }\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/generated/BasePhoto.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.generated;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\nimport com.google.gson.JsonObject;\nimport com.google.gson.annotations.*;\n\n// **NOTE** This file was generated by a tool and any changes will be overwritten.\n\n/**\n * The class for the Base Photo.\n */\npublic class BasePhoto implements IJsonBackedObject {\n\n    /**\n     * The Camera Make.\n     */\n    @SerializedName(\"cameraMake\")\n    public String cameraMake;\n\n    /**\n     * The Camera Model.\n     */\n    @SerializedName(\"cameraModel\")\n    public String cameraModel;\n\n    /**\n     * The Exposure Denominator.\n     */\n    @SerializedName(\"exposureDenominator\")\n    public Double exposureDenominator;\n\n    /**\n     * The Exposure Numerator.\n     */\n    @SerializedName(\"exposureNumerator\")\n    public Double exposureNumerator;\n\n    /**\n     * The Focal Length.\n     */\n    @SerializedName(\"focalLength\")\n    public Double focalLength;\n\n    /**\n     * The FNumber.\n     */\n    @SerializedName(\"fNumber\")\n    public Double fNumber;\n\n    /**\n     * The Taken Date Time.\n     */\n    @SerializedName(\"takenDateTime\")\n    public java.util.Calendar takenDateTime;\n\n    /**\n     * The Iso.\n     */\n    @SerializedName(\"iso\")\n    public Integer iso;\n\n\n    /**\n     * The raw representation of this class\n     */\n    private transient JsonObject mRawObject;\n\n    /**\n     * The serializer\n     */\n    private transient ISerializer mSerializer;\n\n    /**\n     * Gets the raw representation of this class\n     * @return the raw representation of this class\n     */\n    public JsonObject getRawObject() {\n        return mRawObject;\n    }\n\n    /**\n     * Gets serializer\n     * @return the serializer\n     */\n    protected ISerializer getSerializer() {\n        return mSerializer;\n    }\n\n    /**\n     * Sets the raw json object\n     *\n     * @param serializer The serializer\n     * @param json The json object to set this object to\n     */\n    public void setRawObject(final ISerializer serializer, final JsonObject json) {\n        mSerializer = serializer;\n        mRawObject = json;\n\n    }\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/generated/BaseQuota.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.generated;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\nimport com.google.gson.JsonObject;\nimport com.google.gson.annotations.*;\n\n// **NOTE** This file was generated by a tool and any changes will be overwritten.\n\n/**\n * The class for the Base Quota.\n */\npublic class BaseQuota implements IJsonBackedObject {\n\n    /**\n     * The Deleted.\n     */\n    @SerializedName(\"deleted\")\n    public Long deleted;\n\n    /**\n     * The Remaining.\n     */\n    @SerializedName(\"remaining\")\n    public Long remaining;\n\n    /**\n     * The State.\n     */\n    @SerializedName(\"state\")\n    public String state;\n\n    /**\n     * The Total.\n     */\n    @SerializedName(\"total\")\n    public Long total;\n\n    /**\n     * The Used.\n     */\n    @SerializedName(\"used\")\n    public Long used;\n\n\n    /**\n     * The raw representation of this class\n     */\n    private transient JsonObject mRawObject;\n\n    /**\n     * The serializer\n     */\n    private transient ISerializer mSerializer;\n\n    /**\n     * Gets the raw representation of this class\n     * @return the raw representation of this class\n     */\n    public JsonObject getRawObject() {\n        return mRawObject;\n    }\n\n    /**\n     * Gets serializer\n     * @return the serializer\n     */\n    protected ISerializer getSerializer() {\n        return mSerializer;\n    }\n\n    /**\n     * Sets the raw json object\n     *\n     * @param serializer The serializer\n     * @param json The json object to set this object to\n     */\n    public void setRawObject(final ISerializer serializer, final JsonObject json) {\n        mSerializer = serializer;\n        mRawObject = json;\n\n    }\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/generated/BaseRecentCollectionPage.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.generated;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\nimport com.google.gson.JsonObject;\nimport com.google.gson.annotations.*;\n\n// **NOTE** This file was generated by a tool and any changes will be overwritten.\n\n/**\n * The class for the Base Recent Collection Page.\n */\npublic class BaseRecentCollectionPage extends BaseCollectionPage<Item, IRecentRequestBuilder> implements IBaseRecentCollectionPage {\n\n    /**\n     * A collection page for Recent.\n     *\n     * @param response The serialized BaseRecentCollectionResponse from the OneDrive service\n     * @param builder The request builder for the next collection page\n     */\n    public BaseRecentCollectionPage(final BaseRecentCollectionResponse response, final IRecentRequestBuilder builder) {\n       super(response.value, builder);\n    }\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/generated/BaseRecentCollectionResponse.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.generated;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\nimport com.google.gson.JsonArray;\nimport com.google.gson.JsonObject;\nimport com.google.gson.annotations.*;\n\n// **NOTE** This file was generated by a tool and any changes will be overwritten.\n\n/**\n * The class for the Base Recent Collection Response.\n */\npublic class BaseRecentCollectionResponse implements IJsonBackedObject {\n\n    @SerializedName(\"value\")\n    public List<Item> value;\n\n    @SerializedName(\"@odata.nextLink\")\n    public String nextLink;\n\n    /**\n     * The raw representation of this class\n     */\n    private transient JsonObject mRawObject;\n\n    /**\n     * The serializer\n     */\n    private transient ISerializer mSerializer;\n\n    /**\n     * Gets the raw representation of this class\n     * @return the raw representation of this class\n     */\n    public JsonObject getRawObject() {\n        return mRawObject;\n    }\n\n    /**\n     * Gets serializer\n     * @return the serializer\n     */\n    protected ISerializer getSerializer() {\n        return mSerializer;\n    }\n\n    /**\n     * Sets the raw json object\n     *\n     * @param serializer The serializer\n     * @param json The json object to set this object to\n     */\n    public void setRawObject(final ISerializer serializer, final JsonObject json) {\n        mSerializer = serializer;\n        mRawObject = json;\n\n\n        if (json.has(\"value\")) {\n            final JsonArray array = json.getAsJsonArray(\"value\");\n            for (int i = 0; i < array.size(); i++) {\n                value.get(i).setRawObject(mSerializer, (JsonObject) array.get(i));\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/generated/BaseRecentRequest.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.generated;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\n// **NOTE** This file was generated by a tool and any changes will be overwritten.\n\n/**\n * The class for the Base Recent Request.\n */\npublic class BaseRecentRequest extends BaseCollectionRequest<BaseRecentCollectionResponse, IRecentCollectionPage> implements IBaseRecentRequest {\n\n    /**\n     * The request for this Recent\n     *\n     * @param requestUrl The request url\n     * @param client The service client\n     * @param options The options for this request\n     */\n    public BaseRecentRequest(final String requestUrl, final IOneDriveClient client, final List<Option> options) {\n        super(requestUrl, client, options, BaseRecentCollectionResponse.class, IRecentCollectionPage.class);\n    }\n\n    public void get(final ICallback<IRecentCollectionPage> callback) {\n        final IExecutors executors = getBaseRequest().getClient().getExecutors();\n        executors.performOnBackground(new Runnable() {\n           @Override\n           public void run() {\n                try {\n                    executors.performOnForeground(get(), callback);\n                } catch (final ClientException e) {\n                    executors.performOnForeground(e, callback);\n                }\n           }\n        });\n    }\n\n    public IRecentCollectionPage get() throws ClientException {\n        final BaseRecentCollectionResponse response = send();\n        return buildFromResponse(response);\n    }\n\n    public IRecentRequest select(final String value) {\n        addQueryOption(new QueryOption(\"select\", value));\n        return (RecentRequest)this;\n    }\n\n    public IRecentRequest top(final int value) {\n        addQueryOption(new QueryOption(\"top\", value+\"\"));\n        return (RecentRequest)this;\n    }\n\n    public IRecentRequest expand(final String value) {\n        addQueryOption(new QueryOption(\"expand\", value));\n        return (RecentRequest)this;\n    }\n\n    public IRecentCollectionPage buildFromResponse(final BaseRecentCollectionResponse response) {\n        final IRecentRequestBuilder builder;\n        if (response.nextLink != null) {\n            builder = new RecentRequestBuilder(response.nextLink, getBaseRequest().getClient(), /* options */ null);\n        } else {\n            builder = null;\n        }\n        final IRecentCollectionPage page = new RecentCollectionPage(response, builder);\n        page.setRawObject(response.getSerializer(), response.getRawObject());\n        return page;\n    }\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/generated/BaseRecentRequestBuilder.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.generated;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\n// **NOTE** This file was generated by a tool and any changes will be overwritten.\n\n/**\n * The class for the Base Recent Request Builder.\n */\npublic class BaseRecentRequestBuilder extends BaseRequestBuilder {\n\n\n    /**\n     * The request builder for this Recent\n     *\n     * @param requestUrl The request url\n     * @param client The service client\n     * @param options The options for this request\n     */\n    public BaseRecentRequestBuilder(final String requestUrl, final IOneDriveClient client, final List<Option> options) {\n        super(requestUrl, client, options);\n    }\n\n    public IRecentRequest buildRequest() {\n        return buildRequest(getOptions());\n    }\n\n    public IRecentRequest buildRequest(final List<Option> options) {\n        return new RecentRequest(getRequestUrl(), getClient(), options);\n    }\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/generated/BaseSearchCollectionPage.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.generated;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\nimport com.google.gson.JsonObject;\nimport com.google.gson.annotations.*;\n\n// **NOTE** This file was generated by a tool and any changes will be overwritten.\n\n/**\n * The class for the Base Search Collection Page.\n */\npublic class BaseSearchCollectionPage extends BaseCollectionPage<Item, ISearchRequestBuilder> implements IBaseSearchCollectionPage {\n\n    /**\n     * A collection page for Search.\n     *\n     * @param response The serialized BaseSearchCollectionResponse from the OneDrive service\n     * @param builder The request builder for the next collection page\n     */\n    public BaseSearchCollectionPage(final BaseSearchCollectionResponse response, final ISearchRequestBuilder builder) {\n       super(response.value, builder);\n    }\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/generated/BaseSearchCollectionResponse.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.generated;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\nimport com.google.gson.JsonArray;\nimport com.google.gson.JsonObject;\nimport com.google.gson.annotations.*;\n\n// **NOTE** This file was generated by a tool and any changes will be overwritten.\n\n/**\n * The class for the Base Search Collection Response.\n */\npublic class BaseSearchCollectionResponse implements IJsonBackedObject {\n\n    @SerializedName(\"value\")\n    public List<Item> value;\n\n    @SerializedName(\"@odata.nextLink\")\n    public String nextLink;\n\n    /**\n     * The raw representation of this class\n     */\n    private transient JsonObject mRawObject;\n\n    /**\n     * The serializer\n     */\n    private transient ISerializer mSerializer;\n\n    /**\n     * Gets the raw representation of this class\n     * @return the raw representation of this class\n     */\n    public JsonObject getRawObject() {\n        return mRawObject;\n    }\n\n    /**\n     * Gets serializer\n     * @return the serializer\n     */\n    protected ISerializer getSerializer() {\n        return mSerializer;\n    }\n\n    /**\n     * Sets the raw json object\n     *\n     * @param serializer The serializer\n     * @param json The json object to set this object to\n     */\n    public void setRawObject(final ISerializer serializer, final JsonObject json) {\n        mSerializer = serializer;\n        mRawObject = json;\n\n\n        if (json.has(\"value\")) {\n            final JsonArray array = json.getAsJsonArray(\"value\");\n            for (int i = 0; i < array.size(); i++) {\n                value.get(i).setRawObject(mSerializer, (JsonObject) array.get(i));\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/generated/BaseSearchRequest.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.generated;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\n// **NOTE** This file was generated by a tool and any changes will be overwritten.\n\n/**\n * The class for the Base Search Request.\n */\npublic class BaseSearchRequest extends BaseCollectionRequest<BaseSearchCollectionResponse, ISearchCollectionPage> implements IBaseSearchRequest {\n\n    /**\n     * The request for this Search\n     *\n     * @param requestUrl The request url\n     * @param client The service client\n     * @param options The options for this request\n     */\n    public BaseSearchRequest(final String requestUrl, final IOneDriveClient client, final List<Option> options, final String q) {\n        super(requestUrl, client, options, BaseSearchCollectionResponse.class, ISearchCollectionPage.class);\n        if (q != null) {\n            addQueryOption(new QueryOption(\"q\", q));\n        }\n    }\n\n    public void get(final ICallback<ISearchCollectionPage> callback) {\n        final IExecutors executors = getBaseRequest().getClient().getExecutors();\n        executors.performOnBackground(new Runnable() {\n           @Override\n           public void run() {\n                try {\n                    executors.performOnForeground(get(), callback);\n                } catch (final ClientException e) {\n                    executors.performOnForeground(e, callback);\n                }\n           }\n        });\n    }\n\n    public ISearchCollectionPage get() throws ClientException {\n        final BaseSearchCollectionResponse response = send();\n        return buildFromResponse(response);\n    }\n\n    public ISearchRequest select(final String value) {\n        addQueryOption(new QueryOption(\"select\", value));\n        return (SearchRequest)this;\n    }\n\n    public ISearchRequest top(final int value) {\n        addQueryOption(new QueryOption(\"top\", value+\"\"));\n        return (SearchRequest)this;\n    }\n\n    public ISearchRequest expand(final String value) {\n        addQueryOption(new QueryOption(\"expand\", value));\n        return (SearchRequest)this;\n    }\n\n    public ISearchCollectionPage buildFromResponse(final BaseSearchCollectionResponse response) {\n        final ISearchRequestBuilder builder;\n        if (response.nextLink != null) {\n            builder = new SearchRequestBuilder(response.nextLink, getBaseRequest().getClient(), /* options */ null, /* q */ null);\n        } else {\n            builder = null;\n        }\n        final ISearchCollectionPage page = new SearchCollectionPage(response, builder);\n        page.setRawObject(response.getSerializer(), response.getRawObject());\n        return page;\n    }\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/generated/BaseSearchRequestBuilder.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.generated;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\n// **NOTE** This file was generated by a tool and any changes will be overwritten.\n\n/**\n * The class for the Base Search Request Builder.\n */\npublic class BaseSearchRequestBuilder extends BaseRequestBuilder {\n\n    public final String mQ;\n\n    /**\n     * The request builder for this Search\n     *\n     * @param requestUrl The request url\n     * @param client The service client\n     * @param options The options for this request\n     */\n    public BaseSearchRequestBuilder(final String requestUrl, final IOneDriveClient client, final List<Option> options, final String q) {\n        super(requestUrl, client, options);\n        mQ = q;\n    }\n\n    public ISearchRequest buildRequest() {\n        return buildRequest(getOptions());\n    }\n\n    public ISearchRequest buildRequest(final List<Option> options) {\n        return new SearchRequest(getRequestUrl(), getClient(), options, mQ);\n    }\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/generated/BaseSearchResult.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.generated;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\nimport com.google.gson.JsonObject;\nimport com.google.gson.annotations.*;\n\n// **NOTE** This file was generated by a tool and any changes will be overwritten.\n\n/**\n * The class for the Base Search Result.\n */\npublic class BaseSearchResult implements IJsonBackedObject {\n\n    /**\n     * The On Click Telemetry Url.\n     */\n    @SerializedName(\"onClickTelemetryUrl\")\n    public String onClickTelemetryUrl;\n\n\n    /**\n     * The raw representation of this class\n     */\n    private transient JsonObject mRawObject;\n\n    /**\n     * The serializer\n     */\n    private transient ISerializer mSerializer;\n\n    /**\n     * Gets the raw representation of this class\n     * @return the raw representation of this class\n     */\n    public JsonObject getRawObject() {\n        return mRawObject;\n    }\n\n    /**\n     * Gets serializer\n     * @return the serializer\n     */\n    protected ISerializer getSerializer() {\n        return mSerializer;\n    }\n\n    /**\n     * Sets the raw json object\n     *\n     * @param serializer The serializer\n     * @param json The json object to set this object to\n     */\n    public void setRawObject(final ISerializer serializer, final JsonObject json) {\n        mSerializer = serializer;\n        mRawObject = json;\n\n    }\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/generated/BaseShare.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.generated;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\nimport com.google.gson.JsonObject;\nimport com.google.gson.annotations.*;\n\n// **NOTE** This file was generated by a tool and any changes will be overwritten.\n\n/**\n * The class for the Base Share.\n */\npublic class BaseShare implements IJsonBackedObject {\n\n    /**\n     * The Id.\n     */\n    @SerializedName(\"id\")\n    public String id;\n\n    /**\n     * The Name.\n     */\n    @SerializedName(\"name\")\n    public String name;\n\n    /**\n     * The Owner.\n     */\n    @SerializedName(\"owner\")\n    public IdentitySet owner;\n\n    /**\n     * The Items.\n     */\n    public transient ItemCollectionPage items;\n\n\n    /**\n     * The raw representation of this class\n     */\n    private transient JsonObject mRawObject;\n\n    /**\n     * The serializer\n     */\n    private transient ISerializer mSerializer;\n\n    /**\n     * Gets the raw representation of this class\n     * @return the raw representation of this class\n     */\n    public JsonObject getRawObject() {\n        return mRawObject;\n    }\n\n    /**\n     * Gets serializer\n     * @return the serializer\n     */\n    protected ISerializer getSerializer() {\n        return mSerializer;\n    }\n\n    /**\n     * Sets the raw json object\n     *\n     * @param serializer The serializer\n     * @param json The json object to set this object to\n     */\n    public void setRawObject(final ISerializer serializer, final JsonObject json) {\n        mSerializer = serializer;\n        mRawObject = json;\n\n\n        if (json.has(\"items\")) {\n            final BaseItemCollectionResponse response = new BaseItemCollectionResponse();\n            if (json.has(\"items@odata.nextLink\")) {\n                response.nextLink = json.get(\"items@odata.nextLink\").getAsString();\n            }\n\n            final JsonObject[] sourceArray = serializer.deserializeObject(json.get(\"items\").toString(), JsonObject[].class);\n            final Item[] array = new Item[sourceArray.length];\n            for (int i = 0; i < sourceArray.length; i++) {\n                array[i] = serializer.deserializeObject(sourceArray[i].toString(), Item.class);\n                array[i].setRawObject(serializer, sourceArray[i]);\n            }\n            response.value = Arrays.asList(array);\n            items = new ItemCollectionPage(response, null);\n        }\n    }\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/generated/BaseShareCollectionPage.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\n// **NOTE** This file was generated by a tool and any changes will be overwritten.\npackage com.onedrive.sdk.generated;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\nimport com.google.gson.JsonObject;\nimport com.google.gson.annotations.*;\n\n// **NOTE** This file was generated by a tool and any changes will be overwritten.\n\n/**\n * The class for the Base Share Collection Page.\n */\npublic class BaseShareCollectionPage extends BaseCollectionPage<Share, IShareCollectionRequestBuilder> implements IBaseShareCollectionPage {\n\n    /**\n     * A collection page for Share.\n     *\n     * @param response The serialized BaseShareCollectionResponse from the OneDrive service\n     * @param builder The request builder for the next collection page\n     */\n    public BaseShareCollectionPage(final BaseShareCollectionResponse response, final IShareCollectionRequestBuilder builder) {\n        super(response.value, builder);\n    }\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/generated/BaseShareCollectionRequest.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\n// **NOTE** This file was generated by a tool and any changes will be overwritten.\npackage com.onedrive.sdk.generated;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\n// **NOTE** This file was generated by a tool and any changes will be overwritten.\n\n/**\n * The class for the Base Share Collection Request.\n */\npublic class BaseShareCollectionRequest extends BaseCollectionRequest<BaseShareCollectionResponse, IShareCollectionPage> implements IBaseShareCollectionRequest {\n\n    /**\n     * The request builder for this collection of Share\n     *\n     * @param requestUrl The request url\n     * @param client The service client\n     * @param options The options for this request\n     */\n    public BaseShareCollectionRequest(final String requestUrl, IOneDriveClient client, final List<Option> options) {\n        super(requestUrl, client, options, BaseShareCollectionResponse.class, IShareCollectionPage.class);\n    }\n\n    public IShareCollectionRequest expand(final String value) {\n        addQueryOption(new QueryOption(\"expand\", value));\n        return (ShareCollectionRequest)this;\n    }\n\n    public IShareCollectionRequest select(final String value) {\n        addQueryOption(new QueryOption(\"select\", value));\n        return (ShareCollectionRequest)this;\n    }\n\n    public IShareCollectionRequest top(final int value) {\n        addQueryOption(new QueryOption(\"top\", value + \"\"));\n        return (ShareCollectionRequest)this;\n    }\n\n    public IShareCollectionPage buildFromResponse(final BaseShareCollectionResponse response) {\n        final IShareCollectionRequestBuilder builder;\n        if (response.nextLink != null) {\n            builder = new ShareCollectionRequestBuilder(response.nextLink, getBaseRequest().getClient(), /* options */ null);\n        } else {\n            builder = null;\n        }\n        final ShareCollectionPage page = new ShareCollectionPage(response, builder);\n        page.setRawObject(response.getSerializer(), response.getRawObject());\n        return page;\n    }\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/generated/BaseShareCollectionRequestBuilder.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.generated;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\n// **NOTE** This file was generated by a tool and any changes will be overwritten.\n\n/**\n * The class for the Base Share Collection Request Builder.\n */\npublic class BaseShareCollectionRequestBuilder extends BaseRequestBuilder implements IBaseShareCollectionRequestBuilder {\n\n    /**\n     * The request builder for this collection of Share\n     *\n     * @param requestUrl The request url\n     * @param client The service client\n     * @param options The options for this request\n     */\n    public BaseShareCollectionRequestBuilder(final String requestUrl, final IOneDriveClient client, final List<Option> options) {\n        super(requestUrl, client, options);\n    }\n\n    public IShareCollectionRequest buildRequest() {\n        return buildRequest(getOptions());\n    }\n\n    public IShareCollectionRequest buildRequest(final List<Option> options) {\n        return new ShareCollectionRequest(getRequestUrl(), getClient(), options);\n    }\n\n    public IShareRequestBuilder byId(final String id) {\n        return new ShareRequestBuilder(getRequestUrlWithAdditionalSegment(id), getClient(), getOptions());\n    }\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/generated/BaseShareCollectionResponse.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.generated;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\nimport com.google.gson.JsonArray;\nimport com.google.gson.JsonObject;\nimport com.google.gson.annotations.*;\n\n// **NOTE** This file was generated by a tool and any changes will be overwritten.\n\n/**\n * The class for the Base Share Collection Response.\n */\npublic class BaseShareCollectionResponse implements IJsonBackedObject {\n\n    /**\n     * The list of Share within this collection page\n     */\n    @SerializedName(\"value\")\n    public List<Share> value;\n\n    /**\n     * The url to the next page of this collection, or null\n     */\n    @SerializedName(\"@odata.nextLink\")\n    public String nextLink;\n\n    /**\n     * The raw representation of this class\n     */\n    private transient JsonObject mRawObject;\n\n    /**\n     * The serializer\n     */\n    private transient ISerializer mSerializer;\n\n    /**\n     * Gets the raw representation of this class\n     * @return the raw representation of this class\n     */\n    public JsonObject getRawObject() {\n        return mRawObject;\n    }\n\n    /**\n     * Gets serializer\n     * @return the serializer\n     */\n    protected ISerializer getSerializer() {\n        return mSerializer;\n    }\n\n    /**\n     * Sets the raw json object\n     *\n     * @param serializer The serializer\n     * @param json The json object to set this object to\n     */\n    public void setRawObject(final ISerializer serializer, final JsonObject json) {\n        mSerializer = serializer;\n        mRawObject = json;\n\n\n        if (json.has(\"value\")) {\n            final JsonArray array = json.getAsJsonArray(\"value\");\n            for (int i = 0; i < array.size(); i++) {\n                value.get(i).setRawObject(mSerializer, (JsonObject) array.get(i));\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/generated/BaseShareRequest.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.generated;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\n// **NOTE** This file was generated by a tool and any changes will be overwritten.\n\n/**\n * The class for the Base Share Request.\n */\npublic class BaseShareRequest extends BaseRequest implements IBaseShareRequest {\n\n    /**\n     * The request for the Share\n     *\n     * @param requestUrl The request url\n     * @param client The service client\n     * @param options The options for this request\n     */\n    public BaseShareRequest(String requestUrl, IOneDriveClient client, List<Option> options) {\n        super(requestUrl, client, options, Share.class);\n    }\n\n    public void get(final ICallback<Share> callback) {\n        send(HttpMethod.GET, callback, null);\n    }\n\n    public Share get() throws ClientException {\n       return send(HttpMethod.GET, null);\n    }\n\n    /**\n     * @deprecated  As of release 1.1.3, replaced by {@link #patch(Share, ICallback)}\n     */\n    @Deprecated public void update(final Share sourceShare, final ICallback<Share> callback) {\n        this.patch(sourceShare, callback);\n    }\n\n    /**\n     * @deprecated  As of release 1.1.3, replaced by {@link #patch(Share)}\n     */\n    @Deprecated public Share update(final Share sourceShare) throws ClientException {\n        return this.patch(sourceShare);\n    }\n\n    public void patch(final Share sourceShare, final ICallback<Share> callback) {\n        send(HttpMethod.PATCH, callback, sourceShare);\n    }\n\n    public Share patch(final Share sourceShare) throws ClientException {\n        return send(HttpMethod.PATCH, sourceShare);\n    }\n\n    public void delete(final ICallback<Void> callback) {\n        send(HttpMethod.DELETE, callback, null);\n    }\n\n    public void delete() throws ClientException {\n        send(HttpMethod.DELETE, null);\n    }\n\n    /**\n     * @deprecated  As of release 1.1.3, replaced by {@link #post(Share, ICallback)}\n     */\n    @Deprecated public void create(final Share newShare, final ICallback<Share> callback) {\n        this.post(newShare, callback);\n    }\n\n    /**\n     * @deprecated  As of release 1.1.3, replaced by {@link #post(Share)}\n     */\n    @Deprecated public Share create(final Share newShare) throws ClientException {\n        return this.post(newShare);\n    }\n\n    public void post(final Share newShare, final ICallback<Share> callback) {\n        send(HttpMethod.POST, callback, newShare);\n    }\n\n    public Share post(final Share newShare) throws ClientException {\n        return send(HttpMethod.POST, newShare);\n    }\n\n    public IShareRequest select(final String value) {\n        getQueryOptions().add(new QueryOption(\"select\", value));\n        return (ShareRequest)this;\n    }\n\n    public IShareRequest top(final int value) {\n        getQueryOptions().add(new QueryOption(\"top\", value+\"\"));\n        return (ShareRequest)this;\n    }\n\n    public IShareRequest expand(final String value) {\n        getQueryOptions().add(new QueryOption(\"expand\", value));\n        return (ShareRequest)this;\n    }\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/generated/BaseShareRequestBuilder.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.generated;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\n// **NOTE** This file was generated by a tool and any changes will be overwritten.\n\n/**\n * The class for the Base Share Request Builder.\n */\npublic class BaseShareRequestBuilder extends BaseRequestBuilder implements IBaseShareRequestBuilder {\n\n    /**\n     * The request builder for the Share\n     *\n     * @param requestUrl The request url\n     * @param client The service client\n     * @param options The options for this request\n     */\n    public BaseShareRequestBuilder(final String requestUrl, final IOneDriveClient client, final List<Option> options) {\n        super(requestUrl, client, options);\n    }\n\n    /**\n     * Creates the request\n     */\n    public IShareRequest buildRequest() {\n        return buildRequest(getOptions());\n    }\n\n    /**\n     * Creates the request with specific options instead of the existing options\n     */\n    public IShareRequest buildRequest(final List<Option> options) {\n        return new ShareRequest(getRequestUrl(), getClient(), options);\n    }\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/generated/BaseShared.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.generated;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\nimport com.google.gson.JsonObject;\nimport com.google.gson.annotations.*;\n\n// **NOTE** This file was generated by a tool and any changes will be overwritten.\n\n/**\n * The class for the Base Shared.\n */\npublic class BaseShared implements IJsonBackedObject {\n\n    /**\n     * The Effective Roles.\n     */\n    @SerializedName(\"effectiveRoles\")\n    public List<String> effectiveRoles;\n\n    /**\n     * The Owner.\n     */\n    @SerializedName(\"owner\")\n    public IdentitySet owner;\n\n    /**\n     * The Scope.\n     */\n    @SerializedName(\"scope\")\n    public String scope;\n\n\n    /**\n     * The raw representation of this class\n     */\n    private transient JsonObject mRawObject;\n\n    /**\n     * The serializer\n     */\n    private transient ISerializer mSerializer;\n\n    /**\n     * Gets the raw representation of this class\n     * @return the raw representation of this class\n     */\n    public JsonObject getRawObject() {\n        return mRawObject;\n    }\n\n    /**\n     * Gets serializer\n     * @return the serializer\n     */\n    protected ISerializer getSerializer() {\n        return mSerializer;\n    }\n\n    /**\n     * Sets the raw json object\n     *\n     * @param serializer The serializer\n     * @param json The json object to set this object to\n     */\n    public void setRawObject(final ISerializer serializer, final JsonObject json) {\n        mSerializer = serializer;\n        mRawObject = json;\n\n    }\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/generated/BaseSharingInvitation.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.generated;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\nimport com.google.gson.JsonObject;\nimport com.google.gson.annotations.*;\n\n// **NOTE** This file was generated by a tool and any changes will be overwritten.\n\n/**\n * The class for the Base Sharing Invitation.\n */\npublic class BaseSharingInvitation implements IJsonBackedObject {\n\n    /**\n     * The Email.\n     */\n    @SerializedName(\"email\")\n    public String email;\n\n    /**\n     * The Invited By.\n     */\n    @SerializedName(\"invitedBy\")\n    public IdentitySet invitedBy;\n\n    /**\n     * The Sign In Required.\n     */\n    @SerializedName(\"signInRequired\")\n    public Boolean signInRequired;\n\n    /**\n     * The Send Invitation Status.\n     */\n    @SerializedName(\"sendInvitationStatus\")\n    public String sendInvitationStatus;\n\n    /**\n     * The Invite Error Resolve Url.\n     */\n    @SerializedName(\"inviteErrorResolveUrl\")\n    public String inviteErrorResolveUrl;\n\n\n    /**\n     * The raw representation of this class\n     */\n    private transient JsonObject mRawObject;\n\n    /**\n     * The serializer\n     */\n    private transient ISerializer mSerializer;\n\n    /**\n     * Gets the raw representation of this class\n     * @return the raw representation of this class\n     */\n    public JsonObject getRawObject() {\n        return mRawObject;\n    }\n\n    /**\n     * Gets serializer\n     * @return the serializer\n     */\n    protected ISerializer getSerializer() {\n        return mSerializer;\n    }\n\n    /**\n     * Sets the raw json object\n     *\n     * @param serializer The serializer\n     * @param json The json object to set this object to\n     */\n    public void setRawObject(final ISerializer serializer, final JsonObject json) {\n        mSerializer = serializer;\n        mRawObject = json;\n\n    }\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/generated/BaseSharingLink.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.generated;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\nimport com.google.gson.JsonObject;\nimport com.google.gson.annotations.*;\n\n// **NOTE** This file was generated by a tool and any changes will be overwritten.\n\n/**\n * The class for the Base Sharing Link.\n */\npublic class BaseSharingLink implements IJsonBackedObject {\n\n    /**\n     * The Application.\n     */\n    @SerializedName(\"application\")\n    public Identity application;\n\n    /**\n     * The Type.\n     */\n    @SerializedName(\"type\")\n    public String type;\n\n    /**\n     * The Web Url.\n     */\n    @SerializedName(\"webUrl\")\n    public String webUrl;\n\n    /**\n     * The Web Html.\n     */\n    @SerializedName(\"webHtml\")\n    public String webHtml;\n\n    /**\n     * The Configurator Url.\n     */\n    @SerializedName(\"configuratorUrl\")\n    public String configuratorUrl;\n\n\n    /**\n     * The raw representation of this class\n     */\n    private transient JsonObject mRawObject;\n\n    /**\n     * The serializer\n     */\n    private transient ISerializer mSerializer;\n\n    /**\n     * Gets the raw representation of this class\n     * @return the raw representation of this class\n     */\n    public JsonObject getRawObject() {\n        return mRawObject;\n    }\n\n    /**\n     * Gets serializer\n     * @return the serializer\n     */\n    protected ISerializer getSerializer() {\n        return mSerializer;\n    }\n\n    /**\n     * Sets the raw json object\n     *\n     * @param serializer The serializer\n     * @param json The json object to set this object to\n     */\n    public void setRawObject(final ISerializer serializer, final JsonObject json) {\n        mSerializer = serializer;\n        mRawObject = json;\n\n    }\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/generated/BaseSpecialFolder.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.generated;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\nimport com.google.gson.JsonObject;\nimport com.google.gson.annotations.*;\n\n// **NOTE** This file was generated by a tool and any changes will be overwritten.\n\n/**\n * The class for the Base Special Folder.\n */\npublic class BaseSpecialFolder implements IJsonBackedObject {\n\n    /**\n     * The Name.\n     */\n    @SerializedName(\"name\")\n    public String name;\n\n\n    /**\n     * The raw representation of this class\n     */\n    private transient JsonObject mRawObject;\n\n    /**\n     * The serializer\n     */\n    private transient ISerializer mSerializer;\n\n    /**\n     * Gets the raw representation of this class\n     * @return the raw representation of this class\n     */\n    public JsonObject getRawObject() {\n        return mRawObject;\n    }\n\n    /**\n     * Gets serializer\n     * @return the serializer\n     */\n    protected ISerializer getSerializer() {\n        return mSerializer;\n    }\n\n    /**\n     * Sets the raw json object\n     *\n     * @param serializer The serializer\n     * @param json The json object to set this object to\n     */\n    public void setRawObject(final ISerializer serializer, final JsonObject json) {\n        mSerializer = serializer;\n        mRawObject = json;\n\n    }\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/generated/BaseStringCollectionPage.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\n// **NOTE** This file was generated by a tool and any changes will be overwritten.\npackage com.onedrive.sdk.generated;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\nimport com.google.gson.JsonObject;\nimport com.google.gson.annotations.*;\n\n// **NOTE** This file was generated by a tool and any changes will be overwritten.\n\n/**\n * The class for the Base String Collection Page.\n */\npublic class BaseStringCollectionPage extends BaseCollectionPage<String, IStringCollectionRequestBuilder> implements IBaseStringCollectionPage {\n\n    /**\n     * A collection page for String.\n     *\n     * @param response The serialized BaseStringCollectionResponse from the OneDrive service\n     * @param builder The request builder for the next collection page\n     */\n    public BaseStringCollectionPage(final BaseStringCollectionResponse response, final IStringCollectionRequestBuilder builder) {\n        super(response.value, builder);\n    }\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/generated/BaseStringCollectionRequest.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\n// **NOTE** This file was generated by a tool and any changes will be overwritten.\npackage com.onedrive.sdk.generated;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\n// **NOTE** This file was generated by a tool and any changes will be overwritten.\n\n/**\n * The class for the Base String Collection Request.\n */\npublic class BaseStringCollectionRequest extends BaseCollectionRequest<BaseStringCollectionResponse, IStringCollectionPage> implements IBaseStringCollectionRequest {\n\n    /**\n     * The request builder for this collection of String\n     *\n     * @param requestUrl The request url\n     * @param client The service client\n     * @param options The options for this request\n     */\n    public BaseStringCollectionRequest(final String requestUrl, IOneDriveClient client, final List<Option> options) {\n        super(requestUrl, client, options, BaseStringCollectionResponse.class, IStringCollectionPage.class);\n    }\n\n    public IStringCollectionRequest expand(final String value) {\n        addQueryOption(new QueryOption(\"expand\", value));\n        return (StringCollectionRequest)this;\n    }\n\n    public IStringCollectionRequest select(final String value) {\n        addQueryOption(new QueryOption(\"select\", value));\n        return (StringCollectionRequest)this;\n    }\n\n    public IStringCollectionRequest top(final int value) {\n        addQueryOption(new QueryOption(\"top\", value + \"\"));\n        return (StringCollectionRequest)this;\n    }\n\n    public IStringCollectionPage buildFromResponse(final BaseStringCollectionResponse response) {\n        final IStringCollectionRequestBuilder builder;\n        if (response.nextLink != null) {\n            builder = new StringCollectionRequestBuilder(response.nextLink, getBaseRequest().getClient(), /* options */ null);\n        } else {\n            builder = null;\n        }\n        final StringCollectionPage page = new StringCollectionPage(response, builder);\n        page.setRawObject(response.getSerializer(), response.getRawObject());\n        return page;\n    }\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/generated/BaseStringCollectionRequestBuilder.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.generated;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\n// **NOTE** This file was generated by a tool and any changes will be overwritten.\n\n/**\n * The class for the Base String Collection Request Builder.\n */\npublic class BaseStringCollectionRequestBuilder extends BaseRequestBuilder implements IBaseStringCollectionRequestBuilder {\n\n    /**\n     * The request builder for this collection of Shared\n     *\n     * @param requestUrl The request url\n     * @param client The service client\n     * @param options The options for this request\n     */\n    public BaseStringCollectionRequestBuilder(final String requestUrl, final IOneDriveClient client, final List<Option> options) {\n        super(requestUrl, client, options);\n    }\n\n    public IStringCollectionRequest buildRequest() {\n        return buildRequest(getOptions());\n    }\n\n    public IStringCollectionRequest buildRequest(final List<Option> options) {\n        return new StringCollectionRequest(getRequestUrl(), getClient(), options);\n    }\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/generated/BaseStringCollectionResponse.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.generated;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\nimport com.google.gson.JsonArray;\nimport com.google.gson.JsonObject;\nimport com.google.gson.annotations.*;\n\n// **NOTE** This file was generated by a tool and any changes will be overwritten.\n\n/**\n * The class for the Base String Collection Response.\n */\npublic class BaseStringCollectionResponse implements IJsonBackedObject {\n\n    /**\n     * The list of String within this collection page\n     */\n    @SerializedName(\"value\")\n    public List<String> value;\n\n    /**\n     * The url to the next page of this collection, or null\n     */\n    @SerializedName(\"@odata.nextLink\")\n    public String nextLink;\n\n    /**\n     * The raw representation of this class\n     */\n    private transient JsonObject mRawObject;\n\n    /**\n     * The serializer\n     */\n    private transient ISerializer mSerializer;\n\n    /**\n     * Gets the raw representation of this class\n     * @return the raw representation of this class\n     */\n    public JsonObject getRawObject() {\n        return mRawObject;\n    }\n\n    /**\n     * Gets serializer\n     * @return the serializer\n     */\n    protected ISerializer getSerializer() {\n        return mSerializer;\n    }\n\n    /**\n     * Sets the raw json object\n     *\n     * @param serializer The serializer\n     * @param json The json object to set this object to\n     */\n    public void setRawObject(final ISerializer serializer, final JsonObject json) {\n        mSerializer = serializer;\n        mRawObject = json;\n    }\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/generated/BaseThumbnail.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.generated;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\nimport com.google.gson.JsonObject;\nimport com.google.gson.annotations.*;\n\n// **NOTE** This file was generated by a tool and any changes will be overwritten.\n\n/**\n * The class for the Base Thumbnail.\n */\npublic class BaseThumbnail implements IJsonBackedObject {\n\n    /**\n     * The Height.\n     */\n    @SerializedName(\"height\")\n    public Integer height;\n\n    /**\n     * The Url.\n     */\n    @SerializedName(\"url\")\n    public String url;\n\n    /**\n     * The Width.\n     */\n    @SerializedName(\"width\")\n    public Integer width;\n\n\n    /**\n     * The raw representation of this class\n     */\n    private transient JsonObject mRawObject;\n\n    /**\n     * The serializer\n     */\n    private transient ISerializer mSerializer;\n\n    /**\n     * Gets the raw representation of this class\n     * @return the raw representation of this class\n     */\n    public JsonObject getRawObject() {\n        return mRawObject;\n    }\n\n    /**\n     * Gets serializer\n     * @return the serializer\n     */\n    protected ISerializer getSerializer() {\n        return mSerializer;\n    }\n\n    /**\n     * Sets the raw json object\n     *\n     * @param serializer The serializer\n     * @param json The json object to set this object to\n     */\n    public void setRawObject(final ISerializer serializer, final JsonObject json) {\n        mSerializer = serializer;\n        mRawObject = json;\n\n    }\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/generated/BaseThumbnailRequest.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.generated;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\n// **NOTE** This file was generated by a tool and any changes will be overwritten.\n\n/**\n * The class for the Base Thumbnail Request.\n */\npublic class BaseThumbnailRequest extends BaseRequest implements IBaseThumbnailRequest {\n\n    /**\n     * The request for the Thumbnail\n     *\n     * @param requestUrl The request url\n     * @param client The service client\n     * @param options The options for this request\n     */\n    public BaseThumbnailRequest(String requestUrl, IOneDriveClient client, List<Option> options) {\n        super(requestUrl, client, options, Thumbnail.class);\n    }\n\n    public void get(final ICallback<Thumbnail> callback) {\n        send(HttpMethod.GET, callback, null);\n    }\n\n    public Thumbnail get() throws ClientException {\n       return send(HttpMethod.GET, null);\n    }\n\n    /**\n     * @deprecated  As of release 1.1.3, replaced by {@link #patch(Thumbnail, ICallback)}\n     */\n    @Deprecated public void update(final Thumbnail sourceThumbnail, final ICallback<Thumbnail> callback) {\n        this.patch(sourceThumbnail, callback);\n    }\n\n    /**\n     * @deprecated  As of release 1.1.3, replaced by {@link #patch(Thumbnail)}\n     */\n    @Deprecated public Thumbnail update(final Thumbnail sourceThumbnail) throws ClientException {\n        return this.patch(sourceThumbnail);\n    }\n\n    public void patch(final Thumbnail sourceThumbnail, final ICallback<Thumbnail> callback) {\n        send(HttpMethod.PATCH, callback, sourceThumbnail);\n    }\n\n    public Thumbnail patch(final Thumbnail sourceThumbnail) throws ClientException {\n        return send(HttpMethod.PATCH, sourceThumbnail);\n    }\n\n    public void delete(final ICallback<Void> callback) {\n        send(HttpMethod.DELETE, callback, null);\n    }\n\n    public void delete() throws ClientException {\n        send(HttpMethod.DELETE, null);\n    }\n\n    /**\n     * @deprecated  As of release 1.1.3, replaced by {@link #post(Thumbnail, ICallback)}\n     */\n    @Deprecated public void create(final Thumbnail newThumbnail, final ICallback<Thumbnail> callback) {\n        this.post(newThumbnail, callback);\n    }\n\n    /**\n     * @deprecated  As of release 1.1.3, replaced by {@link #post(Thumbnail)}\n     */\n    @Deprecated public Thumbnail create(final Thumbnail newThumbnail) throws ClientException {\n        return this.post(newThumbnail);\n    }\n\n    public void post(final Thumbnail newThumbnail, final ICallback<Thumbnail> callback) {\n        send(HttpMethod.POST, callback, newThumbnail);\n    }\n\n    public Thumbnail post(final Thumbnail newThumbnail) throws ClientException {\n        return send(HttpMethod.POST, newThumbnail);\n    }\n\n    public IThumbnailRequest select(final String value) {\n        getQueryOptions().add(new QueryOption(\"select\", value));\n        return (ThumbnailRequest)this;\n    }\n\n    public IThumbnailRequest top(final int value) {\n        getQueryOptions().add(new QueryOption(\"top\", value+\"\"));\n        return (ThumbnailRequest)this;\n    }\n\n    public IThumbnailRequest expand(final String value) {\n        getQueryOptions().add(new QueryOption(\"expand\", value));\n        return (ThumbnailRequest)this;\n    }\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/generated/BaseThumbnailRequestBuilder.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.generated;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\n// **NOTE** This file was generated by a tool and any changes will be overwritten.\n\n/**\n * The class for the Base Thumbnail Request Builder.\n */\npublic class BaseThumbnailRequestBuilder extends BaseRequestBuilder implements IBaseThumbnailRequestBuilder {\n\n    /**\n     * The request builder for the Thumbnail\n     *\n     * @param requestUrl The request url\n     * @param client The service client\n     * @param options The options for this request\n     */\n    public BaseThumbnailRequestBuilder(final String requestUrl, final IOneDriveClient client, final List<Option> options) {\n        super(requestUrl, client, options);\n    }\n\n    /**\n     * Creates the request\n     */\n    public IThumbnailRequest buildRequest() {\n        return buildRequest(getOptions());\n    }\n\n    /**\n     * Creates the request with specific options instead of the existing options\n     */\n    public IThumbnailRequest buildRequest(final List<Option> options) {\n        return new ThumbnailRequest(getRequestUrl(), getClient(), options);\n    }\n\n    public IThumbnailStreamRequestBuilder getContent() {\n        return new ThumbnailStreamRequestBuilder(getRequestUrlWithAdditionalSegment(\"content\"), getClient(), null);\n    }\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/generated/BaseThumbnailSet.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.generated;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\nimport com.google.gson.JsonObject;\nimport com.google.gson.annotations.*;\n\n// **NOTE** This file was generated by a tool and any changes will be overwritten.\n\n/**\n * The class for the Base Thumbnail Set.\n */\npublic class BaseThumbnailSet implements IJsonBackedObject {\n\n    /**\n     * The Id.\n     */\n    @SerializedName(\"id\")\n    public String id;\n\n    /**\n     * The Large.\n     */\n    @SerializedName(\"large\")\n    public Thumbnail large;\n\n    /**\n     * The Medium.\n     */\n    @SerializedName(\"medium\")\n    public Thumbnail medium;\n\n    /**\n     * The Small.\n     */\n    @SerializedName(\"small\")\n    public Thumbnail small;\n\n    /**\n     * The Source.\n     */\n    @SerializedName(\"source\")\n    public Thumbnail source;\n\n\n    /**\n     * The raw representation of this class\n     */\n    private transient JsonObject mRawObject;\n\n    /**\n     * The serializer\n     */\n    private transient ISerializer mSerializer;\n\n    /**\n     * Gets the raw representation of this class\n     * @return the raw representation of this class\n     */\n    public JsonObject getRawObject() {\n        return mRawObject;\n    }\n\n    /**\n     * Gets serializer\n     * @return the serializer\n     */\n    protected ISerializer getSerializer() {\n        return mSerializer;\n    }\n\n    /**\n     * Sets the raw json object\n     *\n     * @param serializer The serializer\n     * @param json The json object to set this object to\n     */\n    public void setRawObject(final ISerializer serializer, final JsonObject json) {\n        mSerializer = serializer;\n        mRawObject = json;\n\n    }\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/generated/BaseThumbnailSetCollectionPage.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\n// **NOTE** This file was generated by a tool and any changes will be overwritten.\npackage com.onedrive.sdk.generated;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\nimport com.google.gson.JsonObject;\nimport com.google.gson.annotations.*;\n\n// **NOTE** This file was generated by a tool and any changes will be overwritten.\n\n/**\n * The class for the Base Thumbnail Set Collection Page.\n */\npublic class BaseThumbnailSetCollectionPage extends BaseCollectionPage<ThumbnailSet, IThumbnailSetCollectionRequestBuilder> implements IBaseThumbnailSetCollectionPage {\n\n    /**\n     * A collection page for ThumbnailSet.\n     *\n     * @param response The serialized BaseThumbnailSetCollectionResponse from the OneDrive service\n     * @param builder The request builder for the next collection page\n     */\n    public BaseThumbnailSetCollectionPage(final BaseThumbnailSetCollectionResponse response, final IThumbnailSetCollectionRequestBuilder builder) {\n        super(response.value, builder);\n    }\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/generated/BaseThumbnailSetCollectionRequest.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\n// **NOTE** This file was generated by a tool and any changes will be overwritten.\npackage com.onedrive.sdk.generated;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\n// **NOTE** This file was generated by a tool and any changes will be overwritten.\n\n/**\n * The class for the Base Thumbnail Set Collection Request.\n */\npublic class BaseThumbnailSetCollectionRequest extends BaseCollectionRequest<BaseThumbnailSetCollectionResponse, IThumbnailSetCollectionPage> implements IBaseThumbnailSetCollectionRequest {\n\n    /**\n     * The request builder for this collection of ThumbnailSet\n     *\n     * @param requestUrl The request url\n     * @param client The service client\n     * @param options The options for this request\n     */\n    public BaseThumbnailSetCollectionRequest(final String requestUrl, IOneDriveClient client, final List<Option> options) {\n        super(requestUrl, client, options, BaseThumbnailSetCollectionResponse.class, IThumbnailSetCollectionPage.class);\n    }\n\n    public void get(final ICallback<IThumbnailSetCollectionPage> callback) {\n        final IExecutors executors = getBaseRequest().getClient().getExecutors();\n        executors.performOnBackground(new Runnable() {\n           @Override\n           public void run() {\n                try {\n                    executors.performOnForeground(get(), callback);\n                } catch (final ClientException e) {\n                    executors.performOnForeground(e, callback);\n                }\n           }\n        });\n    }\n\n    public IThumbnailSetCollectionPage get() throws ClientException {\n        final BaseThumbnailSetCollectionResponse response = send();\n        return buildFromResponse(response);\n    }\n\n    public IThumbnailSetCollectionRequest expand(final String value) {\n        addQueryOption(new QueryOption(\"expand\", value));\n        return (ThumbnailSetCollectionRequest)this;\n    }\n\n    public IThumbnailSetCollectionRequest select(final String value) {\n        addQueryOption(new QueryOption(\"select\", value));\n        return (ThumbnailSetCollectionRequest)this;\n    }\n\n    public IThumbnailSetCollectionRequest top(final int value) {\n        addQueryOption(new QueryOption(\"top\", value + \"\"));\n        return (ThumbnailSetCollectionRequest)this;\n    }\n\n    public IThumbnailSetCollectionPage buildFromResponse(final BaseThumbnailSetCollectionResponse response) {\n        final IThumbnailSetCollectionRequestBuilder builder;\n        if (response.nextLink != null) {\n            builder = new ThumbnailSetCollectionRequestBuilder(response.nextLink, getBaseRequest().getClient(), /* options */ null);\n        } else {\n            builder = null;\n        }\n        final ThumbnailSetCollectionPage page = new ThumbnailSetCollectionPage(response, builder);\n        page.setRawObject(response.getSerializer(), response.getRawObject());\n        return page;\n    }\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/generated/BaseThumbnailSetCollectionRequestBuilder.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.generated;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\n// **NOTE** This file was generated by a tool and any changes will be overwritten.\n\n/**\n * The class for the Base Thumbnail Set Collection Request Builder.\n */\npublic class BaseThumbnailSetCollectionRequestBuilder extends BaseRequestBuilder implements IBaseThumbnailSetCollectionRequestBuilder {\n\n    /**\n     * The request builder for this collection of Item\n     *\n     * @param requestUrl The request url\n     * @param client The service client\n     * @param options The options for this request\n     */\n    public BaseThumbnailSetCollectionRequestBuilder(final String requestUrl, final IOneDriveClient client, final List<Option> options) {\n        super(requestUrl, client, options);\n    }\n\n    public IThumbnailSetCollectionRequest buildRequest() {\n        return buildRequest(getOptions());\n    }\n\n    public IThumbnailSetCollectionRequest buildRequest(final List<Option> options) {\n        return new ThumbnailSetCollectionRequest(getRequestUrl(), getClient(), options);\n    }\n\n    public IThumbnailSetRequestBuilder byId(final String id) {\n        return new ThumbnailSetRequestBuilder(getRequestUrlWithAdditionalSegment(id), getClient(), getOptions());\n    }\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/generated/BaseThumbnailSetCollectionResponse.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.generated;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\nimport com.google.gson.JsonArray;\nimport com.google.gson.JsonObject;\nimport com.google.gson.annotations.*;\n\n// **NOTE** This file was generated by a tool and any changes will be overwritten.\n\n/**\n * The class for the Base Thumbnail Set Collection Response.\n */\npublic class BaseThumbnailSetCollectionResponse implements IJsonBackedObject {\n\n    /**\n     * The list of ThumbnailSet within this collection page\n     */\n    @SerializedName(\"value\")\n    public List<ThumbnailSet> value;\n\n    /**\n     * The url to the next page of this collection, or null\n     */\n    @SerializedName(\"@odata.nextLink\")\n    public String nextLink;\n\n    /**\n     * The raw representation of this class\n     */\n    private transient JsonObject mRawObject;\n\n    /**\n     * The serializer\n     */\n    private transient ISerializer mSerializer;\n\n    /**\n     * Gets the raw representation of this class\n     * @return the raw representation of this class\n     */\n    public JsonObject getRawObject() {\n        return mRawObject;\n    }\n\n    /**\n     * Gets serializer\n     * @return the serializer\n     */\n    protected ISerializer getSerializer() {\n        return mSerializer;\n    }\n\n    /**\n     * Sets the raw json object\n     *\n     * @param serializer The serializer\n     * @param json The json object to set this object to\n     */\n    public void setRawObject(final ISerializer serializer, final JsonObject json) {\n        mSerializer = serializer;\n        mRawObject = json;\n\n\n        if (json.has(\"value\")) {\n            final JsonArray array = json.getAsJsonArray(\"value\");\n            for (int i = 0; i < array.size(); i++) {\n                value.get(i).setRawObject(mSerializer, (JsonObject) array.get(i));\n            }\n        }\n    }\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/generated/BaseThumbnailSetRequest.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.generated;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\n// **NOTE** This file was generated by a tool and any changes will be overwritten.\n\n/**\n * The class for the Base Thumbnail Set Request.\n */\npublic class BaseThumbnailSetRequest extends BaseRequest implements IBaseThumbnailSetRequest {\n\n    /**\n     * The request for the ThumbnailSet\n     *\n     * @param requestUrl The request url\n     * @param client The service client\n     * @param options The options for this request\n     */\n    public BaseThumbnailSetRequest(String requestUrl, IOneDriveClient client, List<Option> options) {\n        super(requestUrl, client, options, ThumbnailSet.class);\n    }\n\n    public void get(final ICallback<ThumbnailSet> callback) {\n        send(HttpMethod.GET, callback, null);\n    }\n\n    public ThumbnailSet get() throws ClientException {\n       return send(HttpMethod.GET, null);\n    }\n\n    /**\n     * @deprecated  As of release 1.1.3, replaced by {@link #patch(ThumbnailSet, ICallback)}\n     */\n    @Deprecated public void update(final ThumbnailSet sourceThumbnailSet, final ICallback<ThumbnailSet> callback) {\n        this.patch(sourceThumbnailSet, callback);\n    }\n\n    /**\n     * @deprecated  As of release 1.1.3, replaced by {@link #patch(ThumbnailSet)}\n     */\n    @Deprecated public ThumbnailSet update(final ThumbnailSet sourceThumbnailSet) throws ClientException {\n        return this.patch(sourceThumbnailSet);\n    }\n\n    public void patch(final ThumbnailSet sourceThumbnailSet, final ICallback<ThumbnailSet> callback) {\n        send(HttpMethod.PATCH, callback, sourceThumbnailSet);\n    }\n\n    public ThumbnailSet patch(final ThumbnailSet sourceThumbnailSet) throws ClientException {\n        return send(HttpMethod.PATCH, sourceThumbnailSet);\n    }\n\n    public void delete(final ICallback<Void> callback) {\n        send(HttpMethod.DELETE, callback, null);\n    }\n\n    public void delete() throws ClientException {\n        send(HttpMethod.DELETE, null);\n    }\n\n    /**\n     * @deprecated  As of release 1.1.3, replaced by {@link #post(ThumbnailSet, ICallback)}\n     */\n    @Deprecated public void create(final ThumbnailSet newThumbnailSet, final ICallback<ThumbnailSet> callback) {\n        this.post(newThumbnailSet, callback);\n    }\n\n    /**\n     * @deprecated  As of release 1.1.3, replaced by {@link #post(ThumbnailSet)}\n     */\n    @Deprecated public ThumbnailSet create(final ThumbnailSet newThumbnailSet) throws ClientException {\n        return this.post(newThumbnailSet);\n    }\n\n    public void post(final ThumbnailSet newThumbnailSet, final ICallback<ThumbnailSet> callback) {\n        send(HttpMethod.POST, callback, newThumbnailSet);\n    }\n\n    public ThumbnailSet post(final ThumbnailSet newThumbnailSet) throws ClientException {\n        return send(HttpMethod.POST, newThumbnailSet);\n    }\n\n    public IThumbnailSetRequest select(final String value) {\n        getQueryOptions().add(new QueryOption(\"select\", value));\n        return (ThumbnailSetRequest)this;\n    }\n\n    public IThumbnailSetRequest top(final int value) {\n        getQueryOptions().add(new QueryOption(\"top\", value+\"\"));\n        return (ThumbnailSetRequest)this;\n    }\n\n    public IThumbnailSetRequest expand(final String value) {\n        getQueryOptions().add(new QueryOption(\"expand\", value));\n        return (ThumbnailSetRequest)this;\n    }\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/generated/BaseThumbnailSetRequestBuilder.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.generated;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\n// **NOTE** This file was generated by a tool and any changes will be overwritten.\n\n/**\n * The class for the Base Thumbnail Set Request Builder.\n */\npublic class BaseThumbnailSetRequestBuilder extends BaseRequestBuilder implements IBaseThumbnailSetRequestBuilder {\n\n    /**\n     * The request builder for the ThumbnailSet\n     *\n     * @param requestUrl The request url\n     * @param client The service client\n     * @param options The options for this request\n     */\n    public BaseThumbnailSetRequestBuilder(final String requestUrl, final IOneDriveClient client, final List<Option> options) {\n        super(requestUrl, client, options);\n    }\n\n    /**\n     * Creates the request\n     */\n    public IThumbnailSetRequest buildRequest() {\n        return buildRequest(getOptions());\n    }\n\n    /**\n     * Creates the request with specific options instead of the existing options\n     */\n    public IThumbnailSetRequest buildRequest(final List<Option> options) {\n        return new ThumbnailSetRequest(getRequestUrl(), getClient(), options);\n    }\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/generated/BaseThumbnailStreamRequest.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.generated;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\nimport java.io.*;\n\n// **NOTE** This file was generated by a tool and any changes will be overwritten.\n\n/**\n * The class for the Base Thumbnail Stream Request.\n */\npublic class BaseThumbnailStreamRequest extends BaseStreamRequest<Thumbnail> implements IBaseThumbnailStreamRequest {\n\n    /**\n     * The request for this ThumbnailStream\n     *\n     * @param requestUrl The request url\n     * @param client The service client\n     * @param options The options for this request\n     */\n    public BaseThumbnailStreamRequest(String requestUrl, IOneDriveClient client, List<Option> options) {\n        super(requestUrl, client, options, Thumbnail.class);\n    }\n\n    public void get(final ICallback<InputStream> callback) {\n        send(callback);\n    }\n\n    public InputStream get() throws ClientException {\n       return send();\n    }\n\n    public void put(final byte[] fileContents, final ICallback<Thumbnail> callback) {\n        send(fileContents, callback);\n    }\n\n    public Thumbnail put(final byte[] fileContents) throws ClientException {\n        return send(fileContents);\n    }\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/generated/BaseThumbnailStreamRequestBuilder.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.generated;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\n// **NOTE** This file was generated by a tool and any changes will be overwritten.\n\n/**\n * The class for the Base Thumbnail Stream Request Builder.\n */\npublic class BaseThumbnailStreamRequestBuilder extends BaseRequestBuilder implements IBaseThumbnailStreamRequestBuilder {\n\n    /**\n     * The request builder for the ThumbnailStream\n     *\n     * @param requestUrl The request url\n     * @param client The service client\n     * @param options The options for this request\n     */\n    public BaseThumbnailStreamRequestBuilder(final String requestUrl, final IOneDriveClient client, final List<Option> options) {\n        super(requestUrl, client, options);\n    }\n\n    /**\n     * Creates the request\n     */\n    public IThumbnailStreamRequest buildRequest() {\n        return buildRequest(getOptions());\n    }\n\n    /**\n     * Creates the request with specific options instead of the existing options\n     */\n    public IThumbnailStreamRequest buildRequest(final List<Option> options) {\n        return new ThumbnailStreamRequest(getRequestUrl(), getClient(), options);\n    }\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/generated/BaseUploadSession.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.generated;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\nimport com.google.gson.JsonObject;\nimport com.google.gson.annotations.*;\n\n// **NOTE** This file was generated by a tool and any changes will be overwritten.\n\n/**\n * The class for the Base Upload Session.\n */\npublic class BaseUploadSession implements IJsonBackedObject {\n\n    /**\n     * The Upload Url.\n     */\n    @SerializedName(\"uploadUrl\")\n    public String uploadUrl;\n\n    /**\n     * The Expiration Date Time.\n     */\n    @SerializedName(\"expirationDateTime\")\n    public java.util.Calendar expirationDateTime;\n\n    /**\n     * The Next Expected Ranges.\n     */\n    @SerializedName(\"nextExpectedRanges\")\n    public List<String> nextExpectedRanges;\n\n\n    /**\n     * The raw representation of this class\n     */\n    private transient JsonObject mRawObject;\n\n    /**\n     * The serializer\n     */\n    private transient ISerializer mSerializer;\n\n    /**\n     * Gets the raw representation of this class\n     * @return the raw representation of this class\n     */\n    public JsonObject getRawObject() {\n        return mRawObject;\n    }\n\n    /**\n     * Gets serializer\n     * @return the serializer\n     */\n    protected ISerializer getSerializer() {\n        return mSerializer;\n    }\n\n    /**\n     * Sets the raw json object\n     *\n     * @param serializer The serializer\n     * @param json The json object to set this object to\n     */\n    public void setRawObject(final ISerializer serializer, final JsonObject json) {\n        mSerializer = serializer;\n        mRawObject = json;\n\n    }\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/generated/BaseVideo.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.generated;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\nimport com.google.gson.JsonObject;\nimport com.google.gson.annotations.*;\n\n// **NOTE** This file was generated by a tool and any changes will be overwritten.\n\n/**\n * The class for the Base Video.\n */\npublic class BaseVideo implements IJsonBackedObject {\n\n    /**\n     * The Bitrate.\n     */\n    @SerializedName(\"bitrate\")\n    public Integer bitrate;\n\n    /**\n     * The Duration.\n     */\n    @SerializedName(\"duration\")\n    public Long duration;\n\n    /**\n     * The Height.\n     */\n    @SerializedName(\"height\")\n    public Integer height;\n\n    /**\n     * The Width.\n     */\n    @SerializedName(\"width\")\n    public Integer width;\n\n\n    /**\n     * The raw representation of this class\n     */\n    private transient JsonObject mRawObject;\n\n    /**\n     * The serializer\n     */\n    private transient ISerializer mSerializer;\n\n    /**\n     * Gets the raw representation of this class\n     * @return the raw representation of this class\n     */\n    public JsonObject getRawObject() {\n        return mRawObject;\n    }\n\n    /**\n     * Gets serializer\n     * @return the serializer\n     */\n    protected ISerializer getSerializer() {\n        return mSerializer;\n    }\n\n    /**\n     * Sets the raw json object\n     *\n     * @param serializer The serializer\n     * @param json The json object to set this object to\n     */\n    public void setRawObject(final ISerializer serializer, final JsonObject json) {\n        mSerializer = serializer;\n        mRawObject = json;\n\n    }\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/generated/IBaseCopyRequest.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.generated;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\nimport com.google.gson.JsonObject;\nimport com.google.gson.annotations.*;\n\n// **NOTE** This file was generated by a tool and any changes will be overwritten.\n\n/**\n * The interface for the Base Copy Request.\n */\npublic interface IBaseCopyRequest {\n\n    /**\n     * @deprecated  As of release 1.1.3, replaced by {@link #post(ICallback)}\n     */\n    @Deprecated void create(final ICallback<AsyncMonitor<Item>> callback);\n\n    /**\n     * @deprecated  As of release 1.1.3, replaced by {@link #post()}\n     */\n    @Deprecated AsyncMonitor<Item> create() throws ClientException;\n\n    void post(final ICallback<AsyncMonitor<Item>> callback);\n\n    AsyncMonitor<Item> post() throws ClientException;\n\n    ICopyRequest select(final String value) ;\n\n    ICopyRequest top(final int value);\n\n    ICopyRequest expand(final String value);\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/generated/IBaseCopyRequestBuilder.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.generated;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\n// **NOTE** This file was generated by a tool and any changes will be overwritten.\n\n/**\n * The interface for the Base Copy Request Builder.\n */\npublic interface IBaseCopyRequestBuilder extends IRequestBuilder {\n\n    ICopyRequest buildRequest();\n\n    ICopyRequest buildRequest(final List<Option> options);\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/generated/IBaseCreateLinkRequest.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.generated;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\nimport com.google.gson.JsonObject;\nimport com.google.gson.annotations.*;\n\n// **NOTE** This file was generated by a tool and any changes will be overwritten.\n\n/**\n * The interface for the Base Create Link Request.\n */\npublic interface IBaseCreateLinkRequest {\n\n    /**\n     * @deprecated  As of release 1.1.3, replaced by {@link #post(ICallback)}\n     */\n    @Deprecated void create(final ICallback<Permission> callback);\n\n    /**\n     * @deprecated  As of release 1.1.3, replaced by {@link #post()}\n     */\n    @Deprecated Permission create() throws ClientException;\n\n    void post(final ICallback<Permission> callback);\n\n    Permission post() throws ClientException;\n\n    ICreateLinkRequest select(final String value) ;\n\n    ICreateLinkRequest top(final int value);\n\n    ICreateLinkRequest expand(final String value);\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/generated/IBaseCreateLinkRequestBuilder.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.generated;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\n// **NOTE** This file was generated by a tool and any changes will be overwritten.\n\n/**\n * The interface for the Base Create Link Request Builder.\n */\npublic interface IBaseCreateLinkRequestBuilder extends IRequestBuilder {\n\n    ICreateLinkRequest buildRequest();\n\n    ICreateLinkRequest buildRequest(final List<Option> options);\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/generated/IBaseCreateSessionRequest.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.generated;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\nimport com.google.gson.JsonObject;\nimport com.google.gson.annotations.*;\n\n// **NOTE** This file was generated by a tool and any changes will be overwritten.\n\n/**\n * The interface for the Base Create Session Request.\n */\npublic interface IBaseCreateSessionRequest {\n\n    /**\n     * @deprecated  As of release 1.1.3, replaced by {@link #post(ICallback)}\n     */\n    @Deprecated void create(final ICallback<UploadSession> callback);\n\n    /**\n     * @deprecated  As of release 1.1.3, replaced by {@link #post()}\n     */\n    @Deprecated UploadSession create() throws ClientException;\n\n    void post(final ICallback<UploadSession> callback);\n\n    UploadSession post() throws ClientException;\n\n    ICreateSessionRequest select(final String value) ;\n\n    ICreateSessionRequest top(final int value);\n\n    ICreateSessionRequest expand(final String value);\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/generated/IBaseCreateSessionRequestBuilder.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.generated;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\n// **NOTE** This file was generated by a tool and any changes will be overwritten.\n\n/**\n * The interface for the Base Create Session Request Builder.\n */\npublic interface IBaseCreateSessionRequestBuilder extends IRequestBuilder {\n\n    ICreateSessionRequest buildRequest();\n\n    ICreateSessionRequest buildRequest(final List<Option> options);\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/generated/IBaseDeltaCollectionPage.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.generated;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\nimport com.google.gson.JsonObject;\n\n// **NOTE** This file was generated by a tool and any changes will be overwritten.\n\n/**\n * The interface for the Base Delta Collection Page.\n */\npublic interface IBaseDeltaCollectionPage extends IBaseCollectionPage<Item, IDeltaRequestBuilder> {\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/generated/IBaseDeltaRequest.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.generated;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\nimport com.google.gson.JsonObject;\nimport com.google.gson.annotations.*;\n\n// **NOTE** This file was generated by a tool and any changes will be overwritten.\n\n/**\n * The interface for the Base Delta Request.\n */\npublic interface IBaseDeltaRequest {\n    void get(final ICallback<IDeltaCollectionPage> callback);\n\n    IDeltaCollectionPage get() throws ClientException;\n\n    IDeltaRequest select(final String value) ;\n\n    IDeltaRequest top(final int value);\n\n    IDeltaRequest expand(final String value);\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/generated/IBaseDeltaRequestBuilder.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.generated;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\n// **NOTE** This file was generated by a tool and any changes will be overwritten.\n\n/**\n * The interface for the Base Delta Request Builder.\n */\npublic interface IBaseDeltaRequestBuilder extends IRequestBuilder {\n\n    IDeltaRequest buildRequest();\n\n    IDeltaRequest buildRequest(final List<Option> options);\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/generated/IBaseDriveCollectionPage.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.generated;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\nimport com.google.gson.JsonObject;\n\n// **NOTE** This file was generated by a tool and any changes will be overwritten.\n\n/**\n * The interface for the Base Drive Collection Page.\n */\npublic interface IBaseDriveCollectionPage extends IBaseCollectionPage<Drive, IDriveCollectionRequestBuilder> {\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/generated/IBaseDriveCollectionRequest.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.generated;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\n// **NOTE** This file was generated by a tool and any changes will be overwritten.\n\n/**\n * The interface for the Base Drive Collection Request.\n */\npublic interface IBaseDriveCollectionRequest {\n\n    void get(final ICallback<IDriveCollectionPage> callback);\n\n    IDriveCollectionPage get() throws ClientException;\n\n    IDriveCollectionRequest expand(final String value);\n\n    IDriveCollectionRequest select(final String value);\n\n    IDriveCollectionRequest top(final int value);\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/generated/IBaseDriveCollectionRequestBuilder.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.generated;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\n// **NOTE** This file was generated by a tool and any changes will be overwritten.\n\n/**\n * The interface for the Base Drive Collection Request Builder.\n */\npublic interface IBaseDriveCollectionRequestBuilder extends IRequestBuilder {\n\n    IDriveCollectionRequest buildRequest();\n\n    IDriveCollectionRequest buildRequest(final List<Option> options);\n\n    IDriveRequestBuilder byId(final String id);\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/generated/IBaseDriveRequest.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.generated;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\n// **NOTE** This file was generated by a tool and any changes will be overwritten.\n\n/**\n * The interface for the Base Drive Request.\n */\npublic interface IBaseDriveRequest extends IHttpRequest {\n\n    void get(final ICallback<Drive> callback);\n\n    Drive get() throws ClientException;\n\n    /**\n     * @deprecated  As of release 1.1.3, replaced by {@link #patch(Drive, ICallback)}\n     */\n    @Deprecated void update(final Drive sourceDrive, final ICallback<Drive> callback);\n\n    /**\n     * @deprecated  As of release 1.1.3, replaced by {@link #patch(Drive)}\n     */\n    @Deprecated Drive update(final Drive sourceDrive) throws ClientException;\n\n    void patch(final Drive sourceDrive, final ICallback<Drive> callback);\n\n    Drive patch(final Drive sourceDrive) throws ClientException;\n\n    void delete(final ICallback<Void> callback);\n\n    void delete()  throws ClientException;\n\n    /**\n     * @deprecated  As of release 1.1.3, replaced by {@link #post(Drive, ICallback)}\n     */\n    @Deprecated void create(final Drive newDrive, final ICallback<Drive> callback);\n\n    /**\n     * @deprecated  As of release 1.1.3, replaced by {@link #post(Drive)}\n     */\n    @Deprecated Drive create(final Drive newDrive) throws ClientException;\n\n    void post(final Drive newDrive, final ICallback<Drive> callback);\n\n    Drive post(final Drive newDrive) throws ClientException;\n\n    IBaseDriveRequest select(final String value);\n\n    IBaseDriveRequest top(final int value);\n\n    IBaseDriveRequest expand(final String value);\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/generated/IBaseDriveRequestBuilder.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.generated;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\n// **NOTE** This file was generated by a tool and any changes will be overwritten.\n\n/**\n * The interface for the Base Drive Request Builder.\n */\npublic interface IBaseDriveRequestBuilder extends IRequestBuilder {\n\n    /**\n     * Creates the request\n     */\n    IDriveRequest buildRequest();\n\n    /**\n     * Creates the request with specific options instead of the existing options\n     */\n    IDriveRequest buildRequest(final List<Option> options);\n\n    IItemRequestBuilder getItems(final String id);\n\n    IItemRequestBuilder getShared(final String id);\n\n    IItemRequestBuilder getSpecial(final String id);\n\n    IRecentRequestBuilder getRecent();\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/generated/IBaseItemCollectionPage.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.generated;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\nimport com.google.gson.JsonObject;\n\n// **NOTE** This file was generated by a tool and any changes will be overwritten.\n\n/**\n * The interface for the Base Item Collection Page.\n */\npublic interface IBaseItemCollectionPage extends IBaseCollectionPage<Item, IItemCollectionRequestBuilder> {\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/generated/IBaseItemCollectionRequest.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.generated;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\n// **NOTE** This file was generated by a tool and any changes will be overwritten.\n\n/**\n * The interface for the Base Item Collection Request.\n */\npublic interface IBaseItemCollectionRequest {\n\n    void get(final ICallback<IItemCollectionPage> callback);\n\n    IItemCollectionPage get() throws ClientException;\n\n    /**\n     * @deprecated  As of release 1.1.3, replaced by {@link #post(Item, ICallback)}\n     */\n    @Deprecated void create(final Item newItem, final ICallback<Item> callback);\n\n    /**\n     * @deprecated  As of release 1.1.3, replaced by {@link #post(Item)}\n     */\n    @Deprecated Item create(final Item newItem) throws ClientException;\n\n    void post(final Item newItem, final ICallback<Item> callback);\n\n    Item post(final Item newItem) throws ClientException;\n\n    IItemCollectionRequest expand(final String value);\n\n    IItemCollectionRequest select(final String value);\n\n    IItemCollectionRequest top(final int value);\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/generated/IBaseItemCollectionRequestBuilder.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.generated;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\n// **NOTE** This file was generated by a tool and any changes will be overwritten.\n\n/**\n * The interface for the Base Item Collection Request Builder.\n */\npublic interface IBaseItemCollectionRequestBuilder extends IRequestBuilder {\n\n    IItemCollectionRequest buildRequest();\n\n    IItemCollectionRequest buildRequest(final List<Option> options);\n\n    IItemRequestBuilder byId(final String id);\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/generated/IBaseItemRequest.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.generated;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\n// **NOTE** This file was generated by a tool and any changes will be overwritten.\n\n/**\n * The interface for the Base Item Request.\n */\npublic interface IBaseItemRequest extends IHttpRequest {\n\n    void get(final ICallback<Item> callback);\n\n    Item get() throws ClientException;\n\n    /**\n     * @deprecated  As of release 1.1.3, replaced by {@link #patch(Item, ICallback)}\n     */\n    @Deprecated void update(final Item sourceItem, final ICallback<Item> callback);\n\n    /**\n     * @deprecated  As of release 1.1.3, replaced by {@link #patch(Item)}\n     */\n    @Deprecated Item update(final Item sourceItem) throws ClientException;\n\n    void patch(final Item sourceItem, final ICallback<Item> callback);\n\n    Item patch(final Item sourceItem) throws ClientException;\n\n    void delete(final ICallback<Void> callback);\n\n    void delete()  throws ClientException;\n\n    /**\n     * @deprecated  As of release 1.1.3, replaced by {@link #post(Item, ICallback)}\n     */\n    @Deprecated void create(final Item newItem, final ICallback<Item> callback);\n\n    /**\n     * @deprecated  As of release 1.1.3, replaced by {@link #post(Item)}\n     */\n    @Deprecated Item create(final Item newItem) throws ClientException;\n\n    void post(final Item newItem, final ICallback<Item> callback);\n\n    Item post(final Item newItem) throws ClientException;\n\n    IBaseItemRequest select(final String value);\n\n    IBaseItemRequest top(final int value);\n\n    IBaseItemRequest expand(final String value);\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/generated/IBaseItemRequestBuilder.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.generated;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\n// **NOTE** This file was generated by a tool and any changes will be overwritten.\n\n/**\n * The interface for the Base Item Request Builder.\n */\npublic interface IBaseItemRequestBuilder extends IRequestBuilder {\n\n    /**\n     * Creates the request\n     */\n    IItemRequest buildRequest();\n\n    /**\n     * Creates the request with specific options instead of the existing options\n     */\n    IItemRequest buildRequest(final List<Option> options);\n\n    IPermissionCollectionRequestBuilder getPermissions();\n\n    IPermissionRequestBuilder getPermissions(final String id);\n\n    IItemCollectionRequestBuilder getChildren();\n\n    IItemRequestBuilder getChildren(final String id);\n\n    IThumbnailSetCollectionRequestBuilder getThumbnails();\n\n    IThumbnailSetRequestBuilder getThumbnails(final String id);\n\n    IItemStreamRequestBuilder getContent();\n\n    ICreateSessionRequestBuilder getCreateSession(final ChunkedUploadSessionDescriptor item);\n\n    ICopyRequestBuilder getCopy(final String name, final ItemReference parentReference);\n\n    ICreateLinkRequestBuilder getCreateLink(final String type);\n\n    IDeltaRequestBuilder getDelta(final String token);\n\n    ISearchRequestBuilder getSearch(final String q);\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/generated/IBaseItemStreamRequest.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.generated;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\nimport java.io.*;\n\n// **NOTE** This file was generated by a tool and any changes will be overwritten.\n\n/**\n * The interface for the Base Item Stream Request.\n */\npublic interface IBaseItemStreamRequest extends IHttpStreamRequest {\n\n    void get(final ICallback<InputStream> callback);\n\n    InputStream get() throws ClientException;\n\n    void put(final byte[] fileContents, final ICallback<Item> callback);\n\n    Item put(final byte[] fileContents) throws ClientException;\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/generated/IBaseItemStreamRequestBuilder.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.generated;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\n// **NOTE** This file was generated by a tool and any changes will be overwritten.\n\n/**\n * The interface for the Base Item Stream Request Builder.\n */\npublic interface IBaseItemStreamRequestBuilder extends IRequestBuilder {\n\n    /**\n     * Creates the request\n     */\n    IItemStreamRequest buildRequest();\n\n    /**\n     * Creates the request with specific options instead of the existing options\n     */\n    IItemStreamRequest buildRequest(final List<Option> options);\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/generated/IBaseOneDriveClient.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.generated;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\n// **NOTE** This file was generated by a tool and any changes will be overwritten.\n\n/**\n * The interface for the Base One Drive Client.\n */\npublic interface IBaseOneDriveClient extends IBaseClient {\n\n    /**\n     * Gets the collection of Drive objects.\n     *\n     * @return The request builder for the collection of Drive objects\n     */\n    IDriveCollectionRequestBuilder getDrives();\n\n    /**\n     * Gets a single Drive.\n     *\n     * @param id The id of the Drive to retrieve.\n     * @return The request builder for the Drive object\n     */\n    IDriveRequestBuilder getDrive(final String id);\n\n    /**\n     * Gets the collection of Share objects.\n     *\n     * @return The request builder for the collection of Share objects\n     */\n    IShareCollectionRequestBuilder getShares();\n\n    /**\n     * Gets a single Share.\n     *\n     * @param id The id of the Share to retrieve.\n     * @return The request builder for the Share object\n     */\n    IShareRequestBuilder getShare(final String id);\n\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/generated/IBasePermissionCollectionPage.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.generated;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\nimport com.google.gson.JsonObject;\n\n// **NOTE** This file was generated by a tool and any changes will be overwritten.\n\n/**\n * The interface for the Base Permission Collection Page.\n */\npublic interface IBasePermissionCollectionPage extends IBaseCollectionPage<Permission, IPermissionCollectionRequestBuilder> {\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/generated/IBasePermissionCollectionRequest.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.generated;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\n// **NOTE** This file was generated by a tool and any changes will be overwritten.\n\n/**\n * The interface for the Base Permission Collection Request.\n */\npublic interface IBasePermissionCollectionRequest {\n\n    void get(final ICallback<IPermissionCollectionPage> callback);\n\n    IPermissionCollectionPage get() throws ClientException;\n\n    IPermissionCollectionRequest expand(final String value);\n\n    IPermissionCollectionRequest select(final String value);\n\n    IPermissionCollectionRequest top(final int value);\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/generated/IBasePermissionCollectionRequestBuilder.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.generated;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\n// **NOTE** This file was generated by a tool and any changes will be overwritten.\n\n/**\n * The interface for the Base Permission Collection Request Builder.\n */\npublic interface IBasePermissionCollectionRequestBuilder extends IRequestBuilder {\n\n    IPermissionCollectionRequest buildRequest();\n\n    IPermissionCollectionRequest buildRequest(final List<Option> options);\n\n    IPermissionRequestBuilder byId(final String id);\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/generated/IBasePermissionRequest.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.generated;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\n// **NOTE** This file was generated by a tool and any changes will be overwritten.\n\n/**\n * The interface for the Base Permission Request.\n */\npublic interface IBasePermissionRequest extends IHttpRequest {\n\n    void get(final ICallback<Permission> callback);\n\n    Permission get() throws ClientException;\n\n    /**\n     * @deprecated  As of release 1.1.3, replaced by {@link #patch(Permission, ICallback)}\n     */\n    @Deprecated void update(final Permission sourcePermission, final ICallback<Permission> callback);\n\n    /**\n     * @deprecated  As of release 1.1.3, replaced by {@link #patch(Permission)}\n     */\n    @Deprecated Permission update(final Permission sourcePermission) throws ClientException;\n\n    void patch(final Permission sourcePermission, final ICallback<Permission> callback);\n\n    Permission patch(final Permission sourcePermission) throws ClientException;\n\n    void delete(final ICallback<Void> callback);\n\n    void delete()  throws ClientException;\n\n    /**\n     * @deprecated  As of release 1.1.3, replaced by {@link #post(Permission, ICallback)}\n     */\n    @Deprecated void create(final Permission newPermission, final ICallback<Permission> callback);\n\n    /**\n     * @deprecated  As of release 1.1.3, replaced by {@link #post(Permission)}\n     */\n    @Deprecated Permission create(final Permission newPermission) throws ClientException;\n\n    void post(final Permission newPermission, final ICallback<Permission> callback);\n\n    Permission post(final Permission newPermission) throws ClientException;\n\n    IBasePermissionRequest select(final String value);\n\n    IBasePermissionRequest top(final int value);\n\n    IBasePermissionRequest expand(final String value);\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/generated/IBasePermissionRequestBuilder.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.generated;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\n// **NOTE** This file was generated by a tool and any changes will be overwritten.\n\n/**\n * The interface for the Base Permission Request Builder.\n */\npublic interface IBasePermissionRequestBuilder extends IRequestBuilder {\n\n    /**\n     * Creates the request\n     */\n    IPermissionRequest buildRequest();\n\n    /**\n     * Creates the request with specific options instead of the existing options\n     */\n    IPermissionRequest buildRequest(final List<Option> options);\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/generated/IBaseRecentCollectionPage.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.generated;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\nimport com.google.gson.JsonObject;\n\n// **NOTE** This file was generated by a tool and any changes will be overwritten.\n\n/**\n * The interface for the Base Recent Collection Page.\n */\npublic interface IBaseRecentCollectionPage extends IBaseCollectionPage<Item, IRecentRequestBuilder> {\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/generated/IBaseRecentRequest.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.generated;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\nimport com.google.gson.JsonObject;\nimport com.google.gson.annotations.*;\n\n// **NOTE** This file was generated by a tool and any changes will be overwritten.\n\n/**\n * The interface for the Base Recent Request.\n */\npublic interface IBaseRecentRequest {\n    void get(final ICallback<IRecentCollectionPage> callback);\n\n    IRecentCollectionPage get() throws ClientException;\n\n    IRecentRequest select(final String value) ;\n\n    IRecentRequest top(final int value);\n\n    IRecentRequest expand(final String value);\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/generated/IBaseRecentRequestBuilder.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.generated;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\n// **NOTE** This file was generated by a tool and any changes will be overwritten.\n\n/**\n * The interface for the Base Recent Request Builder.\n */\npublic interface IBaseRecentRequestBuilder extends IRequestBuilder {\n\n    IRecentRequest buildRequest();\n\n    IRecentRequest buildRequest(final List<Option> options);\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/generated/IBaseSearchCollectionPage.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.generated;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\nimport com.google.gson.JsonObject;\n\n// **NOTE** This file was generated by a tool and any changes will be overwritten.\n\n/**\n * The interface for the Base Search Collection Page.\n */\npublic interface IBaseSearchCollectionPage extends IBaseCollectionPage<Item, ISearchRequestBuilder> {\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/generated/IBaseSearchRequest.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.generated;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\nimport com.google.gson.JsonObject;\nimport com.google.gson.annotations.*;\n\n// **NOTE** This file was generated by a tool and any changes will be overwritten.\n\n/**\n * The interface for the Base Search Request.\n */\npublic interface IBaseSearchRequest {\n    void get(final ICallback<ISearchCollectionPage> callback);\n\n    ISearchCollectionPage get() throws ClientException;\n\n    ISearchRequest select(final String value) ;\n\n    ISearchRequest top(final int value);\n\n    ISearchRequest expand(final String value);\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/generated/IBaseSearchRequestBuilder.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.generated;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\n// **NOTE** This file was generated by a tool and any changes will be overwritten.\n\n/**\n * The interface for the Base Search Request Builder.\n */\npublic interface IBaseSearchRequestBuilder extends IRequestBuilder {\n\n    ISearchRequest buildRequest();\n\n    ISearchRequest buildRequest(final List<Option> options);\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/generated/IBaseShareCollectionPage.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.generated;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\nimport com.google.gson.JsonObject;\n\n// **NOTE** This file was generated by a tool and any changes will be overwritten.\n\n/**\n * The interface for the Base Share Collection Page.\n */\npublic interface IBaseShareCollectionPage extends IBaseCollectionPage<Share, IShareCollectionRequestBuilder> {\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/generated/IBaseShareCollectionRequest.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.generated;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\n// **NOTE** This file was generated by a tool and any changes will be overwritten.\n\n/**\n * The interface for the Base Share Collection Request.\n */\npublic interface IBaseShareCollectionRequest {\n\n    IShareCollectionRequest expand(final String value);\n\n    IShareCollectionRequest select(final String value);\n\n    IShareCollectionRequest top(final int value);\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/generated/IBaseShareCollectionRequestBuilder.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.generated;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\n// **NOTE** This file was generated by a tool and any changes will be overwritten.\n\n/**\n * The interface for the Base Share Collection Request Builder.\n */\npublic interface IBaseShareCollectionRequestBuilder extends IRequestBuilder {\n\n    IShareCollectionRequest buildRequest();\n\n    IShareCollectionRequest buildRequest(final List<Option> options);\n\n    IShareRequestBuilder byId(final String id);\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/generated/IBaseShareRequest.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.generated;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\n// **NOTE** This file was generated by a tool and any changes will be overwritten.\n\n/**\n * The interface for the Base Share Request.\n */\npublic interface IBaseShareRequest extends IHttpRequest {\n\n    void get(final ICallback<Share> callback);\n\n    Share get() throws ClientException;\n\n    /**\n     * @deprecated  As of release 1.1.3, replaced by {@link #patch(Share, ICallback)}\n     */\n    @Deprecated void update(final Share sourceShare, final ICallback<Share> callback);\n\n    /**\n     * @deprecated  As of release 1.1.3, replaced by {@link #patch(Share)}\n     */\n    @Deprecated Share update(final Share sourceShare) throws ClientException;\n\n    void patch(final Share sourceShare, final ICallback<Share> callback);\n\n    Share patch(final Share sourceShare) throws ClientException;\n\n    void delete(final ICallback<Void> callback);\n\n    void delete()  throws ClientException;\n\n    /**\n     * @deprecated  As of release 1.1.3, replaced by {@link #post(Share, ICallback)}\n     */\n    @Deprecated void create(final Share newShare, final ICallback<Share> callback);\n\n    /**\n     * @deprecated  As of release 1.1.3, replaced by {@link #post(Share)}\n     */\n    @Deprecated Share create(final Share newShare) throws ClientException;\n\n    void post(final Share newShare, final ICallback<Share> callback);\n\n    Share post(final Share newShare) throws ClientException;\n\n    IBaseShareRequest select(final String value);\n\n    IBaseShareRequest top(final int value);\n\n    IBaseShareRequest expand(final String value);\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/generated/IBaseShareRequestBuilder.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.generated;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\n// **NOTE** This file was generated by a tool and any changes will be overwritten.\n\n/**\n * The interface for the Base Share Request Builder.\n */\npublic interface IBaseShareRequestBuilder extends IRequestBuilder {\n\n    /**\n     * Creates the request\n     */\n    IShareRequest buildRequest();\n\n    /**\n     * Creates the request with specific options instead of the existing options\n     */\n    IShareRequest buildRequest(final List<Option> options);\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/generated/IBaseStringCollectionPage.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.generated;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\nimport com.google.gson.JsonObject;\n\n// **NOTE** This file was generated by a tool and any changes will be overwritten.\n\n/**\n * The interface for the Base String Collection Page.\n */\npublic interface IBaseStringCollectionPage extends IBaseCollectionPage<String, IStringCollectionRequestBuilder> {\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/generated/IBaseStringCollectionRequest.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.generated;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\n// **NOTE** This file was generated by a tool and any changes will be overwritten.\n\n/**\n * The interface for the Base String Collection Request.\n */\npublic interface IBaseStringCollectionRequest {\n\n    IStringCollectionRequest expand(final String value);\n\n    IStringCollectionRequest select(final String value);\n\n    IStringCollectionRequest top(final int value);\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/generated/IBaseStringCollectionRequestBuilder.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.generated;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\n// **NOTE** This file was generated by a tool and any changes will be overwritten.\n\n/**\n * The interface for the Base String Collection Request Builder.\n */\npublic interface IBaseStringCollectionRequestBuilder extends IRequestBuilder {\n\n    IStringCollectionRequest buildRequest();\n\n    IStringCollectionRequest buildRequest(final List<Option> options);\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/generated/IBaseThumbnailRequest.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.generated;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\n// **NOTE** This file was generated by a tool and any changes will be overwritten.\n\n/**\n * The interface for the Base Thumbnail Request.\n */\npublic interface IBaseThumbnailRequest extends IHttpRequest {\n\n    void get(final ICallback<Thumbnail> callback);\n\n    Thumbnail get() throws ClientException;\n\n    /**\n     * @deprecated  As of release 1.1.3, replaced by {@link #patch(Thumbnail, ICallback)}\n     */\n    @Deprecated void update(final Thumbnail sourceThumbnail, final ICallback<Thumbnail> callback);\n\n    /**\n     * @deprecated  As of release 1.1.3, replaced by {@link #patch(Thumbnail)}\n     */\n    @Deprecated Thumbnail update(final Thumbnail sourceThumbnail) throws ClientException;\n\n    void patch(final Thumbnail sourceThumbnail, final ICallback<Thumbnail> callback);\n\n    Thumbnail patch(final Thumbnail sourceThumbnail) throws ClientException;\n\n    void delete(final ICallback<Void> callback);\n\n    void delete()  throws ClientException;\n\n    /**\n     * @deprecated  As of release 1.1.3, replaced by {@link #post(Thumbnail, ICallback)}\n     */\n    @Deprecated void create(final Thumbnail newThumbnail, final ICallback<Thumbnail> callback);\n\n    /**\n     * @deprecated  As of release 1.1.3, replaced by {@link #post(Thumbnail)}\n     */\n    @Deprecated Thumbnail create(final Thumbnail newThumbnail) throws ClientException;\n\n    void post(final Thumbnail newThumbnail, final ICallback<Thumbnail> callback);\n\n    Thumbnail post(final Thumbnail newThumbnail) throws ClientException;\n\n    IBaseThumbnailRequest select(final String value);\n\n    IBaseThumbnailRequest top(final int value);\n\n    IBaseThumbnailRequest expand(final String value);\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/generated/IBaseThumbnailRequestBuilder.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.generated;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\n// **NOTE** This file was generated by a tool and any changes will be overwritten.\n\n/**\n * The interface for the Base Thumbnail Request Builder.\n */\npublic interface IBaseThumbnailRequestBuilder extends IRequestBuilder {\n\n    /**\n     * Creates the request\n     */\n    IThumbnailRequest buildRequest();\n\n    /**\n     * Creates the request with specific options instead of the existing options\n     */\n    IThumbnailRequest buildRequest(final List<Option> options);\n\n    IThumbnailStreamRequestBuilder getContent();\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/generated/IBaseThumbnailSetCollectionPage.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.generated;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\nimport com.google.gson.JsonObject;\n\n// **NOTE** This file was generated by a tool and any changes will be overwritten.\n\n/**\n * The interface for the Base Thumbnail Set Collection Page.\n */\npublic interface IBaseThumbnailSetCollectionPage extends IBaseCollectionPage<ThumbnailSet, IThumbnailSetCollectionRequestBuilder> {\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/generated/IBaseThumbnailSetCollectionRequest.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.generated;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\n// **NOTE** This file was generated by a tool and any changes will be overwritten.\n\n/**\n * The interface for the Base Thumbnail Set Collection Request.\n */\npublic interface IBaseThumbnailSetCollectionRequest {\n\n    void get(final ICallback<IThumbnailSetCollectionPage> callback);\n\n    IThumbnailSetCollectionPage get() throws ClientException;\n\n    IThumbnailSetCollectionRequest expand(final String value);\n\n    IThumbnailSetCollectionRequest select(final String value);\n\n    IThumbnailSetCollectionRequest top(final int value);\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/generated/IBaseThumbnailSetCollectionRequestBuilder.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.generated;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\n// **NOTE** This file was generated by a tool and any changes will be overwritten.\n\n/**\n * The interface for the Base Thumbnail Set Collection Request Builder.\n */\npublic interface IBaseThumbnailSetCollectionRequestBuilder extends IRequestBuilder {\n\n    IThumbnailSetCollectionRequest buildRequest();\n\n    IThumbnailSetCollectionRequest buildRequest(final List<Option> options);\n\n    IThumbnailSetRequestBuilder byId(final String id);\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/generated/IBaseThumbnailSetRequest.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.generated;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\n// **NOTE** This file was generated by a tool and any changes will be overwritten.\n\n/**\n * The interface for the Base Thumbnail Set Request.\n */\npublic interface IBaseThumbnailSetRequest extends IHttpRequest {\n\n    void get(final ICallback<ThumbnailSet> callback);\n\n    ThumbnailSet get() throws ClientException;\n\n    /**\n     * @deprecated  As of release 1.1.3, replaced by {@link #patch(ThumbnailSet, ICallback)}\n     */\n    @Deprecated void update(final ThumbnailSet sourceThumbnailSet, final ICallback<ThumbnailSet> callback);\n\n    /**\n     * @deprecated  As of release 1.1.3, replaced by {@link #patch(ThumbnailSet)}\n     */\n    @Deprecated ThumbnailSet update(final ThumbnailSet sourceThumbnailSet) throws ClientException;\n\n    void patch(final ThumbnailSet sourceThumbnailSet, final ICallback<ThumbnailSet> callback);\n\n    ThumbnailSet patch(final ThumbnailSet sourceThumbnailSet) throws ClientException;\n\n    void delete(final ICallback<Void> callback);\n\n    void delete()  throws ClientException;\n\n    /**\n     * @deprecated  As of release 1.1.3, replaced by {@link #post(ThumbnailSet, ICallback)}\n     */\n    @Deprecated void create(final ThumbnailSet newThumbnailSet, final ICallback<ThumbnailSet> callback);\n\n    /**\n     * @deprecated  As of release 1.1.3, replaced by {@link #post(ThumbnailSet)}\n     */\n    @Deprecated ThumbnailSet create(final ThumbnailSet newThumbnailSet) throws ClientException;\n\n    void post(final ThumbnailSet newThumbnailSet, final ICallback<ThumbnailSet> callback);\n\n    ThumbnailSet post(final ThumbnailSet newThumbnailSet) throws ClientException;\n\n    IBaseThumbnailSetRequest select(final String value);\n\n    IBaseThumbnailSetRequest top(final int value);\n\n    IBaseThumbnailSetRequest expand(final String value);\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/generated/IBaseThumbnailSetRequestBuilder.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.generated;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\n// **NOTE** This file was generated by a tool and any changes will be overwritten.\n\n/**\n * The interface for the Base Thumbnail Set Request Builder.\n */\npublic interface IBaseThumbnailSetRequestBuilder extends IRequestBuilder {\n\n    /**\n     * Creates the request\n     */\n    IThumbnailSetRequest buildRequest();\n\n    /**\n     * Creates the request with specific options instead of the existing options\n     */\n    IThumbnailSetRequest buildRequest(final List<Option> options);\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/generated/IBaseThumbnailStreamRequest.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.generated;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\nimport java.io.*;\n\n// **NOTE** This file was generated by a tool and any changes will be overwritten.\n\n/**\n * The interface for the Base Thumbnail Stream Request.\n */\npublic interface IBaseThumbnailStreamRequest extends IHttpStreamRequest {\n\n    void get(final ICallback<InputStream> callback);\n\n    InputStream get() throws ClientException;\n\n    void put(final byte[] fileContents, final ICallback<Thumbnail> callback);\n\n    Thumbnail put(final byte[] fileContents) throws ClientException;\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/generated/IBaseThumbnailStreamRequestBuilder.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.generated;\n\nimport com.onedrive.sdk.concurrency.*;\nimport com.onedrive.sdk.core.*;\nimport com.onedrive.sdk.extensions.*;\nimport com.onedrive.sdk.http.*;\nimport com.onedrive.sdk.generated.*;\nimport com.onedrive.sdk.options.*;\nimport com.onedrive.sdk.serializer.*;\n\nimport java.util.*;\n\n// **NOTE** This file was generated by a tool and any changes will be overwritten.\n\n/**\n * The interface for the Base Thumbnail Stream Request Builder.\n */\npublic interface IBaseThumbnailStreamRequestBuilder extends IRequestBuilder {\n\n    /**\n     * Creates the request\n     */\n    IThumbnailStreamRequest buildRequest();\n\n    /**\n     * Creates the request with specific options instead of the existing options\n     */\n    IThumbnailStreamRequest buildRequest(final List<Option> options);\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/http/BaseCollectionPage.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.http;\n\nimport com.google.gson.JsonObject;\n\nimport com.onedrive.sdk.serializer.ISerializer;\n\nimport java.util.Collections;\nimport java.util.List;\n\n/**\n * A page of results from a collection.\n * @param <T1> The type of the item contained within the collection.\n * @param <T2> The type of the request builder for the next page in this collection\n */\npublic abstract class BaseCollectionPage<T1, T2 extends IRequestBuilder> implements IBaseCollectionPage<T1, T2>  {\n\n    /**\n     * The contents of this page.\n     */\n    private final List<T1> mPageContents;\n\n    /**\n     * The request builder for the next page.\n     */\n    private final T2 mRequestBuilder;\n\n    /**\n     * The raw representation of this class.\n     */\n    private transient JsonObject mRawObject;\n\n    /**\n     * The serializer.\n     */\n    private transient ISerializer mSerializer;\n\n    /**\n     * Creates the collection page.\n     * @param pageContents The contents of this page.\n     * @param nextRequestBuilder The request builder for the next page.\n     */\n    public BaseCollectionPage(final List<T1> pageContents, final T2 nextRequestBuilder) {\n        // CollectionPages are never directly modifiable, either 'update'/'delete' the specific child or 'add' the new\n        // object to the 'children' of the collection.\n        mPageContents = Collections.unmodifiableList(pageContents);\n        mRequestBuilder = nextRequestBuilder;\n    }\n\n    /**\n     * Gets the next page request builder.\n     * @return The next page request builder.\n     */\n    public T2 getNextPage() {\n        return mRequestBuilder;\n    }\n\n    /**\n     * Gets the current page.\n     * @return The current page.\n     */\n    public List<T1> getCurrentPage() {\n        return mPageContents;\n    }\n\n    /**\n     * Gets the raw representation of this class.\n     * @return The raw representation of this class.\n     */\n    public JsonObject getRawObject() {\n        return mRawObject;\n    }\n\n    /**\n     * Gets the serializer.\n     * @return The serializer.\n     */\n    protected ISerializer getSerializer() {\n        return mSerializer;\n    }\n\n    /**\n     * Sets the raw json object.\n     *\n     * @param serializer The serializer.\n     * @param json The json object to set this object to.\n     */\n    public void setRawObject(final ISerializer serializer, final JsonObject json) {\n        mSerializer = serializer;\n        mRawObject = json;\n    }\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/http/BaseCollectionRequest.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.http;\n\nimport com.onedrive.sdk.core.ClientException;\nimport com.onedrive.sdk.extensions.IOneDriveClient;\nimport com.onedrive.sdk.options.HeaderOption;\nimport com.onedrive.sdk.options.Option;\nimport com.onedrive.sdk.options.QueryOption;\n\nimport java.net.URL;\nimport java.util.List;\n\n/**\n * A request against a collection.\n * @param <T1> The raw response class returned by the service.\n * @param <T2> The class of the collection page.\n */\npublic abstract class BaseCollectionRequest<T1, T2> implements IHttpRequest {\n\n    /**\n     * The base request for this collection request.\n     */\n    private final BaseRequest mBaseRequest;\n\n    /**\n     * The class for the response.\n     */\n    private final Class<T1> mResponseClass;\n\n    /**\n     * The class for the collection page.\n     */\n    private final Class<T2> mCollectionPageClass;\n\n    /**\n     * Create the collection request.\n     * @param requestUrl The url to make the request against.\n     * @param client The client which can issue the request.\n     * @param options The options for this request.\n     * @param responseClass The class for the response.\n     * @param collectionPageClass The class for the collection page.\n     */\n    public BaseCollectionRequest(final String requestUrl,\n                                 final IOneDriveClient client,\n                                 final List<Option> options,\n                                 final Class<T1> responseClass,\n                                 final Class<T2> collectionPageClass) {\n        mResponseClass = responseClass;\n        mCollectionPageClass = collectionPageClass;\n        mBaseRequest = new BaseRequest(requestUrl, client, options, mResponseClass) { };\n        mBaseRequest.setHttpMethod(HttpMethod.GET);\n    }\n\n    /**\n     * Send this request.\n     * @return The response object.\n     * @throws ClientException An exception occurs if there was an error while the request was sent.\n     */\n    @SuppressWarnings(\"unchecked\")\n    protected T1 send() throws ClientException {\n        return mBaseRequest.getClient().getHttpProvider().send(this, mResponseClass, /* serialization object */ null);\n    }\n\n    /**\n     * Gets the request url.\n     * @return The request url.\n     */\n    @Override\n    public URL getRequestUrl() {\n        return mBaseRequest.getRequestUrl();\n    }\n\n    /**\n     * Gets the http method.\n     * @return The http method.\n     */\n    @Override\n    public HttpMethod getHttpMethod() {\n        return mBaseRequest.getHttpMethod();\n    }\n\n    /**\n     * Gets the headers.\n     * @return The headers.\n     */\n    @Override\n    public List<HeaderOption> getHeaders() {\n        return mBaseRequest.getHeaders();\n    }\n\n    /**\n     * Adds a header to this request.\n     * @param header The name of the header.\n     * @param value The value of the header.\n     */\n    @Override\n    public void addHeader(final String header, final String value) {\n        mBaseRequest.addHeader(header, value);\n    }\n\n    /**\n     * Gets the full list of options for this request.\n     * @return The full list of options for this request.\n     */\n    public List<Option> getOptions() {\n        return mBaseRequest.getOptions();\n    }\n\n    /**\n     * Adds a query option.\n     * @param option The query option to add.\n     */\n    public void addQueryOption(final QueryOption option) {\n        mBaseRequest.getQueryOptions().add(option);\n    }\n\n\n    /**\n     * Gets the base request for this collection request.\n     * @return The base request for this collection request.\n     */\n    protected BaseRequest getBaseRequest() {\n        return mBaseRequest;\n    }\n\n    /**\n     * Gets the class for the collection page.\n     * @return The class for the collection page.\n     */\n    public Class<T2> getCollectionPageClass() {\n        return mCollectionPageClass;\n    }\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/http/BaseRequest.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.http;\n\nimport android.net.Uri;\n\nimport com.microsoft.onedrivesdk.BuildConfig;\nimport com.onedrive.sdk.concurrency.ICallback;\nimport com.onedrive.sdk.core.ClientException;\nimport com.onedrive.sdk.core.OneDriveErrorCodes;\nimport com.onedrive.sdk.extensions.IOneDriveClient;\nimport com.onedrive.sdk.options.HeaderOption;\nimport com.onedrive.sdk.options.Option;\nimport com.onedrive.sdk.options.QueryOption;\n\nimport java.net.MalformedURLException;\nimport java.net.URL;\nimport java.util.ArrayList;\nimport java.util.Collections;\nimport java.util.LinkedList;\nimport java.util.List;\n\n/**\n * An http request.\n */\npublic abstract class BaseRequest implements IHttpRequest {\n\n    /**\n     * The request stats header name.\n     */\n    private static final String REQUEST_STATS_HEADER_NAME = \"X-RequestStats\";\n\n    /**\n     * The request stats header value format string.\n     */\n    public static final String REQUEST_STATS_HEADER_VALUE_FORMAT_STRING = \"SDK-Version=Android-v%s\";\n\n    /**\n     * The http method for this request.\n     */\n    private HttpMethod mMethod;\n\n    /**\n     * The url for this request.\n     */\n    private final String mRequestUrl;\n\n    /**\n     * The backing client for this request.\n     */\n    private final IOneDriveClient mClient;\n\n    /**\n     * The header options for this request.\n     */\n    private final List<HeaderOption> mHeadersOptions;\n\n    /**\n     * The query options for this request.\n     */\n    private final List<QueryOption> mQueryOptions;\n\n    /**\n     * The class for the response.\n     */\n    private final Class mResponseClass;\n\n    /**\n     * Create the request.\n     * @param requestUrl The url to make the request against.\n     * @param client The client which can issue the request.\n     * @param options The options for this request.\n     * @param responseClass The class for the response.\n     */\n    public BaseRequest(final String requestUrl,\n                       final IOneDriveClient client,\n                       final List<Option> options,\n                       final Class responseClass) {\n        mRequestUrl = requestUrl;\n        mClient = client;\n        mResponseClass = responseClass;\n\n        mHeadersOptions = new ArrayList<>();\n        mQueryOptions = new ArrayList<>();\n\n        if (options != null) {\n            for (final Option option : options) {\n                if (option instanceof HeaderOption) {\n                    mHeadersOptions.add((HeaderOption) option);\n                }\n                if (option instanceof QueryOption) {\n                    mQueryOptions.add((QueryOption) option);\n                }\n            }\n        }\n        final HeaderOption requestStatsHeader = new HeaderOption(REQUEST_STATS_HEADER_NAME,\n                String.format(REQUEST_STATS_HEADER_VALUE_FORMAT_STRING, BuildConfig.VERSION_NAME));\n        mHeadersOptions.add(requestStatsHeader);\n    }\n\n    /**\n     * Gets the request url.\n     *\n     * @return The request url.\n     */\n    @Override\n    public URL getRequestUrl() {\n        Uri baseUrl = Uri.parse(mRequestUrl);\n        final Uri.Builder uriBuilder = new Uri.Builder()\n                .scheme(baseUrl.getScheme())\n                .encodedAuthority(baseUrl.getEncodedAuthority())\n                .encodedQuery(baseUrl.getEncodedQuery());\n\n        for (final String segment : baseUrl.getPathSegments()) {\n            uriBuilder.appendPath(segment);\n        }\n\n        for (final QueryOption option : mQueryOptions) {\n            uriBuilder.appendQueryParameter(option.getName(), option.getValue());\n        }\n\n        final String urlString = uriBuilder.build().toString();\n        try {\n            return new URL(urlString);\n        } catch (final MalformedURLException e) {\n            throw new ClientException(\"Invalid URL: \" + urlString, e, OneDriveErrorCodes.InvalidRequest);\n        }\n    }\n\n    /**\n     * Gets the http method.\n     *\n     * @return The http method.\n     */\n    @Override\n    public HttpMethod getHttpMethod() {\n        return mMethod;\n    }\n\n    /**\n     * Gets the headers.\n     *\n     * @return The headers.\n     */\n    @Override\n    public List<HeaderOption> getHeaders() {\n        return mHeadersOptions;\n    }\n\n    /**\n     * Adds a header to this request.\n     * @param header The name of the header.\n     * @param value The value of the header.\n     */\n    @Override\n    public void addHeader(final String header, final String value) {\n        mHeadersOptions.add(new HeaderOption(header, value));\n    }\n\n    /**\n     * Sends this request.\n     * @param method The http method.\n     * @param callback The callback when this request complements.\n     * @param serializedObject The object to serialize as the body.\n     * @param <T1> The type of the callback result.\n     * @param <T2> The type of the serialized body.\n     */\n    @SuppressWarnings(\"unchecked\")\n    protected <T1, T2> void send(final HttpMethod method,\n                                 final ICallback<T1> callback,\n                                 final T2 serializedObject) {\n        mMethod = method;\n        mClient.getHttpProvider().send(this, callback, mResponseClass, serializedObject);\n    }\n\n    /**\n     * Sends this request.\n     * @param method The http method.\n     * @param serializedObject The object to serialize as the body.\n     * @param <T1> The type of the callback result.\n     * @param <T2> The type of the serialized body.\n     * @return The response object.\n     * @throws ClientException An exception occurs if there was an error while the request was sent.\n     */\n    @SuppressWarnings(\"unchecked\")\n    protected <T1, T2> T1 send(final HttpMethod method,\n                               final T2 serializedObject) throws ClientException {\n        mMethod = method;\n        return (T1) mClient.getHttpProvider().send(this, mResponseClass, serializedObject);\n    }\n\n    /**\n     * Gets the query options for this request.\n     *\n     * @return The query options for this request.\n     */\n    public List<QueryOption> getQueryOptions() {\n        return mQueryOptions;\n    }\n\n    /**\n     * Gets the full list of options for this request.\n     *\n     * @return The full list of options for this request.\n     */\n    public List<Option> getOptions() {\n        final LinkedList<Option> list = new LinkedList<>();\n        list.addAll(mHeadersOptions);\n        list.addAll(mQueryOptions);\n        return Collections.unmodifiableList(list);\n    }\n\n    /**\n     * Sets the http method.\n     *\n     * @param httpMethod The http method.\n     */\n    public void setHttpMethod(final HttpMethod httpMethod) {\n        mMethod = httpMethod;\n    }\n\n    /**\n     * Gets the client.\n     *\n     * @return The client.\n     */\n    public IOneDriveClient getClient() {\n        return mClient;\n    }\n\n    /**\n     * Gets the response type.\n     *\n     * @return The response type.\n     */\n    public Class getResponseType() {\n        return mResponseClass;\n    }\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/http/BaseRequestBuilder.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.http;\n\nimport com.onedrive.sdk.extensions.IOneDriveClient;\nimport com.onedrive.sdk.options.Option;\n\nimport java.util.ArrayList;\nimport java.util.Collections;\nimport java.util.List;\n\n/**\n * A request builder.\n */\npublic abstract class BaseRequestBuilder implements IRequestBuilder {\n\n    /**\n     * The backing client for this request.\n     */\n    private final IOneDriveClient mClient;\n\n    /**\n     * The url for this request.\n     */\n    private final String mRequestUrl;\n\n    /**\n     * The options for this request.\n     */\n    private final List<Option> mOptions = new ArrayList<>();\n\n    /**\n     * Creates the request builder.\n     * @param requestUrl The url to make the request against.\n     * @param client The client which can issue the request.\n     * @param options The options for this request.\n     */\n    public BaseRequestBuilder(final String requestUrl, final IOneDriveClient client, final List<Option> options) {\n        mRequestUrl = requestUrl;\n        mClient = client;\n\n        if (options != null) {\n            mOptions.addAll(options);\n        }\n    }\n\n    /**\n     * Gets the client.\n     * @return The client.\n     */\n    public IOneDriveClient getClient() {\n        return mClient;\n    }\n\n    /**\n     * Gets the request url.\n     * @return The request url.\n     */\n    public String getRequestUrl() {\n        return mRequestUrl;\n    }\n\n    /**\n     * Get the full list of options for this request.\n     * @return The full list of options for this request.\n     */\n    public List<Option> getOptions() {\n        return Collections.unmodifiableList(mOptions);\n    }\n\n    /**\n     * Gets the request url with an extra segment added to it.\n     * @param urlSegment The section to add.\n     * @return The base url for this request.\n     */\n    public String getRequestUrlWithAdditionalSegment(final String urlSegment) {\n        return mRequestUrl + \"/\" + urlSegment;\n    }\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/http/BaseStreamRequest.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.http;\n\nimport com.onedrive.sdk.concurrency.ICallback;\nimport com.onedrive.sdk.core.ClientException;\nimport com.onedrive.sdk.extensions.IOneDriveClient;\nimport com.onedrive.sdk.options.HeaderOption;\nimport com.onedrive.sdk.options.Option;\n\nimport java.io.InputStream;\nimport java.net.URL;\nimport java.util.List;\n\n/**\n * A request for a binary stream.\n * @param <T> The class of the response type.\n */\npublic abstract class BaseStreamRequest<T> implements IHttpStreamRequest {\n\n    /**\n     * The base request for this collection request.\n     */\n    private final BaseRequest mBaseRequest;\n\n    /**\n     * Creates the stream request.\n     * @param requestUrl The url to make the request against.\n     * @param client The client which can issue the request.\n     * @param options The options for this request.\n     * @param responseClass The class for the response.\n     */\n    public BaseStreamRequest(final String requestUrl,\n                             final IOneDriveClient client,\n                             final List<Option> options,\n                             final Class<T> responseClass) {\n        mBaseRequest = new BaseRequest(requestUrl, client, options, responseClass) { };\n    }\n\n    /**\n     * Sends this request.\n     * @param callback The callback when this request complements. The caller needs to close the stream.\n     */\n    protected void send(final ICallback<InputStream> callback) {\n        mBaseRequest.setHttpMethod(HttpMethod.GET);\n        mBaseRequest.getClient().getHttpProvider().send(this, callback, InputStream.class, null);\n    }\n\n    /**\n     * Sends this request.\n     * @return The stream that the caller needs to close.\n     * @throws ClientException An exception occurs if there was an error while the request was sent.\n     */\n    protected InputStream send() throws ClientException {\n        mBaseRequest.setHttpMethod(HttpMethod.GET);\n        return mBaseRequest.getClient().getHttpProvider().send(this, InputStream.class, null);\n    }\n\n    /**\n     * Sends this request.\n     * @param fileContents The file to upload.\n     * @param callback The callback when this request complements. The caller needs to close the stream.\n     */\n    @SuppressWarnings(\"unchecked\")\n    protected void send(final byte[] fileContents, final ICallback<T> callback) {\n        mBaseRequest.setHttpMethod(HttpMethod.PUT);\n        mBaseRequest.getClient().getHttpProvider().send(this, callback, mBaseRequest.getResponseType(), fileContents);\n    }\n\n    /**\n     * Sends this request.\n     * @param fileContents The file to upload.\n     * @return The stream that the caller needs to close.\n     */\n    @SuppressWarnings(\"unchecked\")\n    protected T send(final byte[] fileContents) {\n        mBaseRequest.setHttpMethod(HttpMethod.PUT);\n        return (T) mBaseRequest.getClient().getHttpProvider().send(this, mBaseRequest.getResponseType(), fileContents);\n    }\n\n    /**\n     * Gets the request url.\n     * @return The request url.\n     */\n    @Override\n    public URL getRequestUrl() {\n        return mBaseRequest.getRequestUrl();\n    }\n\n    /**\n     * Gets the http method.\n     * @return The http method.\n     */\n    @Override\n    public HttpMethod getHttpMethod() {\n        return mBaseRequest.getHttpMethod();\n    }\n\n    /**\n     * Adds a header to this request.\n     * @param header The name of the header.\n     * @param value The value of the header.\n     */\n    @Override\n    public void addHeader(final String header, final String value) {\n        mBaseRequest.addHeader(header, value);\n    }\n\n    /**\n     * Gets the headers.\n     * @return The headers.\n     */\n    @Override\n    public List<HeaderOption> getHeaders() {\n        return mBaseRequest.getHeaders();\n    }\n\n    /**\n     * Gets the query options for this request.\n     * @return The query options for this request.\n     */\n    @Override\n    public List<Option> getOptions() {\n        return mBaseRequest.getOptions();\n    }\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/http/DefaultConnectionFactory.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.http;\n\nimport java.io.IOException;\n\n/**\n * Creates connections to remove servers.\n */\npublic class DefaultConnectionFactory implements IConnectionFactory {\n\n    /**\n     * Creates a connection from an IHttpRequest.\n     * @param request The request to make the connection from.\n     * @return The connection object.\n     * @throws IOException An exception occurs if there was a network issue creating the connection.\n     */\n    @Override\n    public IConnection createFromRequest(final IHttpRequest request) throws IOException {\n        return new UrlConnection(request);\n    }\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/http/DefaultHttpProvider.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.http;\n\nimport com.onedrive.sdk.concurrency.AsyncMonitorLocation;\nimport com.onedrive.sdk.concurrency.ICallback;\nimport com.onedrive.sdk.concurrency.IExecutors;\nimport com.onedrive.sdk.concurrency.IProgressCallback;\nimport com.onedrive.sdk.core.ClientException;\nimport com.onedrive.sdk.core.OneDriveErrorCodes;\nimport com.onedrive.sdk.logger.ILogger;\nimport com.onedrive.sdk.logger.LoggerLevel;\nimport com.onedrive.sdk.serializer.ISerializer;\n\nimport java.io.BufferedInputStream;\nimport java.io.BufferedOutputStream;\nimport java.io.IOException;\nimport java.io.InputStream;\nimport java.io.OutputStream;\nimport java.net.URL;\nimport java.util.Map;\nimport java.util.Scanner;\n\n/**\n * Http provider based off of URLConnection.\n */\npublic class DefaultHttpProvider implements IHttpProvider {\n\n    /**\n     * The content type header\n     */\n    static final String CONTENT_TYPE_HEADER_NAME = \"Content-Type\";\n\n    /**\n     * The content type for json responses\n     */\n    static final String JSON_CONTENT_TYPE = \"application/json\";\n\n    /**\n     * The serializer.\n     */\n    private final ISerializer mSerializer;\n\n    /**\n     * The request interceptor.\n     */\n    private final IRequestInterceptor mRequestInterceptor;\n\n    /**\n     * The executors.\n     */\n    private final IExecutors mExecutors;\n\n    /**\n     * The logger.\n     */\n    private final ILogger mLogger;\n\n    /**\n     * The connection factory.\n     */\n    private IConnectionFactory mConnectionFactory;\n\n    /**\n     * Creates the DefaultHttpProvider.\n     * @param serializer The serializer.\n     * @param requestInterceptor The request interceptor.\n     * @param executors The executors.\n     * @param logger The logger for diagnostic information.\n     */\n    public DefaultHttpProvider(final ISerializer serializer,\n                               final IRequestInterceptor requestInterceptor,\n                               final IExecutors executors,\n                               final ILogger logger) {\n        mSerializer = serializer;\n        mRequestInterceptor = requestInterceptor;\n        mExecutors = executors;\n        mLogger = logger;\n        mConnectionFactory = new DefaultConnectionFactory();\n    }\n\n    /**\n     * Gets the serializer for this http provider.\n     *\n     * @return The serializer for this provider.\n     */\n    @Override\n    public ISerializer getSerializer() {\n        return mSerializer;\n    }\n\n    /**\n     * Sends the http request asynchronously.\n     * @param request The request description.\n     * @param callback The callback to be called after success or failure.\n     * @param resultClass The class of the response from the service.\n     * @param serializable The object to send to the service in the body of the request.\n     * @param <Result> The type of the response object.\n     * @param <Body> The type of the object to send to the service in the body of the request.\n     */\n    @Override\n    public <Result, Body> void send(final IHttpRequest request,\n                                    final ICallback<Result> callback,\n                                    final Class<Result> resultClass,\n                                    final Body serializable) {\n        final IProgressCallback<Result> progressCallback;\n        if (callback instanceof IProgressCallback) {\n            progressCallback = (IProgressCallback<Result>) callback;\n        } else {\n            progressCallback = null;\n        }\n\n        mExecutors.performOnBackground(new Runnable() {\n            @Override\n            public void run() {\n                try {\n                    mExecutors.performOnForeground(sendRequestInternal(request,\n                            resultClass,\n                            serializable,\n                            progressCallback,\n                            null),\n                            callback);\n                } catch (final ClientException e) {\n                    mExecutors.performOnForeground(e, callback);\n                }\n            }\n        });\n    }\n\n    /**\n     * Sends the http request.\n     * @param request The request description.\n     * @param resultClass The class of the response from the service.\n     * @param serializable The object to send to the service in the body of the request.\n     * @param <Result> The type of the response object.\n     * @param <Body> The type of the object to send to the service in the body of the request.\n     * @return The result from the request.\n     * @throws ClientException An exception occurs if the request was unable to complete for any reason.\n     */\n    @Override\n    public <Result, Body> Result send(final IHttpRequest request,\n                                      final Class<Result> resultClass,\n                                      final Body serializable)\n            throws ClientException {\n        return send(request, resultClass, serializable, null);\n    }\n\n    /**\n     * Sends the http request.\n     * @param request The request description.\n     * @param resultClass The class of the response from the service.\n     * @param serializable The object to send to the service in the body of the request.\n     * @param handler The handler for stateful response.\n     * @param <Result> The type of the response object.\n     * @param <Body> The type of the object to send to the service in the body of the request.\n     * @param <DeserializeType> The response handler for stateful response.\n     * @return The result from the request.\n     * @throws ClientException This exception occurs if the request was unable to complete for any reason.\n     */\n    public <Result, Body, DeserializeType> Result send(final IHttpRequest request,\n                               final Class<Result> resultClass,\n                               final Body serializable,\n                               final IStatefulResponseHandler<Result, DeserializeType> handler) throws ClientException {\n        return sendRequestInternal(request, resultClass, serializable, null, handler);\n    }\n\n    /**\n     * Sends the http request.\n     * @param request The request description.\n     * @param resultClass The class of the response from the service.\n     * @param serializable The object to send to the service in the body of the request.\n     * @param progress The progress callback for the request.\n     * @param handler The handler for stateful response.\n     * @param <Result> The type of the response object.\n     * @param <Body> The type of the object to send to the service in the body of the request.\n     * @param <DeserializeType> The response handler for stateful response.\n     * @return The result from the request.\n     * @throws ClientException An exception occurs if the request was unable to complete for any reason.\n     */\n    private <Result, Body, DeserializeType> Result sendRequestInternal(final IHttpRequest request,\n                                                      final Class<Result> resultClass,\n                                                      final Body serializable,\n                                                      final IProgressCallback<Result> progress,\n                                                      final IStatefulResponseHandler<Result, DeserializeType> handler)\n            throws ClientException {\n        final int defaultBufferSize = 4096;\n        final String contentLengthHeaderName = \"Content-Length\";\n        final String binaryContentType = \"application/octet-stream\";\n\n        try {\n            if (mRequestInterceptor != null) {\n                mRequestInterceptor.intercept(request);\n            }\n\n            OutputStream out = null;\n            InputStream in = null;\n            boolean isBinaryStreamInput = false;\n            final URL requestUrl = request.getRequestUrl();\n            mLogger.logDebug(\"Starting to send request, URL \" + requestUrl.toString());\n            final IConnection connection = mConnectionFactory.createFromRequest(request);\n\n            try {\n                mLogger.logDebug(\"Request Method \" + request.getHttpMethod().toString());\n\n                final byte[] bytesToWrite;\n                if (serializable == null) {\n                    bytesToWrite = null;\n                } else if (serializable instanceof byte[]) {\n                    mLogger.logDebug(\"Sending byte[] as request body\");\n                    bytesToWrite = (byte[]) serializable;\n                    connection.addRequestHeader(CONTENT_TYPE_HEADER_NAME, binaryContentType);\n                    connection.setContentLength(bytesToWrite.length);\n                } else {\n                    mLogger.logDebug(\"Sending \" + serializable.getClass().getName() + \" as request body\");\n                    final String serializeObject = mSerializer.serializeObject(serializable);\n                    bytesToWrite = serializeObject.getBytes();\n                    connection.addRequestHeader(CONTENT_TYPE_HEADER_NAME, JSON_CONTENT_TYPE);\n                    connection.setContentLength(bytesToWrite.length);\n                }\n\n                // Handle cases where we've got a body to process.\n                if (bytesToWrite != null) {\n                    out = connection.getOutputStream();\n\n                    int writtenSoFar = 0;\n                    BufferedOutputStream bos = new BufferedOutputStream(out);\n\n                    int toWrite;\n                    do {\n                        toWrite = Math.min(defaultBufferSize, bytesToWrite.length - writtenSoFar);\n                        bos.write(bytesToWrite, writtenSoFar, toWrite);\n                        writtenSoFar = writtenSoFar + toWrite;\n                        if (progress != null) {\n                            mExecutors.performOnForeground(writtenSoFar, bytesToWrite.length,\n                                    progress);\n                        }\n                    } while (toWrite > 0);\n                    bos.close();\n                }\n\n                if (handler != null) {\n                    handler.configConnection(connection);\n                }\n\n                mLogger.logDebug(String.format(\"Response code %d, %s\",\n                        connection.getResponseCode(),\n                        connection.getResponseMessage()));\n\n                if (handler != null) {\n                    mLogger.logDebug(\"StatefulResponse is handling the HTTP response.\");\n                    return handler.generateResult(\n                            request, connection, this.getSerializer(), this.mLogger);\n                }\n\n                if (connection.getResponseCode() >= HttpResponseCode.HTTP_CLIENT_ERROR) {\n                    mLogger.logDebug(\"Handling error response\");\n                    in = connection.getInputStream();\n                    handleErrorResponse(request, serializable, connection);\n                }\n\n                if (connection.getResponseCode() == HttpResponseCode.HTTP_NOBODY\n                        || connection.getResponseCode() == HttpResponseCode.HTTP_NOT_MODIFIED) {\n                    mLogger.logDebug(\"Handling response with no body\");\n                    return null;\n                }\n\n                if (connection.getResponseCode() == HttpResponseCode.HTTP_ACCEPTED) {\n                    mLogger.logDebug(\"Handling accepted response\");\n                    if (resultClass == AsyncMonitorLocation.class) {\n                        //noinspection unchecked\n                        return (Result) new AsyncMonitorLocation(connection.getHeaders().get(\"Location\"));\n                    }\n                }\n\n                in = new BufferedInputStream(connection.getInputStream());\n\n                final Map<String, String> headers = connection.getHeaders();\n\n                final String contentType = headers.get(CONTENT_TYPE_HEADER_NAME);\n                if (contentType.contains(JSON_CONTENT_TYPE)) {\n                    mLogger.logDebug(\"Response json\");\n                    return handleJsonResponse(in, resultClass);\n                } else {\n                    mLogger.logDebug(\"Response binary\");\n                    isBinaryStreamInput = true;\n                    //noinspection unchecked\n                    return (Result) handleBinaryStream(in);\n                }\n            } finally {\n                if (out != null) {\n                    out.close();\n                }\n                if (!isBinaryStreamInput && in != null) {\n                    in.close();\n                    connection.close();\n                }\n            }\n        } catch (final OneDriveServiceException ex) {\n            final boolean shouldLogVerbosely = mLogger.getLoggingLevel() == LoggerLevel.Debug;\n            mLogger.logError(\"OneDrive Service exception \" + ex.getMessage(shouldLogVerbosely), ex);\n            throw ex;\n        } catch (final Exception ex) {\n            final ClientException clientException = new ClientException(\"Error during http request\",\n                    ex,\n                    OneDriveErrorCodes.GeneralException);\n            mLogger.logError(\"Error during http request\", clientException);\n            throw clientException;\n        }\n    }\n\n    /**\n     * Handles the event of an error response.\n     * @param request The request that caused the failed response.\n     * @param serializable The body of the request.\n     * @param connection The url connection.\n     * @param <Body> The type of the request body.\n     * @throws IOException An exception occurs if there were any problems interacting with the connection object.\n     */\n    private <Body> void handleErrorResponse(final IHttpRequest request,\n                                            final Body serializable,\n                                            final IConnection connection)\n            throws IOException {\n        throw OneDriveServiceException.createFromConnection(request, serializable, mSerializer,\n                connection);\n    }\n\n    /**\n     * Handles the cause where the response is a binary stream.\n     *\n     * @param in The input stream from the response.\n     * @return The input stream to return to the caller.\n     */\n    private InputStream handleBinaryStream(final InputStream in) {\n        return in;\n    }\n\n    /**\n     * Handles the cause where the response is a json object.\n     * @param in The input stream from the response.\n     * @param clazz The class of the response object.\n     * @param <Result> The type of the response object.\n     * @return The json object.\n     */\n    private <Result> Result handleJsonResponse(final InputStream in, final Class<Result> clazz) {\n        if (clazz == null) {\n            return null;\n        }\n\n        final String rawJson = streamToString(in);\n        return getSerializer().deserializeObject(rawJson, clazz);\n    }\n\n    /**\n     * Sets the connection factory for this provider.\n     *\n     * @param factory The new factory.\n     */\n    void setConnectionFactory(final IConnectionFactory factory) {\n        mConnectionFactory = factory;\n    }\n\n    /**\n     * Reads in a stream and converts it into a string.\n     *\n     * @param input The response body stream.\n     * @return The string result.\n     */\n    public static String streamToString(final InputStream input) {\n        final String httpStreamEncoding = \"UTF-8\";\n        final String endOfFile = \"\\\\A\";\n        final Scanner scanner = new Scanner(input, httpStreamEncoding).useDelimiter(endOfFile);\n        return scanner.next();\n    }\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/http/HttpMethod.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.http;\n\n/**\n * The http method for a request.\n */\npublic enum HttpMethod {\n\n    /**\n     * Get\n     */\n    GET,\n\n    /**\n     * Post\n     */\n    POST,\n\n    /**\n     * Patch\n     */\n    PATCH,\n\n    /**\n     * Delete\n     */\n    DELETE,\n\n    /**\n     * Put\n     */\n    PUT,\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/http/HttpResponseCode.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.http;\n\n/**\n * The http code for http request.\n */\npublic final class  HttpResponseCode {\n\n    /**\n     * Deprecate the constructor.\n     */\n    private HttpResponseCode() { }\n\n    /**\n     * Http response code OK.\n     */\n    public static final int HTTP_OK = 200;\n\n    /**\n     * Http response code for created.\n     */\n    public static final int HTTP_CREATED = 201;\n\n    /**\n     * Http response code for accepted.\n     */\n    public static final int HTTP_ACCEPTED = 202;\n\n    /**\n     * Http response code for nobody.\n     */\n    public static final int HTTP_NOBODY = 204;\n\n    /**\n     * Http response code for see other.\n     */\n    public static final int HTTP_SEE_OTHER = 303;\n\n    /**\n     * Http response code for not modified.\n     */\n    public static final int HTTP_NOT_MODIFIED = 304;\n\n    /**\n     * Http response code for error response.\n     */\n    public static final int HTTP_CLIENT_ERROR = 400;\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/http/IBaseCollectionPage.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.http;\n\nimport com.google.gson.JsonObject;\n\nimport com.onedrive.sdk.serializer.IJsonBackedObject;\n\nimport java.util.List;\n\n/**\n * A page of results from a collection.\n * @param <T1> The type of the item contained within the collection.\n * @param <T2> The type of the request builder for the next page in this collection.\n */\n\npublic interface IBaseCollectionPage<T1, T2 extends IRequestBuilder> extends IJsonBackedObject {\n\n    /**\n     * Gets the raw representation of this class.\n     * @return The raw representation of this class.\n     */\n    JsonObject getRawObject();\n\n    /**\n     * Gets the next page request builder.\n     * @return The next page request builder.\n     */\n    T2 getNextPage();\n\n    /**\n     * Gets the current page.\n     * @return The current page.\n     */\n    List<T1> getCurrentPage();\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/http/IConnection.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.http;\n\nimport java.io.IOException;\nimport java.io.InputStream;\nimport java.io.OutputStream;\nimport java.util.Map;\n\n/**\n * An http connection with a remote server.\n */\npublic interface IConnection {\n\n    /**\n     * Follow 3XX series redirects.\n     * @param followRedirects true to follow redirects, false otherwise.\n     */\n    void setFollowRedirects(final boolean followRedirects);\n\n    /**\n     * Adds a header to the connection (Must be done before reading/writing).\n     * @param headerName The header name.\n     * @param headerValue The header value.\n     */\n    void addRequestHeader(String headerName, String headerValue);\n\n    /**\n     * Gets the stream to write to the request.\n     * @return The output stream to write onto.\n     * @throws IOException if something goes wrong while getting the stream.\n     */\n    OutputStream getOutputStream() throws IOException;\n\n    /**\n     * Gets the stream to read to the response.\n     * @return The input stream to read from.\n     * @throws IOException if something goes wrong while getting the stream.\n     */\n    InputStream getInputStream() throws IOException;\n\n    /**\n     * Gets the response code for the request.\n     * @return The http status code.\n     * @throws IOException if something goes wrong while getting the response code.\n     */\n    int getResponseCode() throws IOException;\n\n    /**\n     * Get the response message.\n     * @return The response message.\n     * @throws IOException if something goes wrong while getting the response message.\n     */\n    String getResponseMessage() throws IOException;\n\n    /**\n     * Closes this connection, and all streams become inaccessible.\n     */\n    void close();\n\n    /**\n     * Gets the response headers for this connection.\n     * @return The map of headers.\n     */\n    Map<String, String> getHeaders();\n\n    /**\n     * Gets the http request method.\n     * @return The request method.\n     */\n    String getRequestMethod();\n\n    /**\n     * Set the Content-Length header\n     * @param length the length of content\n     */\n    void setContentLength(final int length);\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/http/IConnectionFactory.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.http;\n\nimport java.io.IOException;\n\n/**\n * Creates connections to remove servers.\n */\npublic interface IConnectionFactory {\n\n    /**\n     * Create a connection from an IHttpRequest.\n     * @param request The request to make the connection from.\n     * @return The connection object.\n     * @throws IOException An exception occurs if there was a network issue while creating the connection.\n     */\n    IConnection createFromRequest(IHttpRequest request) throws IOException;\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/http/IHttpProvider.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.http;\n\nimport com.onedrive.sdk.concurrency.ICallback;\nimport com.onedrive.sdk.core.ClientException;\nimport com.onedrive.sdk.serializer.ISerializer;\n\n/**\n * Sends http requests.\n */\npublic interface IHttpProvider {\n\n    /**\n     * Get the serializer for this http provider.\n     * @return The serializer for this provider.\n     */\n    ISerializer getSerializer();\n\n    /**\n     * Sends the http request asynchronously.\n     * @param request The request description.\n     * @param callback The callback to be called after success or failure.\n     * @param resultClass The class of the response from the service.\n     * @param serializable The object to send to the service in the body of the request.\n     * @param <Result> The type of the response object.\n     * @param <BodyType> The type of the object to send to the service in the body of the request.\n     */\n    <Result, BodyType> void send(final IHttpRequest request,\n                                 final ICallback<Result> callback,\n                                 final Class<Result> resultClass,\n                                 final BodyType serializable);\n\n\n    /**\n     * Sends the http request.\n     * @param request The request description.\n     * @param resultClass The class of the response from the service.\n     * @param serializable The object to send to the service in the body of the request.\n     * @param <Result> The type of the response object.\n     * @param <BodyType> The type of the object to send to the service in the body of the request.\n     * @return The result from the request.\n     * @throws ClientException This exception occurs if the request was unable to complete for any reason.\n     */\n    <Result, BodyType> Result send(final IHttpRequest request,\n                                   final Class<Result> resultClass,\n                                   final BodyType serializable)\n            throws ClientException;\n\n    /**\n     * Sends the http request.\n     * @param request The request description.\n     * @param resultClass The class of the response from the service.\n     * @param serializable The object to send to the service in the body of the request.\n     * @param handler The handler for stateful response.\n     * @param <Result> The expected return type return.\n     * @param <BodyType> The type of the object to send to the service in the body of the request.\n     * @param <DeserializeType> The type of the http response object.\n     * @return The expected result object for the request.\n     * @throws ClientException This exception occurs if the request was unable to complete for any reason.\n     */\n    <Result, BodyType, DeserializeType> Result send(final IHttpRequest request,\n                                                final Class<Result> resultClass,\n                                                final BodyType serializable,\n                                                final IStatefulResponseHandler<Result, DeserializeType> handler)\n            throws ClientException;\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/http/IHttpRequest.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.http;\n\nimport com.onedrive.sdk.options.HeaderOption;\nimport com.onedrive.sdk.options.Option;\n\nimport java.net.URL;\nimport java.util.List;\n\n/**\n * An http request.\n */\npublic interface IHttpRequest {\n\n    /**\n     * Gets the request url.\n     * @return The request url.\n     */\n    URL getRequestUrl();\n\n    /**\n     * Gets the http method.\n     * @return The http method.\n     */\n    HttpMethod getHttpMethod();\n\n    /**\n     * Gets the headers.\n     * @return The headers.\n     */\n    List<HeaderOption> getHeaders();\n\n    /**\n     * Gets the options.\n     * @return The options.\n     */\n    List<Option> getOptions();\n\n    /**\n     * Adds a header to this request.\n     * @param header The name of the header.\n     * @param value The value of the header.\n     */\n    void addHeader(String header, String value);\n}\n\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/http/IHttpStreamRequest.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.http;\n\n/**\n * A request for a binary stream.\n */\npublic interface IHttpStreamRequest extends IHttpRequest {\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/http/IRequestBuilder.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.http;\n\nimport com.onedrive.sdk.extensions.IOneDriveClient;\n\n/**\n * Builder for a request.\n */\npublic interface IRequestBuilder {\n\n    /**\n     * Gets the client for this request builder.\n     * @return The client for this request builder.\n     */\n    IOneDriveClient getClient();\n\n    /**\n     * Gets the request url.\n     * @return The request url.\n     */\n    String getRequestUrl();\n\n    /**\n     * Gets the request url with an additional segment.\n     * @param urlSegment The segment to add to the url.\n     * @return The new request url.\n     */\n    String getRequestUrlWithAdditionalSegment(final String urlSegment);\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/http/IRequestInterceptor.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.http;\n\n/**\n * Intercepts a request before it is sent by the http provider.\n */\npublic interface IRequestInterceptor {\n\n    /**\n     * Intercepts the request.\n     * @param request The request to intercept.\n     */\n    void intercept(final IHttpRequest request);\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/http/IStatefulResponseHandler.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.http;\n\nimport com.onedrive.sdk.logger.ILogger;\nimport com.onedrive.sdk.serializer.ISerializer;\n\n/**\n * The handler interface for requests having stateful response from server.\n * The handler will custom the http connection if needed and generate request\n * result based on the server http response.\n *\n * @param <ResultType> The result to return.\n * @param <DeserializedType> The deserialize type for serializer.\n */\npublic interface IStatefulResponseHandler<ResultType, DeserializedType> {\n    /**\n     * Configure the connection before get response.\n     * @param connection The http connection.\n     */\n    void configConnection(final IConnection connection);\n\n    /**\n     * Generate result after receiving response.\n     * @param request The http request.\n     * @param connection The http connection.\n     * @param serializer The serializer for parsing response.\n     * @param logger The looger.\n     * @return The result generated by this handler.\n     * @throws Exception An exception occurs if the request was unable to complete for any reason.\n     */\n    ResultType generateResult(final IHttpRequest request,\n                              final IConnection connection,\n                              final ISerializer serializer,\n                              final ILogger logger) throws Exception;\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/http/OneDriveError.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.http;\n\nimport com.google.gson.annotations.SerializedName;\n\nimport com.onedrive.sdk.core.OneDriveErrorCodes;\n\npublic class OneDriveError {\n\n    @SerializedName(\"message\")\n    public String message;\n\n    @SerializedName(\"code\")\n    public String code;\n\n    @SerializedName(\"innererror\")\n    public OneDriveInnerError innererror;\n\n    /**\n     * Determine if the given error code is the one that is expected.\n     * @param expectedCode The expected error code.\n     * @return <c>true</c> if the error code matches, and <c>false</c> if there was no match.\n     */\n    public boolean isError(final OneDriveErrorCodes expectedCode) {\n        if (code.equalsIgnoreCase(expectedCode.toString())) {\n            return true;\n        }\n        OneDriveInnerError innerError = innererror;\n        while (null != innerError) {\n            if (innerError.code.equalsIgnoreCase(expectedCode.toString())) {\n                return true;\n            }\n            innerError = innerError.innererror;\n        }\n        return false;\n    }\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/http/OneDriveErrorResponse.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.http;\n\nimport com.google.gson.JsonObject;\nimport com.google.gson.annotations.Expose;\nimport com.google.gson.annotations.SerializedName;\nimport com.onedrive.sdk.serializer.IJsonBackedObject;\nimport com.onedrive.sdk.serializer.ISerializer;\n\npublic class OneDriveErrorResponse implements IJsonBackedObject {\n\n    @SerializedName(\"error\")\n    public OneDriveError error;\n\n    /**\n     * The raw representation of this class when deserialized.\n     */\n    @Expose(serialize = false, deserialize = false)\n    public JsonObject rawObject;\n\n    /**\n     * Sets the raw json object.\n     */\n    @Override\n    public void setRawObject(final ISerializer serializer, final JsonObject json) {\n        rawObject = json;\n    }\n}\n\n\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/http/OneDriveFatalServiceException.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.http;\n\nimport java.util.List;\nimport java.util.Locale;\n\n/**\n * An unexpected exception from the OneDrive service.\n */\npublic class OneDriveFatalServiceException extends OneDriveServiceException {\n\n    /**\n     * The website to report issues on this sdk.\n     */\n    public static final String SDK_BUG_URL = \"https://github.com/OneDrive/onedrive-sdk-android/issues\";\n\n    /**\n     * Create a fatal OneDrive service exception.\n     * @param method The method that caused the exception.\n     * @param url The url.\n     * @param requestHeaders The request headers.\n     * @param requestBody The request body.\n     * @param responseCode The response code.\n     * @param responseMessage The response message.\n     * @param responseHeaders The response headers.\n     * @param error The error response if available.\n     */\n    protected OneDriveFatalServiceException(final String method,\n                                            final String url,\n                                            final List<String> requestHeaders,\n                                            final String requestBody,\n                                            final int responseCode,\n                                            final String responseMessage,\n                                            final List<String> responseHeaders,\n                                            final OneDriveErrorResponse error) {\n        super(method, url, requestHeaders, requestBody, responseCode, responseMessage, responseHeaders, error);\n    }\n\n    @Override\n    public String getMessage(final boolean verbose) {\n        //noinspection StringBufferReplaceableByString\n        final StringBuilder sb = new StringBuilder();\n        sb.append(\"[This is an unexpected error from OneDrive, please report this at \")\n          .append(SDK_BUG_URL);\n\n        // Add the unique error identifier if it exists\n        for (final String header : getResponseHeaders()) {\n            if (header.toLowerCase(Locale.ROOT).startsWith(X_THROWSITE)) {\n                sb.append(\", ID = \")\n                  .append(header);\n                break;\n            }\n        }\n\n        sb.append(']')\n          .append(NEW_LINE)\n          .append(super.getMessage(true));\n        return sb.toString();\n    }\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/http/OneDriveInnerError.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.http;\n\nimport com.google.gson.annotations.SerializedName;\n\npublic class OneDriveInnerError {\n\n    @SerializedName(\"code\")\n    public String code;\n\n    @SerializedName(\"errorType\")\n    public String errorType;\n\n    @SerializedName(\"debugMessage\")\n    public String debugMessage;\n\n    @SerializedName(\"stackTrace\")\n    public String stackTrace;\n\n    @SerializedName(\"throwSite\")\n    public String throwSite;\n\n    @SerializedName(\"innererror\")\n    public OneDriveInnerError innererror;\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/http/OneDriveServiceException.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.http;\n\nimport com.onedrive.sdk.core.ClientException;\nimport com.onedrive.sdk.core.OneDriveErrorCodes;\nimport com.onedrive.sdk.options.HeaderOption;\nimport com.onedrive.sdk.serializer.ISerializer;\n\nimport org.json.JSONException;\nimport org.json.JSONObject;\n\nimport java.io.IOException;\nimport java.util.LinkedList;\nimport java.util.List;\nimport java.util.Locale;\nimport java.util.Map;\n\n/**\n * An exception from the OneDrive service.\n */\npublic class OneDriveServiceException extends ClientException {\n\n    /**\n     * New line delimiter.\n     */\n    protected static final char NEW_LINE = '\\n';\n\n    /**\n     * How truncated values are shown.\n     */\n    protected static final String TRUNCATION_MARKER = \"[...]\";\n\n    /**\n     * The maximum length for a single line string when trying to be brief.\n     */\n    protected static final int MAX_BREVITY_LENGTH = 50;\n\n    /**\n     * The number of bytes to display when showing byte array.\n     */\n    protected static final int MAX_BYTE_COUNT_BEFORE_TRUNCATION = 8;\n\n    /**\n     * The intent spacing on json based responses.\n     */\n    public static final int INDENT_SPACES = 3;\n\n    /**\n     * The internal server error threshold defined by http protocol.\n     */\n    public static final int INTERNAL_SERVER_ERROR = 500;\n\n    /**\n     * The throwsite header identifier\n     */\n    protected static final String X_THROWSITE = \"x-throwsite\";\n\n    /**\n     * The response headers.\n     */\n    private final List<String> mResponseHeaders;\n\n    /**\n     * The OneDriveError response.\n     */\n    private final OneDriveErrorResponse mError;\n\n    /**\n     * The http method.\n     */\n    private final String mMethod;\n\n    /**\n     * The request url.\n     */\n    private final String mUrl;\n\n    /**\n     * The request headers.\n     */\n    private final List<String> mRequestHeaders;\n\n    /**\n     * The request body represented as a string.\n     */\n    private final String mRequestBody;\n\n    /**\n     * The http status code.\n     */\n    private final int mResponseCode;\n\n    /**\n     * The http status message.\n     */\n    private final String mResponseMessage;\n\n    /**\n     * Create a OneDrive service exception.\n     * @param method The method that caused the exception.\n     * @param url The url.\n     * @param requestHeaders The request headers.\n     * @param requestBody The request body.\n     * @param responseCode The response code.\n     * @param responseMessage The response message.\n     * @param responseHeaders The response headers.\n     * @param error The error response if available.\n     */\n    protected OneDriveServiceException(final String method,\n                                       final String url,\n                                       final List<String> requestHeaders,\n                                       final String requestBody,\n                                       final int responseCode,\n                                       final String responseMessage,\n                                       final List<String> responseHeaders,\n                                       final OneDriveErrorResponse error) {\n        super(responseMessage, null, null);\n        mMethod = method;\n        mUrl = url;\n        mRequestHeaders = requestHeaders;\n        mRequestBody = requestBody;\n        mResponseCode = responseCode;\n        mResponseMessage = responseMessage;\n        mResponseHeaders = responseHeaders;\n        mError = error;\n    }\n\n    @Override\n    public String getMessage() {\n        return getMessage(false);\n    }\n\n    /**\n     * The response headers.\n     * @return The list of response headers\n     */\n    public List<String> getResponseHeaders() {\n        return mResponseHeaders;\n    }\n\n    /**\n     * Gets the message for this exception.\n     * @param verbose If the message should be brief or more verbose.\n     * @return The message.\n     */\n    public String getMessage(final boolean verbose) {\n        final StringBuilder sb = new StringBuilder();\n        if (mError != null && mError.error != null) {\n            sb.append(\"Error code: \").append(mError.error.code).append(NEW_LINE);\n            sb.append(\"Error message: \").append(mError.error.message).append(NEW_LINE);\n            sb.append(NEW_LINE);\n        }\n        // Request information\n        sb.append(mMethod).append(' ').append(mUrl).append(NEW_LINE);\n        for (final String header : mRequestHeaders) {\n            if (verbose) {\n                sb.append(header);\n            } else {\n                final String truncatedHeader = header.substring(0, Math.min(MAX_BREVITY_LENGTH, header.length()));\n                sb.append(truncatedHeader);\n                if (truncatedHeader.length() == MAX_BREVITY_LENGTH) {\n                    sb.append(TRUNCATION_MARKER);\n                }\n            }\n            sb.append(NEW_LINE);\n        }\n        if (mRequestBody != null) {\n            if (verbose) {\n                sb.append(mRequestBody);\n            } else {\n                final int bodyLength = Math.min(MAX_BREVITY_LENGTH, mRequestBody.length());\n                final String truncatedBody = mRequestBody.substring(0, bodyLength);\n                sb.append(truncatedBody);\n                if (truncatedBody.length() == MAX_BREVITY_LENGTH) {\n                    sb.append(TRUNCATION_MARKER);\n                }\n            }\n        }\n        sb.append(NEW_LINE).append(NEW_LINE);\n\n        // Response information\n        sb.append(mResponseCode).append(\" : \").append(mResponseMessage).append(NEW_LINE);\n        for (final String header : mResponseHeaders) {\n            if (verbose) {\n                sb.append(header).append(NEW_LINE);\n            } else {\n                if (header.toLowerCase(Locale.ROOT).startsWith(X_THROWSITE)) {\n                    sb.append(header).append(NEW_LINE);\n                }\n            }\n        }\n        if (verbose && mError != null && mError.rawObject != null) {\n            try {\n                final JSONObject jsonObject = new JSONObject(mError.rawObject.toString());\n                sb.append(jsonObject.toString(INDENT_SPACES)).append(NEW_LINE);\n            } catch (final JSONException ignored) {\n                sb.append(\"[Warning: Unable to parse error message body]\").append(NEW_LINE);\n                sb.append(mError.rawObject.toString()).append(NEW_LINE);\n            }\n        } else {\n            sb.append(TRUNCATION_MARKER).append(NEW_LINE).append(NEW_LINE);\n            sb.append(\"[Some information was truncated for brevity, enable debug logging for more details]\");\n        }\n        return sb.toString();\n    }\n\n    /**\n     * Gets the error message from the OneDrive service object.\n     * @return The error message.\n     */\n    public OneDriveError getServiceError() {\n        return mError.error;\n    }\n\n    @Override\n    public boolean isError(final OneDriveErrorCodes expectedCode) {\n        if (getServiceError() != null) {\n            return getServiceError().isError(expectedCode);\n        }\n        return false;\n    }\n\n    /**\n     * Creates a OneDrive service exception from a given failed http request.\n     * @param request The request that resulted in this failure.\n     * @param serializable The serialized object that was sent with this request.\n     * @param serializer The serializer to re-create the option in its over the wire state.\n     * @param connection The connection that was used to extract the response information from.\n     * @param <T> The type of the serializable object.\n     * @return The new OneDriveServiceException instance.\n     * @throws IOException An exception occurs if there were any problems processing the connection.\n     */\n    public static <T> OneDriveServiceException createFromConnection(final IHttpRequest request,\n                                                                    final T serializable,\n                                                                    final ISerializer serializer,\n                                                                    final IConnection connection)\n            throws IOException {\n        final String method = connection.getRequestMethod();\n        final String url = request.getRequestUrl().toString();\n        final List<String> requestHeaders = new LinkedList<>();\n        for (final HeaderOption option : request.getHeaders()) {\n            requestHeaders.add(option.getName() + \" : \" + option.getValue());\n        }\n        final String requestBody;\n        if (serializable instanceof byte[]) {\n            final byte[] bytes = (byte[])serializable;\n            StringBuilder sb = new StringBuilder();\n            sb.append(\"byte[\").append(bytes.length).append(\"]\");\n\n            sb.append(\" {\");\n            for (int i = 0; i < MAX_BYTE_COUNT_BEFORE_TRUNCATION && i < bytes.length; i++) {\n                sb.append(bytes[i]).append(\", \");\n            }\n            if (bytes.length > MAX_BYTE_COUNT_BEFORE_TRUNCATION) {\n                sb.append(TRUNCATION_MARKER).append(\"}\");\n            }\n            requestBody = sb.toString();\n        } else if (serializable != null) {\n            requestBody = serializer.serializeObject(serializable);\n        } else {\n            requestBody = null;\n        }\n\n        final int responseCode = connection.getResponseCode();\n        final List<String> responseHeaders = new LinkedList<>();\n        final Map<String, String> headers = connection.getHeaders();\n        for (final String key : headers.keySet()) {\n            final String fieldPrefix;\n            if (key == null) {\n                fieldPrefix = \"\";\n            } else {\n                fieldPrefix = key + \" : \";\n            }\n            responseHeaders.add(fieldPrefix + headers.get(key));\n        }\n\n        final String responseMessage = connection.getResponseMessage();\n        final String rawOutput = DefaultHttpProvider.streamToString(connection.getInputStream());\n        OneDriveErrorResponse error = null;\n        Exception parsingException = null;\n\n        final String contentType = headers.get(DefaultHttpProvider.CONTENT_TYPE_HEADER_NAME);\n        if (contentType != null && contentType.contains(DefaultHttpProvider.JSON_CONTENT_TYPE)) {\n            try {\n                error = serializer.deserializeObject(rawOutput, OneDriveErrorResponse.class);\n            } catch (final Exception ex) {\n                parsingException = ex;\n            }\n        }\n\n        if (error == null) {\n            error = new OneDriveErrorResponse();\n            error.error = new OneDriveError();\n            error.error.code = \"Unable to parse error response message\";\n            error.error.message = \"Raw error: \" + rawOutput;\n            if (parsingException != null) {\n                error.error.innererror = new OneDriveInnerError();\n                error.error.innererror.code = parsingException.getMessage();\n            }\n        }\n\n        if (responseCode == INTERNAL_SERVER_ERROR) {\n            return new OneDriveFatalServiceException(method,\n                                                     url,\n                                                     requestHeaders,\n                                                     requestBody,\n                                                     responseCode,\n                                                     responseMessage,\n                                                     responseHeaders,\n                                                     error);\n        }\n\n        return new OneDriveServiceException(method,\n                                            url,\n                                            requestHeaders,\n                                            requestBody,\n                                            responseCode,\n                                            responseMessage,\n                                            responseHeaders,\n                                            error);\n    }\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/http/UrlConnection.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.http;\n\nimport com.onedrive.sdk.options.HeaderOption;\n\nimport java.io.IOException;\nimport java.io.InputStream;\nimport java.io.OutputStream;\nimport java.net.HttpURLConnection;\nimport java.net.ProtocolException;\nimport java.util.HashMap;\nimport java.util.Map;\n\n/**\n * Wrapper around HttpUrlConnection for testability\n */\npublic class UrlConnection implements IConnection {\n\n    /**\n     * The backing http url connection instance.\n     */\n    private final HttpURLConnection mConnection;\n\n    /**\n     * The response header cache.\n     */\n    private HashMap<String, String> mHeaders;\n\n    /**\n     * Creates a new UrlConnection.\n     * @param request The IHttpRequest to create the connection from.\n     * @throws IOException An exception occurs if there was a problem creating the connection.\n     */\n    public UrlConnection(final IHttpRequest request) throws IOException {\n        mConnection = (HttpURLConnection) request.getRequestUrl().openConnection();\n\n        for (final HeaderOption header : request.getHeaders()) {\n            mConnection.addRequestProperty(header.getName(), header.getValue());\n        }\n\n        try {\n            mConnection.setRequestMethod(request.getHttpMethod().toString());\n        } catch (final ProtocolException ignored) {\n            // Some HTTP verbs are not supported by older http implementations, use method override as an alternative\n            mConnection.setRequestMethod(HttpMethod.POST.toString());\n            mConnection.addRequestProperty(\"X-HTTP-Method-Override\", request.getHttpMethod().toString());\n            mConnection.addRequestProperty(\"X-HTTP-Method\", request.getHttpMethod().toString());\n        }\n    }\n\n    @Override\n    public void setFollowRedirects(final boolean followRedirects) {\n        mConnection.setInstanceFollowRedirects(followRedirects);\n    }\n\n    @Override\n    public void addRequestHeader(final String headerName, final String headerValue) {\n        mConnection.addRequestProperty(headerName, headerValue);\n    }\n\n    @Override\n    public OutputStream getOutputStream() throws IOException {\n        mConnection.setDoOutput(true);\n        return mConnection.getOutputStream();\n    }\n\n    @Override\n    public InputStream getInputStream() throws IOException {\n        final int httpClientErrorResponseCode = 400;\n        if (mConnection.getResponseCode() >= httpClientErrorResponseCode) {\n            return mConnection.getErrorStream();\n        } else {\n            return mConnection.getInputStream();\n        }\n    }\n\n    @Override\n    public int getResponseCode() throws IOException {\n        return mConnection.getResponseCode();\n    }\n\n    @Override\n    public String getResponseMessage() throws IOException {\n        return mConnection.getResponseMessage();\n    }\n\n    @Override\n    public void close() {\n        mConnection.disconnect();\n    }\n\n    @Override\n    public Map<String, String> getHeaders() {\n        if (mHeaders == null) {\n            mHeaders = getResponseHeaders(mConnection);\n        }\n        return mHeaders;\n    }\n\n    @Override\n    public String getRequestMethod() {\n        return mConnection.getRequestMethod();\n    }\n\n    @Override\n    public void setContentLength(final int length) {\n        mConnection.setFixedLengthStreamingMode(length);\n    }\n\n    /**\n     * Gets the response headers from a http url connection.\n     * @param connection The http connection.\n     * @return The set of headers names and value.\n     */\n    private static HashMap<String, String> getResponseHeaders(final HttpURLConnection connection) {\n        final HashMap<String, String> headers = new HashMap<>();\n        int index = 0;\n        while (true) {\n            final String headerName = connection.getHeaderFieldKey(index);\n            final String headerValue = connection.getHeaderField(index);\n            if (headerName == null && headerValue == null) {\n                break;\n            }\n            headers.put(headerName, headerValue);\n            index++;\n        }\n\n        return headers;\n    }\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/logger/DefaultLogger.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.logger;\n\nimport android.util.Log;\n\n/**\n * The default logger for the service client, which writes to logcat.\n */\npublic class DefaultLogger implements ILogger {\n\n    /**\n     * The logging level.\n     */\n    private LoggerLevel mLevel = LoggerLevel.Error;\n\n    /**\n     * Sets the logging level of this logger.\n     * @param level The level to log at.\n     */\n    public void setLoggingLevel(final LoggerLevel level) {\n        Log.i(getTag(), \"Setting logging level to \" + level);\n        mLevel = level;\n    }\n\n    /**\n     * Gets the logging level of this logger.\n     * @return The level the logger is set to.\n     */\n    public LoggerLevel getLoggingLevel() {\n        return mLevel;\n    }\n\n    /**\n     * Creates the tag automatically.\n     * @return The tag for the current method.\n     * Sourced from https://gist.github.com/eefret/a9c7ac052854a10a8936\n     */\n    private String getTag() {\n        try {\n            final StringBuilder sb = new StringBuilder();\n            final int callerStackDepth = 4;\n            final String className = Thread.currentThread().getStackTrace()[callerStackDepth].getClassName();\n            sb.append(className.substring(className.lastIndexOf(\".\") + 1));\n            sb.append(\"[\");\n            sb.append(Thread.currentThread().getStackTrace()[callerStackDepth].getMethodName());\n            sb.append(\"] - \");\n            sb.append(Thread.currentThread().getStackTrace()[callerStackDepth].getLineNumber());\n            return sb.toString();\n        } catch (final Exception ex) {\n            Log.e(\"DefaultLogger\", ex.getMessage());\n        }\n        return null;\n    }\n\n    /**\n     * Logs a debug message.\n     * @param message The message.\n     */\n    @Override\n    public void logDebug(final String message) {\n        switch (mLevel) {\n            case Debug:\n                Log.d(getTag(), message);\n            default:\n            case Error:\n        }\n    }\n\n    /**\n     * Logs an error message with throwable.\n     * @param message The message.\n     * @param throwable The throwable.\n     */\n    @Override\n    public void logError(final String message, final Throwable throwable) {\n        switch (mLevel) {\n            default:\n            case Debug:\n            case Error:\n                Log.e(getTag(), message, throwable);\n        }\n    }\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/logger/ILogger.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.logger;\n\n/**\n * The logger for the service client.\n */\npublic interface ILogger {\n\n    /**\n     * Sets the logging level of this logger.\n     * @param level The level to log at.\n     */\n    void setLoggingLevel(final LoggerLevel level);\n\n    /**\n     * Gets the logging level of this logger.\n     * @return The level the logger is set to.\n     */\n    LoggerLevel getLoggingLevel();\n\n    /**\n     * Log a debug message.\n     * @param message The message.\n     */\n    void logDebug(final String message);\n\n    /**\n     * Log an error message with throwable.\n     * @param message The message.\n     * @param throwable The throwable.\n     */\n    void logError(final String message, final Throwable throwable);\n}\n\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/logger/LoggerLevel.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.logger;\n\n/**\n * Describes the logging levels supported by this client.\n */\npublic enum LoggerLevel {\n    /**\n     * Log only errors, the default.\n     */\n    Error,\n\n    /**\n     * Log debug information.\n     */\n    Debug\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/options/HeaderOption.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.options;\n\n/**\n * A header value.\n */\npublic class HeaderOption extends Option {\n\n    /**\n     * Creates a header option object.\n     * @param name The name of the header.\n     * @param value The value of the header.\n     */\n    public HeaderOption(final  String name, final String value) {\n        super(name, value);\n    }\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/options/Option.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.options;\n\n/**\n * An option that is settable for a request.\n */\npublic class Option {\n\n    /**\n     * The name of the option.\n     */\n    private final String mName;\n\n    /**\n     * The value of the option.\n     */\n    private final String mValue;\n\n    /**\n     * Creates an option object.\n     * @param name The name of the option.\n     * @param value The value of the option.\n     */\n    protected Option(final String name, final String value) {\n        mName = name;\n        mValue = value;\n    }\n\n    /**\n     * Gets the name of the option.\n     * @return The name of the option.\n     */\n    public String getName() {\n        return mName;\n    }\n\n    /**\n     * Gets the value of the option.\n     * @return The value of the option.\n     */\n    public String getValue() {\n        return mValue;\n    }\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/options/QueryOption.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.options;\n\n/**\n * A query parameter.\n */\npublic class QueryOption extends Option {\n\n    /**\n     * Create a query parameter option object.\n     * @param name The name of the query parameter.\n     * @param value The value of the query parameter.\n     */\n    public QueryOption(final String name, final String value) {\n        super(name, value);\n    }\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/serializer/CalendarSerializer.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.serializer;\nimport android.annotation.SuppressLint;\n\nimport java.text.ParseException;\nimport java.text.SimpleDateFormat;\nimport java.util.Calendar;\nimport java.util.Date;\nimport java.util.Locale;\nimport java.util.TimeZone;\n\n/**\n * Serializes and deserializes a string.\n * https://github.com/MSOpenTech/orc-for-android/blob/master/src/orc-android/\n *  src/main/java/com/microsoft/services/orc/serialization/impl/CalendarSerializer.java\n */\npublic final class CalendarSerializer {\n\n    /**\n     * Not available for instantiation.\n     */\n    private CalendarSerializer() {\n    }\n\n    /**\n     * Deserializes an ISO-8601 formatted date.\n     * @param strVal The string val.\n     * @return The calendar.\n     * @throws java.text.ParseException The parse exception.\n     */\n    public static Calendar deserialize(final String strVal) throws ParseException {\n        // Change Z to +0000 to adapt the string to a format\n        // that can be parsed in Java\n        final boolean hasZ = strVal.indexOf('Z') != -1;\n        String modifiedStrVal;\n        final String zSuffix;\n        if (hasZ) {\n            zSuffix = \"Z\";\n            modifiedStrVal = strVal.replace(\"Z\", \"+0000\");\n        } else {\n            zSuffix = \"\";\n            modifiedStrVal = strVal;\n        }\n\n        // Parse the well-formatted date string.\n        final String datePattern;\n        if (modifiedStrVal.contains(\".\")) {\n            //SimpleDateFormat only supports 3 milliseconds\n            String milliseconds = modifiedStrVal.substring(modifiedStrVal.indexOf(\".\") + 1,\n                                                           modifiedStrVal.indexOf(\"+\"));\n            final int millisSegmentLength = 3;\n            if (milliseconds.length() > millisSegmentLength) {\n                milliseconds = milliseconds.substring(0, millisSegmentLength);\n                modifiedStrVal = modifiedStrVal.substring(0,\n                    modifiedStrVal.indexOf(\".\") + 1)\n                    + milliseconds\n                    + modifiedStrVal.substring(modifiedStrVal.indexOf(\"+\"));\n            }\n\n            datePattern = \"yyyy-MM-dd'T'HH:mm:ss.SSS\" + zSuffix;\n        } else {\n            datePattern = \"yyyy-MM-dd'T'HH:mm:ss\" + zSuffix;\n        }\n\n        @SuppressLint(\"SimpleDateFormat\")\n        final SimpleDateFormat dateFormat = new SimpleDateFormat(datePattern);\n        dateFormat.setTimeZone(TimeZone.getDefault());\n\n        final Date date = dateFormat.parse(modifiedStrVal);\n\n        final Calendar calendar = java.util.Calendar.getInstance();\n        calendar.setTime(date);\n        return calendar;\n    }\n\n    /**\n     * Serializes the string.\n     *\n     * @param src The src.\n     * @return The string.\n     */\n    public static String serialize(final Calendar src) {\n        final SimpleDateFormat dateFormat = new SimpleDateFormat(\"yyyy-MM-dd'T'HH:mm:ss'.'SSS'Z'\", Locale.ROOT);\n        dateFormat.setTimeZone(TimeZone.getTimeZone(\"UTC\"));\n        return dateFormat.format(src.getTime());\n    }\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/serializer/DefaultSerializer.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.serializer;\n\nimport com.google.gson.Gson;\nimport com.google.gson.JsonObject;\n\nimport com.onedrive.sdk.logger.ILogger;\n\n/**\n * The default serializer implementation for the OneDrive SDK.\n */\npublic class DefaultSerializer implements ISerializer {\n\n    /**\n     * The instance of the internal serializer.\n     */\n    private final Gson mGson;\n\n    /**\n     * The logger.\n     */\n    private final ILogger mLogger;\n\n    /**\n     * Creates a DefaultSerializer.\n     * @param logger The logger.\n     */\n    public DefaultSerializer(final ILogger logger) {\n        mLogger = logger;\n        mGson = GsonFactory.getGsonInstance(logger);\n    }\n\n    /**\n     * Deserialize an object from the input string.\n     * @param inputString The string that stores the representation of the item.\n     * @param clazz The .class of the item to be deserialized.\n     * @param <T> The type of the item to be deserialized.\n     * @return The deserialized item from the input string.\n     */\n    @Override\n    public <T> T deserializeObject(final String inputString, final Class<T> clazz) {\n        final T jsonObject = mGson.fromJson(inputString, clazz);\n\n        // Populate the json backed fields for any annotations that are not in the object model\n        if (jsonObject instanceof IJsonBackedObject) {\n            mLogger.logDebug(\"Deserializing type \" + clazz.getSimpleName());\n            final IJsonBackedObject jsonBackedObject = (IJsonBackedObject)jsonObject;\n            jsonBackedObject.setRawObject(this, mGson.fromJson(inputString, JsonObject.class));\n        } else {\n            mLogger.logDebug(\"Deserializing a non-IJsonBackedObject type \" + clazz.getSimpleName());\n        }\n\n        return jsonObject;\n    }\n\n    /**\n     * Serializes an object into a string.\n     *\n     * @param serializableObject The object to convert into a string.\n     * @param <T> The type of the item to be serialized.\n     * @return The string representation of that item.\n     */\n    @Override\n    public <T> String serializeObject(final T serializableObject) {\n        mLogger.logDebug(\"Serializing type \" + serializableObject.getClass().getSimpleName());\n        return mGson.toJson(serializableObject);\n    }\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/serializer/GsonFactory.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.serializer;\n\nimport com.google.gson.Gson;\nimport com.google.gson.GsonBuilder;\nimport com.google.gson.JsonDeserializationContext;\nimport com.google.gson.JsonDeserializer;\nimport com.google.gson.JsonElement;\nimport com.google.gson.JsonParseException;\nimport com.google.gson.JsonPrimitive;\nimport com.google.gson.JsonSerializationContext;\nimport com.google.gson.JsonSerializer;\n\nimport com.onedrive.sdk.logger.ILogger;\n\nimport java.lang.reflect.Type;\nimport java.text.ParseException;\nimport java.util.Calendar;\n\n/**\n * Produce Gson instances that can parse OneDrive responses.\n */\nfinal class GsonFactory {\n\n    /**\n     * Default constructor.\n     */\n    private GsonFactory() {\n    }\n\n    /**\n     * Creates an instance of Gson.\n     * @param logger The logger.\n     * @return The new instance.\n     */\n    public static Gson getGsonInstance(final ILogger logger) {\n\n        final JsonSerializer<Calendar> dateJsonSerializer = new JsonSerializer<Calendar>() {\n            @Override\n            public JsonElement serialize(final Calendar src,\n                                         final Type typeOfSrc,\n                                         final JsonSerializationContext context) {\n                if (src == null) {\n                    return null;\n                }\n                try {\n                    return new JsonPrimitive(CalendarSerializer.serialize(src));\n                } catch (final Exception e) {\n                    logger.logError(\"Parsing issue on \" + src, e);\n                    return null;\n                }\n            }\n        };\n\n        final JsonDeserializer<Calendar> dateJsonDeserializer = new JsonDeserializer<Calendar>() {\n            @Override\n            public Calendar deserialize(final JsonElement json,\n                                        final Type typeOfT,\n                                        final JsonDeserializationContext context) throws JsonParseException {\n                if (json == null) {\n                    return null;\n                }\n                try {\n                    return CalendarSerializer.deserialize(json.getAsString());\n                } catch (final ParseException e) {\n                    logger.logError(\"Parsing issue on \" + json.getAsString(), e);\n                    return null;\n                }\n            }\n        };\n\n        return new GsonBuilder()\n                .registerTypeAdapter(Calendar.class, dateJsonSerializer)\n                .registerTypeAdapter(Calendar.class, dateJsonDeserializer)\n                .create();\n    }\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/serializer/IJsonBackedObject.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.serializer;\n\nimport com.google.gson.JsonObject;\n\n/**\n * An object was parsed from json.\n */\npublic interface IJsonBackedObject {\n\n    /**\n     * Sets the raw json object this object was parsed from.\n     *\n     * @param serializer The serializer for sub class deserialization.\n     * @param json The json that this object was derived from.\n     */\n    void setRawObject(final ISerializer serializer, final JsonObject json);\n}\n"
  },
  {
    "path": "onedrivesdk/src/main/java/com/onedrive/sdk/serializer/ISerializer.java",
    "content": "// ------------------------------------------------------------------------------\n// Copyright (c) 2015 Microsoft Corporation\n// \n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n// ------------------------------------------------------------------------------\n\npackage com.onedrive.sdk.serializer;\n\n/**\n * Serializes and deserializes items from strings into their types.\n */\npublic interface ISerializer {\n\n    /**\n     * Deserialize an object from the input string.\n     * @param inputString The string that stores the representation of the item.\n     * @param clazz The .class of the item to be deserialized.\n     * @param <T> The type of the item to be deserialized.\n     * @return The deserialized item from the input string.\n     */\n    <T> T deserializeObject(final String inputString, Class<T> clazz);\n\n    /**\n     * Serializes an object into a string.\n     * @param serializableObject The object to convert into a string.\n     * @param <T> The type of the item to be serialized.\n     * @return The string representation of that item.\n     */\n    <T> String serializeObject(final T serializableObject);\n}\n"
  },
  {
    "path": "settings.gradle",
    "content": "include ':onedrivesdk'"
  }
]