summaryrefslogtreecommitdiffstats
path: root/src/com/android/messaging/datamodel/binding/Binding.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/com/android/messaging/datamodel/binding/Binding.java')
-rw-r--r--src/com/android/messaging/datamodel/binding/Binding.java94
1 files changed, 0 insertions, 94 deletions
diff --git a/src/com/android/messaging/datamodel/binding/Binding.java b/src/com/android/messaging/datamodel/binding/Binding.java
deleted file mode 100644
index 3ec01dd..0000000
--- a/src/com/android/messaging/datamodel/binding/Binding.java
+++ /dev/null
@@ -1,94 +0,0 @@
-/*
- * Copyright (C) 2015 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.messaging.datamodel.binding;
-
-import java.util.concurrent.atomic.AtomicLong;
-
-public class Binding<T extends BindableData> extends BindingBase<T> {
- private static AtomicLong sBindingIdx = new AtomicLong(System.currentTimeMillis() * 1000);
-
- private String mBindingId;
- private T mData;
- private final Object mOwner;
- private boolean mWasBound;
-
- /**
- * Initialize a binding instance - the owner is typically the containing class
- */
- Binding(final Object owner) {
- mOwner = owner;
- }
-
- @Override
- public T getData() {
- ensureBound();
- return mData;
- }
-
- @Override
- public boolean isBound() {
- return (mData != null && mData.isBound(mBindingId));
- }
-
- @Override
- public boolean isBound(final T data) {
- return (isBound() && data == mData);
- }
-
- @Override
- public void ensureBound() {
- if (!isBound()) {
- throw new IllegalStateException("not bound; wasBound = " + mWasBound);
- }
- }
-
- @Override
- public void ensureBound(final T data) {
- if (!isBound()) {
- throw new IllegalStateException("not bound; wasBound = " + mWasBound);
- } else if (data != mData) {
- throw new IllegalStateException("not bound to correct data " + data + " vs " + mData);
- }
- }
-
- @Override
- public String getBindingId() {
- return mBindingId;
- }
-
- public void bind(final T data) {
- // Check both this binding and the data not already bound
- if (mData != null || data.isBound()) {
- throw new IllegalStateException("already bound when binding to " + data);
- }
- // Generate a unique identifier for this bind call
- mBindingId = Long.toHexString(sBindingIdx.getAndIncrement());
- data.bind(mBindingId);
- mData = data;
- mWasBound = true;
- }
-
- public void unbind() {
- // Check this binding is bound and that data is bound to this binding
- if (mData == null || !mData.isBound(mBindingId)) {
- throw new IllegalStateException("not bound when unbind");
- }
- mData.unbind(mBindingId);
- mData = null;
- mBindingId = null;
- }
-}