16859aead3af0680b2c9dc326244aa89835c2c852Bjorn Bringert/* 26859aead3af0680b2c9dc326244aa89835c2c852Bjorn Bringert * Copyright (C) 2010 The Android Open Source Project 36859aead3af0680b2c9dc326244aa89835c2c852Bjorn Bringert * 46859aead3af0680b2c9dc326244aa89835c2c852Bjorn Bringert * Licensed under the Apache License, Version 2.0 (the "License"); 56859aead3af0680b2c9dc326244aa89835c2c852Bjorn Bringert * you may not use this file except in compliance with the License. 66859aead3af0680b2c9dc326244aa89835c2c852Bjorn Bringert * You may obtain a copy of the License at 76859aead3af0680b2c9dc326244aa89835c2c852Bjorn Bringert * 86859aead3af0680b2c9dc326244aa89835c2c852Bjorn Bringert * http://www.apache.org/licenses/LICENSE-2.0 96859aead3af0680b2c9dc326244aa89835c2c852Bjorn Bringert * 106859aead3af0680b2c9dc326244aa89835c2c852Bjorn Bringert * Unless required by applicable law or agreed to in writing, software 116859aead3af0680b2c9dc326244aa89835c2c852Bjorn Bringert * distributed under the License is distributed on an "AS IS" BASIS, 126859aead3af0680b2c9dc326244aa89835c2c852Bjorn Bringert * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 136859aead3af0680b2c9dc326244aa89835c2c852Bjorn Bringert * See the License for the specific language governing permissions and 146859aead3af0680b2c9dc326244aa89835c2c852Bjorn Bringert * limitations under the License. 156859aead3af0680b2c9dc326244aa89835c2c852Bjorn Bringert */ 166859aead3af0680b2c9dc326244aa89835c2c852Bjorn Bringert 176859aead3af0680b2c9dc326244aa89835c2c852Bjorn Bringertpackage com.android.quicksearchbox; 186859aead3af0680b2c9dc326244aa89835c2c852Bjorn Bringert 196859aead3af0680b2c9dc326244aa89835c2c852Bjorn Bringertimport com.android.quicksearchbox.util.Consumer; 206859aead3af0680b2c9dc326244aa89835c2c852Bjorn Bringert 216859aead3af0680b2c9dc326244aa89835c2c852Bjorn Bringert/** 226859aead3af0680b2c9dc326244aa89835c2c852Bjorn Bringert * A consumer that saves the value that it is given. 236859aead3af0680b2c9dc326244aa89835c2c852Bjorn Bringert * 246859aead3af0680b2c9dc326244aa89835c2c852Bjorn Bringert * @param <A> The type of values to consume. 256859aead3af0680b2c9dc326244aa89835c2c852Bjorn Bringert */ 266859aead3af0680b2c9dc326244aa89835c2c852Bjorn Bringertpublic class ConsumerTrap<A> implements Consumer<A> { 276859aead3af0680b2c9dc326244aa89835c2c852Bjorn Bringert 286859aead3af0680b2c9dc326244aa89835c2c852Bjorn Bringert private volatile A mValue; 296859aead3af0680b2c9dc326244aa89835c2c852Bjorn Bringert 306859aead3af0680b2c9dc326244aa89835c2c852Bjorn Bringert public boolean consume(A value) { 316859aead3af0680b2c9dc326244aa89835c2c852Bjorn Bringert mValue = value; 326859aead3af0680b2c9dc326244aa89835c2c852Bjorn Bringert return true; 336859aead3af0680b2c9dc326244aa89835c2c852Bjorn Bringert } 346859aead3af0680b2c9dc326244aa89835c2c852Bjorn Bringert 356859aead3af0680b2c9dc326244aa89835c2c852Bjorn Bringert public A getValue() { 366859aead3af0680b2c9dc326244aa89835c2c852Bjorn Bringert return mValue; 376859aead3af0680b2c9dc326244aa89835c2c852Bjorn Bringert } 386859aead3af0680b2c9dc326244aa89835c2c852Bjorn Bringert}