13aa49b6fece334ace7525d42c1f6d0b7cdc1fbfbDianne Hackborn/* 23aa49b6fece334ace7525d42c1f6d0b7cdc1fbfbDianne Hackborn * Copyright (C) 2013 The Android Open Source Project 33aa49b6fece334ace7525d42c1f6d0b7cdc1fbfbDianne Hackborn * 43aa49b6fece334ace7525d42c1f6d0b7cdc1fbfbDianne Hackborn * Licensed under the Apache License, Version 2.0 (the "License"); 53aa49b6fece334ace7525d42c1f6d0b7cdc1fbfbDianne Hackborn * you may not use this file except in compliance with the License. 63aa49b6fece334ace7525d42c1f6d0b7cdc1fbfbDianne Hackborn * You may obtain a copy of the License at 73aa49b6fece334ace7525d42c1f6d0b7cdc1fbfbDianne Hackborn * 83aa49b6fece334ace7525d42c1f6d0b7cdc1fbfbDianne Hackborn * http://www.apache.org/licenses/LICENSE-2.0 93aa49b6fece334ace7525d42c1f6d0b7cdc1fbfbDianne Hackborn * 103aa49b6fece334ace7525d42c1f6d0b7cdc1fbfbDianne Hackborn * Unless required by applicable law or agreed to in writing, software 113aa49b6fece334ace7525d42c1f6d0b7cdc1fbfbDianne Hackborn * distributed under the License is distributed on an "AS IS" BASIS, 123aa49b6fece334ace7525d42c1f6d0b7cdc1fbfbDianne Hackborn * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 133aa49b6fece334ace7525d42c1f6d0b7cdc1fbfbDianne Hackborn * See the License for the specific language governing permissions and 143aa49b6fece334ace7525d42c1f6d0b7cdc1fbfbDianne Hackborn * limitations under the License. 153aa49b6fece334ace7525d42c1f6d0b7cdc1fbfbDianne Hackborn */ 163aa49b6fece334ace7525d42c1f6d0b7cdc1fbfbDianne Hackborn 173aa49b6fece334ace7525d42c1f6d0b7cdc1fbfbDianne Hackbornpackage android.content; 183aa49b6fece334ace7525d42c1f6d0b7cdc1fbfbDianne Hackborn 193aa49b6fece334ace7525d42c1f6d0b7cdc1fbfbDianne Hackborn/** 203aa49b6fece334ace7525d42c1f6d0b7cdc1fbfbDianne Hackborn * Representation of an owner of {@link UndoOperation} objects in an {@link UndoManager}. 21b811e64cb325c8b9c46a2e8e97ef1aa86ac8664bDianne Hackborn * 22b811e64cb325c8b9c46a2e8e97ef1aa86ac8664bDianne Hackborn * @hide 233aa49b6fece334ace7525d42c1f6d0b7cdc1fbfbDianne Hackborn */ 243aa49b6fece334ace7525d42c1f6d0b7cdc1fbfbDianne Hackbornpublic class UndoOwner { 253aa49b6fece334ace7525d42c1f6d0b7cdc1fbfbDianne Hackborn final String mTag; 26f59152cf00520d1bd36949b44faca2e1fcf6d28fJames Cook final UndoManager mManager; 273aa49b6fece334ace7525d42c1f6d0b7cdc1fbfbDianne Hackborn 283aa49b6fece334ace7525d42c1f6d0b7cdc1fbfbDianne Hackborn Object mData; 293aa49b6fece334ace7525d42c1f6d0b7cdc1fbfbDianne Hackborn int mOpCount; 303aa49b6fece334ace7525d42c1f6d0b7cdc1fbfbDianne Hackborn 313aa49b6fece334ace7525d42c1f6d0b7cdc1fbfbDianne Hackborn // For saving/restoring state. 323aa49b6fece334ace7525d42c1f6d0b7cdc1fbfbDianne Hackborn int mStateSeq; 333aa49b6fece334ace7525d42c1f6d0b7cdc1fbfbDianne Hackborn int mSavedIdx; 343aa49b6fece334ace7525d42c1f6d0b7cdc1fbfbDianne Hackborn 35f59152cf00520d1bd36949b44faca2e1fcf6d28fJames Cook UndoOwner(String tag, UndoManager manager) { 36f59152cf00520d1bd36949b44faca2e1fcf6d28fJames Cook if (tag == null) { 37f59152cf00520d1bd36949b44faca2e1fcf6d28fJames Cook throw new NullPointerException("tag can't be null"); 38f59152cf00520d1bd36949b44faca2e1fcf6d28fJames Cook } 39f59152cf00520d1bd36949b44faca2e1fcf6d28fJames Cook if (manager == null) { 40f59152cf00520d1bd36949b44faca2e1fcf6d28fJames Cook throw new NullPointerException("manager can't be null"); 41f59152cf00520d1bd36949b44faca2e1fcf6d28fJames Cook } 423aa49b6fece334ace7525d42c1f6d0b7cdc1fbfbDianne Hackborn mTag = tag; 43f59152cf00520d1bd36949b44faca2e1fcf6d28fJames Cook mManager = manager; 443aa49b6fece334ace7525d42c1f6d0b7cdc1fbfbDianne Hackborn } 453aa49b6fece334ace7525d42c1f6d0b7cdc1fbfbDianne Hackborn 463aa49b6fece334ace7525d42c1f6d0b7cdc1fbfbDianne Hackborn /** 473aa49b6fece334ace7525d42c1f6d0b7cdc1fbfbDianne Hackborn * Return the unique tag name identifying this owner. This is the tag 483aa49b6fece334ace7525d42c1f6d0b7cdc1fbfbDianne Hackborn * supplied to {@link UndoManager#getOwner(String, Object) UndoManager.getOwner} 493aa49b6fece334ace7525d42c1f6d0b7cdc1fbfbDianne Hackborn * and is immutable. 503aa49b6fece334ace7525d42c1f6d0b7cdc1fbfbDianne Hackborn */ 513aa49b6fece334ace7525d42c1f6d0b7cdc1fbfbDianne Hackborn public String getTag() { 523aa49b6fece334ace7525d42c1f6d0b7cdc1fbfbDianne Hackborn return mTag; 533aa49b6fece334ace7525d42c1f6d0b7cdc1fbfbDianne Hackborn } 543aa49b6fece334ace7525d42c1f6d0b7cdc1fbfbDianne Hackborn 553aa49b6fece334ace7525d42c1f6d0b7cdc1fbfbDianne Hackborn /** 563aa49b6fece334ace7525d42c1f6d0b7cdc1fbfbDianne Hackborn * Return the actual data object of the owner. This is the data object 573aa49b6fece334ace7525d42c1f6d0b7cdc1fbfbDianne Hackborn * supplied to {@link UndoManager#getOwner(String, Object) UndoManager.getOwner}. An 583aa49b6fece334ace7525d42c1f6d0b7cdc1fbfbDianne Hackborn * owner may have a null data if it was restored from a previously saved state with 593aa49b6fece334ace7525d42c1f6d0b7cdc1fbfbDianne Hackborn * no getOwner call to associate it with its data. 603aa49b6fece334ace7525d42c1f6d0b7cdc1fbfbDianne Hackborn */ 613aa49b6fece334ace7525d42c1f6d0b7cdc1fbfbDianne Hackborn public Object getData() { 623aa49b6fece334ace7525d42c1f6d0b7cdc1fbfbDianne Hackborn return mData; 633aa49b6fece334ace7525d42c1f6d0b7cdc1fbfbDianne Hackborn } 64f143ace3aa80227b7612c0a9428b2de996c4920aJames Cook 65f143ace3aa80227b7612c0a9428b2de996c4920aJames Cook @Override 66f143ace3aa80227b7612c0a9428b2de996c4920aJames Cook public String toString() { 67f143ace3aa80227b7612c0a9428b2de996c4920aJames Cook return "UndoOwner:[mTag=" + mTag + 68f143ace3aa80227b7612c0a9428b2de996c4920aJames Cook " mManager=" + mManager + 69f143ace3aa80227b7612c0a9428b2de996c4920aJames Cook " mData=" + mData + 70f143ace3aa80227b7612c0a9428b2de996c4920aJames Cook " mData=" + mData + 71f143ace3aa80227b7612c0a9428b2de996c4920aJames Cook " mOpCount=" + mOpCount + 72f143ace3aa80227b7612c0a9428b2de996c4920aJames Cook " mStateSeq=" + mStateSeq + 73f143ace3aa80227b7612c0a9428b2de996c4920aJames Cook " mSavedIdx=" + mSavedIdx + "]"; 74f143ace3aa80227b7612c0a9428b2de996c4920aJames Cook } 753aa49b6fece334ace7525d42c1f6d0b7cdc1fbfbDianne Hackborn} 76