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}