PrintJob.java revision 4b9a4d16872bbb50712e007b419ac0b35ff1582d
14b9a4d16872bbb50712e007b419ac0b35ff1582dSvetoslav Ganov/* 24b9a4d16872bbb50712e007b419ac0b35ff1582dSvetoslav Ganov * Copyright (C) 2013 The Android Open Source Project 34b9a4d16872bbb50712e007b419ac0b35ff1582dSvetoslav Ganov * 44b9a4d16872bbb50712e007b419ac0b35ff1582dSvetoslav Ganov * Licensed under the Apache License, Version 2.0 (the "License"); 54b9a4d16872bbb50712e007b419ac0b35ff1582dSvetoslav Ganov * you may not use this file except in compliance with the License. 64b9a4d16872bbb50712e007b419ac0b35ff1582dSvetoslav Ganov * You may obtain a copy of the License at 74b9a4d16872bbb50712e007b419ac0b35ff1582dSvetoslav Ganov * 84b9a4d16872bbb50712e007b419ac0b35ff1582dSvetoslav Ganov * http://www.apache.org/licenses/LICENSE-2.0 94b9a4d16872bbb50712e007b419ac0b35ff1582dSvetoslav Ganov * 104b9a4d16872bbb50712e007b419ac0b35ff1582dSvetoslav Ganov * Unless required by applicable law or agreed to in writing, software 114b9a4d16872bbb50712e007b419ac0b35ff1582dSvetoslav Ganov * distributed under the License is distributed on an "AS IS" BASIS, 124b9a4d16872bbb50712e007b419ac0b35ff1582dSvetoslav Ganov * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 134b9a4d16872bbb50712e007b419ac0b35ff1582dSvetoslav Ganov * See the License for the specific language governing permissions and 144b9a4d16872bbb50712e007b419ac0b35ff1582dSvetoslav Ganov * limitations under the License. 154b9a4d16872bbb50712e007b419ac0b35ff1582dSvetoslav Ganov */ 164b9a4d16872bbb50712e007b419ac0b35ff1582dSvetoslav Ganov 174b9a4d16872bbb50712e007b419ac0b35ff1582dSvetoslav Ganovpackage android.print; 184b9a4d16872bbb50712e007b419ac0b35ff1582dSvetoslav Ganov 194b9a4d16872bbb50712e007b419ac0b35ff1582dSvetoslav Ganov 204b9a4d16872bbb50712e007b419ac0b35ff1582dSvetoslav Ganov/** 214b9a4d16872bbb50712e007b419ac0b35ff1582dSvetoslav Ganov * This class represents a print job from the perspective of 224b9a4d16872bbb50712e007b419ac0b35ff1582dSvetoslav Ganov * an application. 234b9a4d16872bbb50712e007b419ac0b35ff1582dSvetoslav Ganov */ 244b9a4d16872bbb50712e007b419ac0b35ff1582dSvetoslav Ganovpublic final class PrintJob { 254b9a4d16872bbb50712e007b419ac0b35ff1582dSvetoslav Ganov 264b9a4d16872bbb50712e007b419ac0b35ff1582dSvetoslav Ganov private final int mId; 274b9a4d16872bbb50712e007b419ac0b35ff1582dSvetoslav Ganov 284b9a4d16872bbb50712e007b419ac0b35ff1582dSvetoslav Ganov private final PrintManager mPrintManager; 294b9a4d16872bbb50712e007b419ac0b35ff1582dSvetoslav Ganov 304b9a4d16872bbb50712e007b419ac0b35ff1582dSvetoslav Ganov private PrintJobInfo mCachedInfo; 314b9a4d16872bbb50712e007b419ac0b35ff1582dSvetoslav Ganov 324b9a4d16872bbb50712e007b419ac0b35ff1582dSvetoslav Ganov PrintJob(PrintJobInfo info, PrintManager printManager) { 334b9a4d16872bbb50712e007b419ac0b35ff1582dSvetoslav Ganov mCachedInfo = info; 344b9a4d16872bbb50712e007b419ac0b35ff1582dSvetoslav Ganov mPrintManager = printManager; 354b9a4d16872bbb50712e007b419ac0b35ff1582dSvetoslav Ganov mId = info.getId(); 364b9a4d16872bbb50712e007b419ac0b35ff1582dSvetoslav Ganov } 374b9a4d16872bbb50712e007b419ac0b35ff1582dSvetoslav Ganov 384b9a4d16872bbb50712e007b419ac0b35ff1582dSvetoslav Ganov /** 394b9a4d16872bbb50712e007b419ac0b35ff1582dSvetoslav Ganov * Gets the unique print job id. 404b9a4d16872bbb50712e007b419ac0b35ff1582dSvetoslav Ganov * 414b9a4d16872bbb50712e007b419ac0b35ff1582dSvetoslav Ganov * @return The id. 424b9a4d16872bbb50712e007b419ac0b35ff1582dSvetoslav Ganov */ 434b9a4d16872bbb50712e007b419ac0b35ff1582dSvetoslav Ganov public int getId() { 444b9a4d16872bbb50712e007b419ac0b35ff1582dSvetoslav Ganov return mId; 454b9a4d16872bbb50712e007b419ac0b35ff1582dSvetoslav Ganov } 464b9a4d16872bbb50712e007b419ac0b35ff1582dSvetoslav Ganov 474b9a4d16872bbb50712e007b419ac0b35ff1582dSvetoslav Ganov /** 484b9a4d16872bbb50712e007b419ac0b35ff1582dSvetoslav Ganov * Gets the {@link PrintJobInfo} that describes this job. 494b9a4d16872bbb50712e007b419ac0b35ff1582dSvetoslav Ganov * <p> 504b9a4d16872bbb50712e007b419ac0b35ff1582dSvetoslav Ganov * <strong>Node:</strong>The returned info object is a snapshot of the 514b9a4d16872bbb50712e007b419ac0b35ff1582dSvetoslav Ganov * current print job state. Every call to this method returns a fresh 524b9a4d16872bbb50712e007b419ac0b35ff1582dSvetoslav Ganov * info object that reflects the current print job state. 534b9a4d16872bbb50712e007b419ac0b35ff1582dSvetoslav Ganov * </p> 544b9a4d16872bbb50712e007b419ac0b35ff1582dSvetoslav Ganov * 554b9a4d16872bbb50712e007b419ac0b35ff1582dSvetoslav Ganov * @return The print job info. 564b9a4d16872bbb50712e007b419ac0b35ff1582dSvetoslav Ganov */ 574b9a4d16872bbb50712e007b419ac0b35ff1582dSvetoslav Ganov public PrintJobInfo getInfo() { 584b9a4d16872bbb50712e007b419ac0b35ff1582dSvetoslav Ganov PrintJobInfo info = mPrintManager.getPrintJob(mId); 594b9a4d16872bbb50712e007b419ac0b35ff1582dSvetoslav Ganov if (info != null) { 604b9a4d16872bbb50712e007b419ac0b35ff1582dSvetoslav Ganov mCachedInfo = info; 614b9a4d16872bbb50712e007b419ac0b35ff1582dSvetoslav Ganov } 624b9a4d16872bbb50712e007b419ac0b35ff1582dSvetoslav Ganov return mCachedInfo; 634b9a4d16872bbb50712e007b419ac0b35ff1582dSvetoslav Ganov } 644b9a4d16872bbb50712e007b419ac0b35ff1582dSvetoslav Ganov 654b9a4d16872bbb50712e007b419ac0b35ff1582dSvetoslav Ganov /** 664b9a4d16872bbb50712e007b419ac0b35ff1582dSvetoslav Ganov * Cancels this print job. 674b9a4d16872bbb50712e007b419ac0b35ff1582dSvetoslav Ganov */ 684b9a4d16872bbb50712e007b419ac0b35ff1582dSvetoslav Ganov public void cancel() { 694b9a4d16872bbb50712e007b419ac0b35ff1582dSvetoslav Ganov mPrintManager.cancelPrintJob(mId); 704b9a4d16872bbb50712e007b419ac0b35ff1582dSvetoslav Ganov } 714b9a4d16872bbb50712e007b419ac0b35ff1582dSvetoslav Ganov 724b9a4d16872bbb50712e007b419ac0b35ff1582dSvetoslav Ganov @Override 734b9a4d16872bbb50712e007b419ac0b35ff1582dSvetoslav Ganov public boolean equals(Object obj) { 744b9a4d16872bbb50712e007b419ac0b35ff1582dSvetoslav Ganov if (this == obj) { 754b9a4d16872bbb50712e007b419ac0b35ff1582dSvetoslav Ganov return true; 764b9a4d16872bbb50712e007b419ac0b35ff1582dSvetoslav Ganov } 774b9a4d16872bbb50712e007b419ac0b35ff1582dSvetoslav Ganov if (obj == null) { 784b9a4d16872bbb50712e007b419ac0b35ff1582dSvetoslav Ganov return false; 794b9a4d16872bbb50712e007b419ac0b35ff1582dSvetoslav Ganov } 804b9a4d16872bbb50712e007b419ac0b35ff1582dSvetoslav Ganov if (getClass() != obj.getClass()) { 814b9a4d16872bbb50712e007b419ac0b35ff1582dSvetoslav Ganov return false; 824b9a4d16872bbb50712e007b419ac0b35ff1582dSvetoslav Ganov } 834b9a4d16872bbb50712e007b419ac0b35ff1582dSvetoslav Ganov PrintJob other = (PrintJob) obj; 844b9a4d16872bbb50712e007b419ac0b35ff1582dSvetoslav Ganov return mId == other.mId; 854b9a4d16872bbb50712e007b419ac0b35ff1582dSvetoslav Ganov } 864b9a4d16872bbb50712e007b419ac0b35ff1582dSvetoslav Ganov 874b9a4d16872bbb50712e007b419ac0b35ff1582dSvetoslav Ganov @Override 884b9a4d16872bbb50712e007b419ac0b35ff1582dSvetoslav Ganov public int hashCode() { 894b9a4d16872bbb50712e007b419ac0b35ff1582dSvetoslav Ganov return mId; 904b9a4d16872bbb50712e007b419ac0b35ff1582dSvetoslav Ganov } 914b9a4d16872bbb50712e007b419ac0b35ff1582dSvetoslav Ganov} 92