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