aboutsummaryrefslogtreecommitdiffstats
path: root/framework/src/onos/core/api/src/main/java/org/onosproject/store/service/DatabaseUpdate.java
diff options
context:
space:
mode:
Diffstat (limited to 'framework/src/onos/core/api/src/main/java/org/onosproject/store/service/DatabaseUpdate.java')
-rw-r--r--framework/src/onos/core/api/src/main/java/org/onosproject/store/service/DatabaseUpdate.java220
1 files changed, 0 insertions, 220 deletions
diff --git a/framework/src/onos/core/api/src/main/java/org/onosproject/store/service/DatabaseUpdate.java b/framework/src/onos/core/api/src/main/java/org/onosproject/store/service/DatabaseUpdate.java
deleted file mode 100644
index a62d3823..00000000
--- a/framework/src/onos/core/api/src/main/java/org/onosproject/store/service/DatabaseUpdate.java
+++ /dev/null
@@ -1,220 +0,0 @@
-/*
- * Copyright 2015 Open Networking Laboratory
- *
- * 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 org.onosproject.store.service;
-
-import static com.google.common.base.Preconditions.checkArgument;
-import static com.google.common.base.Preconditions.checkNotNull;
-import static com.google.common.base.Preconditions.checkState;
-
-import com.google.common.base.MoreObjects;
-
-/**
- * Database update operation.
- *
- */
-public final class DatabaseUpdate {
-
- /**
- * Type of database update operation.
- */
- public enum Type {
- /**
- * Insert/Update entry without any checks.
- */
- PUT,
- /**
- * Insert an entry iff there is no existing entry for that key.
- */
- PUT_IF_ABSENT,
-
- /**
- * Update entry if the current version matches specified version.
- */
- PUT_IF_VERSION_MATCH,
-
- /**
- * Update entry if the current value matches specified value.
- */
- PUT_IF_VALUE_MATCH,
-
- /**
- * Remove entry without any checks.
- */
- REMOVE,
-
- /**
- * Remove entry if the current version matches specified version.
- */
- REMOVE_IF_VERSION_MATCH,
-
- /**
- * Remove entry if the current value matches specified value.
- */
- REMOVE_IF_VALUE_MATCH,
- }
-
- private Type type;
- private String mapName;
- private String key;
- private byte[] value;
- private byte[] currentValue;
- private long currentVersion = -1;
-
- /**
- * Returns the type of update operation.
- * @return type of update.
- */
- public Type type() {
- return type;
- }
-
- /**
- * Returns the name of map being updated.
- * @return map name.
- */
- public String mapName() {
- return mapName;
- }
-
- /**
- * Returns the item key being updated.
- * @return item key
- */
- public String key() {
- return key;
- }
-
- /**
- * Returns the new value.
- * @return item's target value.
- */
- public byte[] value() {
- return value;
- }
-
- /**
- * Returns the expected current value in the database value for the key.
- * @return current value in database.
- */
- public byte[] currentValue() {
- return currentValue;
- }
-
- /**
- * Returns the expected current version in the database for the key.
- * @return expected version.
- */
- public long currentVersion() {
- return currentVersion;
- }
-
- @Override
- public String toString() {
- return MoreObjects.toStringHelper(this)
- .add("type", type)
- .add("mapName", mapName)
- .add("key", key)
- .add("value", value)
- .add("currentValue", currentValue)
- .add("currentVersion", currentVersion)
- .toString();
- }
-
- /**
- * Creates a new builder instance.
- *
- * @return builder.
- */
- public static Builder newBuilder() {
- return new Builder();
- }
-
- /**
- * DatabaseUpdate builder.
- *
- */
- public static final class Builder {
-
- private DatabaseUpdate update = new DatabaseUpdate();
-
- public DatabaseUpdate build() {
- validateInputs();
- return update;
- }
-
- public Builder withType(Type type) {
- update.type = checkNotNull(type, "type cannot be null");
- return this;
- }
-
- public Builder withMapName(String mapName) {
- update.mapName = checkNotNull(mapName, "mapName cannot be null");
- return this;
- }
-
- public Builder withKey(String key) {
- update.key = checkNotNull(key, "key cannot be null");
- return this;
- }
-
- public Builder withCurrentValue(byte[] value) {
- update.currentValue = checkNotNull(value, "currentValue cannot be null");
- return this;
- }
-
- public Builder withValue(byte[] value) {
- update.value = checkNotNull(value, "value cannot be null");
- return this;
- }
-
- public Builder withCurrentVersion(long version) {
- checkArgument(version >= 0, "version cannot be negative");
- update.currentVersion = version;
- return this;
- }
-
- private void validateInputs() {
- checkNotNull(update.type, "type must be specified");
- checkNotNull(update.mapName, "map name must be specified");
- checkNotNull(update.key, "key must be specified");
- switch (update.type) {
- case PUT:
- case PUT_IF_ABSENT:
- checkNotNull(update.value, "value must be specified.");
- break;
- case PUT_IF_VERSION_MATCH:
- checkNotNull(update.value, "value must be specified.");
- checkState(update.currentVersion >= 0, "current version must be specified");
- break;
- case PUT_IF_VALUE_MATCH:
- checkNotNull(update.value, "value must be specified.");
- checkNotNull(update.currentValue, "currentValue must be specified.");
- break;
- case REMOVE:
- break;
- case REMOVE_IF_VERSION_MATCH:
- checkState(update.currentVersion >= 0, "current version must be specified");
- break;
- case REMOVE_IF_VALUE_MATCH:
- checkNotNull(update.currentValue, "currentValue must be specified.");
- break;
- default:
- throw new IllegalStateException("Unknown operation type");
- }
- }
- }
-}