12af632f87d487deaa5b2eb71341cfc4f0c0d1173Dianne Hackborn/* 22af632f87d487deaa5b2eb71341cfc4f0c0d1173Dianne Hackborn * Copyright (C) 2009 The Android Open Source Project 32af632f87d487deaa5b2eb71341cfc4f0c0d1173Dianne Hackborn * 42af632f87d487deaa5b2eb71341cfc4f0c0d1173Dianne Hackborn * Licensed under the Apache License, Version 2.0 (the "License"); 52af632f87d487deaa5b2eb71341cfc4f0c0d1173Dianne Hackborn * you may not use this file except in compliance with the License. 62af632f87d487deaa5b2eb71341cfc4f0c0d1173Dianne Hackborn * You may obtain a copy of the License at 72af632f87d487deaa5b2eb71341cfc4f0c0d1173Dianne Hackborn * 82af632f87d487deaa5b2eb71341cfc4f0c0d1173Dianne Hackborn * http://www.apache.org/licenses/LICENSE-2.0 92af632f87d487deaa5b2eb71341cfc4f0c0d1173Dianne Hackborn * 102af632f87d487deaa5b2eb71341cfc4f0c0d1173Dianne Hackborn * Unless required by applicable law or agreed to in writing, software 112af632f87d487deaa5b2eb71341cfc4f0c0d1173Dianne Hackborn * distributed under the License is distributed on an "AS IS" BASIS, 122af632f87d487deaa5b2eb71341cfc4f0c0d1173Dianne Hackborn * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 132af632f87d487deaa5b2eb71341cfc4f0c0d1173Dianne Hackborn * See the License for the specific language governing permissions and 142af632f87d487deaa5b2eb71341cfc4f0c0d1173Dianne Hackborn * limitations under the License. 152af632f87d487deaa5b2eb71341cfc4f0c0d1173Dianne Hackborn */ 162af632f87d487deaa5b2eb71341cfc4f0c0d1173Dianne Hackborn 172af632f87d487deaa5b2eb71341cfc4f0c0d1173Dianne Hackbornpackage android.content.pm; 182af632f87d487deaa5b2eb71341cfc4f0c0d1173Dianne Hackborn 192af632f87d487deaa5b2eb71341cfc4f0c0d1173Dianne Hackbornimport android.os.Parcel; 202af632f87d487deaa5b2eb71341cfc4f0c0d1173Dianne Hackbornimport android.os.Parcelable; 212af632f87d487deaa5b2eb71341cfc4f0c0d1173Dianne Hackbornimport android.os.PatternMatcher; 222af632f87d487deaa5b2eb71341cfc4f0c0d1173Dianne Hackborn 232af632f87d487deaa5b2eb71341cfc4f0c0d1173Dianne Hackborn/** 242af632f87d487deaa5b2eb71341cfc4f0c0d1173Dianne Hackborn * Description of permissions needed to access a particular path 252af632f87d487deaa5b2eb71341cfc4f0c0d1173Dianne Hackborn * in a {@link ProviderInfo}. 262af632f87d487deaa5b2eb71341cfc4f0c0d1173Dianne Hackborn */ 272af632f87d487deaa5b2eb71341cfc4f0c0d1173Dianne Hackbornpublic class PathPermission extends PatternMatcher { 282af632f87d487deaa5b2eb71341cfc4f0c0d1173Dianne Hackborn private final String mReadPermission; 292af632f87d487deaa5b2eb71341cfc4f0c0d1173Dianne Hackborn private final String mWritePermission; 302af632f87d487deaa5b2eb71341cfc4f0c0d1173Dianne Hackborn 312af632f87d487deaa5b2eb71341cfc4f0c0d1173Dianne Hackborn public PathPermission(String pattern, int type, String readPermission, 322af632f87d487deaa5b2eb71341cfc4f0c0d1173Dianne Hackborn String writePermission) { 332af632f87d487deaa5b2eb71341cfc4f0c0d1173Dianne Hackborn super(pattern, type); 342af632f87d487deaa5b2eb71341cfc4f0c0d1173Dianne Hackborn mReadPermission = readPermission; 352af632f87d487deaa5b2eb71341cfc4f0c0d1173Dianne Hackborn mWritePermission = writePermission; 362af632f87d487deaa5b2eb71341cfc4f0c0d1173Dianne Hackborn } 372af632f87d487deaa5b2eb71341cfc4f0c0d1173Dianne Hackborn 382af632f87d487deaa5b2eb71341cfc4f0c0d1173Dianne Hackborn public String getReadPermission() { 392af632f87d487deaa5b2eb71341cfc4f0c0d1173Dianne Hackborn return mReadPermission; 402af632f87d487deaa5b2eb71341cfc4f0c0d1173Dianne Hackborn } 412af632f87d487deaa5b2eb71341cfc4f0c0d1173Dianne Hackborn 422af632f87d487deaa5b2eb71341cfc4f0c0d1173Dianne Hackborn public String getWritePermission() { 432af632f87d487deaa5b2eb71341cfc4f0c0d1173Dianne Hackborn return mWritePermission; 442af632f87d487deaa5b2eb71341cfc4f0c0d1173Dianne Hackborn } 452af632f87d487deaa5b2eb71341cfc4f0c0d1173Dianne Hackborn 462af632f87d487deaa5b2eb71341cfc4f0c0d1173Dianne Hackborn public void writeToParcel(Parcel dest, int flags) { 472af632f87d487deaa5b2eb71341cfc4f0c0d1173Dianne Hackborn super.writeToParcel(dest, flags); 482af632f87d487deaa5b2eb71341cfc4f0c0d1173Dianne Hackborn dest.writeString(mReadPermission); 492af632f87d487deaa5b2eb71341cfc4f0c0d1173Dianne Hackborn dest.writeString(mWritePermission); 502af632f87d487deaa5b2eb71341cfc4f0c0d1173Dianne Hackborn } 512af632f87d487deaa5b2eb71341cfc4f0c0d1173Dianne Hackborn 522af632f87d487deaa5b2eb71341cfc4f0c0d1173Dianne Hackborn public PathPermission(Parcel src) { 532af632f87d487deaa5b2eb71341cfc4f0c0d1173Dianne Hackborn super(src); 542af632f87d487deaa5b2eb71341cfc4f0c0d1173Dianne Hackborn mReadPermission = src.readString(); 552af632f87d487deaa5b2eb71341cfc4f0c0d1173Dianne Hackborn mWritePermission = src.readString(); 562af632f87d487deaa5b2eb71341cfc4f0c0d1173Dianne Hackborn } 572af632f87d487deaa5b2eb71341cfc4f0c0d1173Dianne Hackborn 582af632f87d487deaa5b2eb71341cfc4f0c0d1173Dianne Hackborn public static final Parcelable.Creator<PathPermission> CREATOR 592af632f87d487deaa5b2eb71341cfc4f0c0d1173Dianne Hackborn = new Parcelable.Creator<PathPermission>() { 602af632f87d487deaa5b2eb71341cfc4f0c0d1173Dianne Hackborn public PathPermission createFromParcel(Parcel source) { 612af632f87d487deaa5b2eb71341cfc4f0c0d1173Dianne Hackborn return new PathPermission(source); 622af632f87d487deaa5b2eb71341cfc4f0c0d1173Dianne Hackborn } 632af632f87d487deaa5b2eb71341cfc4f0c0d1173Dianne Hackborn 642af632f87d487deaa5b2eb71341cfc4f0c0d1173Dianne Hackborn public PathPermission[] newArray(int size) { 652af632f87d487deaa5b2eb71341cfc4f0c0d1173Dianne Hackborn return new PathPermission[size]; 662af632f87d487deaa5b2eb71341cfc4f0c0d1173Dianne Hackborn } 672af632f87d487deaa5b2eb71341cfc4f0c0d1173Dianne Hackborn }; 682af632f87d487deaa5b2eb71341cfc4f0c0d1173Dianne Hackborn}