164ce8c2e2085a0d5ff3e69ba5520873d41c76af5Tomasz Mikolajewski/* 264ce8c2e2085a0d5ff3e69ba5520873d41c76af5Tomasz Mikolajewski * Copyright (C) 2015 The Android Open Source Project 364ce8c2e2085a0d5ff3e69ba5520873d41c76af5Tomasz Mikolajewski * 464ce8c2e2085a0d5ff3e69ba5520873d41c76af5Tomasz Mikolajewski * Licensed under the Apache License, Version 2.0 (the "License"); 564ce8c2e2085a0d5ff3e69ba5520873d41c76af5Tomasz Mikolajewski * you may not use this file except in compliance with the License. 664ce8c2e2085a0d5ff3e69ba5520873d41c76af5Tomasz Mikolajewski * You may obtain a copy of the License at 764ce8c2e2085a0d5ff3e69ba5520873d41c76af5Tomasz Mikolajewski * 864ce8c2e2085a0d5ff3e69ba5520873d41c76af5Tomasz Mikolajewski * http://www.apache.org/licenses/LICENSE-2.0 964ce8c2e2085a0d5ff3e69ba5520873d41c76af5Tomasz Mikolajewski * 1064ce8c2e2085a0d5ff3e69ba5520873d41c76af5Tomasz Mikolajewski * Unless required by applicable law or agreed to in writing, software 1164ce8c2e2085a0d5ff3e69ba5520873d41c76af5Tomasz Mikolajewski * distributed under the License is distributed on an "AS IS" BASIS, 1264ce8c2e2085a0d5ff3e69ba5520873d41c76af5Tomasz Mikolajewski * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1364ce8c2e2085a0d5ff3e69ba5520873d41c76af5Tomasz Mikolajewski * See the License for the specific language governing permissions and 1464ce8c2e2085a0d5ff3e69ba5520873d41c76af5Tomasz Mikolajewski * limitations under the License. 1564ce8c2e2085a0d5ff3e69ba5520873d41c76af5Tomasz Mikolajewski */ 1664ce8c2e2085a0d5ff3e69ba5520873d41c76af5Tomasz Mikolajewski 1764ce8c2e2085a0d5ff3e69ba5520873d41c76af5Tomasz Mikolajewskipackage android.support.provider; 1864ce8c2e2085a0d5ff3e69ba5520873d41c76af5Tomasz Mikolajewski 19c39d9c75590eca86a5e7e32a8824ba04a0d42e9bAlan Viveretteimport android.support.annotation.RestrictTo; 20c39d9c75590eca86a5e7e32a8824ba04a0d42e9bAlan Viverette 21c39d9c75590eca86a5e7e32a8824ba04a0d42e9bAlan Viveretteimport static android.support.annotation.RestrictTo.Scope.GROUP_ID; 22c39d9c75590eca86a5e7e32a8824ba04a0d42e9bAlan Viverette 2364ce8c2e2085a0d5ff3e69ba5520873d41c76af5Tomasz Mikolajewski/** 2464ce8c2e2085a0d5ff3e69ba5520873d41c76af5Tomasz Mikolajewski * @hide 2564ce8c2e2085a0d5ff3e69ba5520873d41c76af5Tomasz Mikolajewski */ 26c39d9c75590eca86a5e7e32a8824ba04a0d42e9bAlan Viverette@RestrictTo(GROUP_ID) 2764ce8c2e2085a0d5ff3e69ba5520873d41c76af5Tomasz Mikolajewskiclass ParsedDocumentId { 2864ce8c2e2085a0d5ff3e69ba5520873d41c76af5Tomasz Mikolajewski public final String mArchiveId; 2964ce8c2e2085a0d5ff3e69ba5520873d41c76af5Tomasz Mikolajewski public final String mPath; 3064ce8c2e2085a0d5ff3e69ba5520873d41c76af5Tomasz Mikolajewski 3164ce8c2e2085a0d5ff3e69ba5520873d41c76af5Tomasz Mikolajewski public ParsedDocumentId(String archiveId, String path) { 3264ce8c2e2085a0d5ff3e69ba5520873d41c76af5Tomasz Mikolajewski mArchiveId = archiveId; 3364ce8c2e2085a0d5ff3e69ba5520873d41c76af5Tomasz Mikolajewski mPath = path; 3464ce8c2e2085a0d5ff3e69ba5520873d41c76af5Tomasz Mikolajewski } 3564ce8c2e2085a0d5ff3e69ba5520873d41c76af5Tomasz Mikolajewski 3664ce8c2e2085a0d5ff3e69ba5520873d41c76af5Tomasz Mikolajewski static public ParsedDocumentId fromDocumentId(String documentId, char idDelimiter) { 3764ce8c2e2085a0d5ff3e69ba5520873d41c76af5Tomasz Mikolajewski final int delimiterPosition = documentId.indexOf(idDelimiter); 3864ce8c2e2085a0d5ff3e69ba5520873d41c76af5Tomasz Mikolajewski if (delimiterPosition == -1) { 3964ce8c2e2085a0d5ff3e69ba5520873d41c76af5Tomasz Mikolajewski return new ParsedDocumentId(documentId, null); 4064ce8c2e2085a0d5ff3e69ba5520873d41c76af5Tomasz Mikolajewski } else { 4164ce8c2e2085a0d5ff3e69ba5520873d41c76af5Tomasz Mikolajewski return new ParsedDocumentId(documentId.substring(0, delimiterPosition), 4264ce8c2e2085a0d5ff3e69ba5520873d41c76af5Tomasz Mikolajewski documentId.substring((delimiterPosition + 1))); 4364ce8c2e2085a0d5ff3e69ba5520873d41c76af5Tomasz Mikolajewski } 4464ce8c2e2085a0d5ff3e69ba5520873d41c76af5Tomasz Mikolajewski } 4564ce8c2e2085a0d5ff3e69ba5520873d41c76af5Tomasz Mikolajewski 4664ce8c2e2085a0d5ff3e69ba5520873d41c76af5Tomasz Mikolajewski static public boolean hasPath(String documentId, char idDelimiter) { 4764ce8c2e2085a0d5ff3e69ba5520873d41c76af5Tomasz Mikolajewski return documentId.indexOf(idDelimiter) != -1; 4864ce8c2e2085a0d5ff3e69ba5520873d41c76af5Tomasz Mikolajewski } 4964ce8c2e2085a0d5ff3e69ba5520873d41c76af5Tomasz Mikolajewski 5064ce8c2e2085a0d5ff3e69ba5520873d41c76af5Tomasz Mikolajewski public String toDocumentId(char idDelimiter) { 5164ce8c2e2085a0d5ff3e69ba5520873d41c76af5Tomasz Mikolajewski if (mPath == null) { 5264ce8c2e2085a0d5ff3e69ba5520873d41c76af5Tomasz Mikolajewski return mArchiveId; 5364ce8c2e2085a0d5ff3e69ba5520873d41c76af5Tomasz Mikolajewski } else { 5464ce8c2e2085a0d5ff3e69ba5520873d41c76af5Tomasz Mikolajewski return mArchiveId + idDelimiter + mPath; 5564ce8c2e2085a0d5ff3e69ba5520873d41c76af5Tomasz Mikolajewski } 5664ce8c2e2085a0d5ff3e69ba5520873d41c76af5Tomasz Mikolajewski } 5764ce8c2e2085a0d5ff3e69ba5520873d41c76af5Tomasz Mikolajewski}; 58