--- /dev/null
+/*
+ * Copyright (c) 2014 Cisco Systems, Inc. and others. All rights reserved.
+ *
+ * This program and the accompanying materials are made available under the
+ * terms of the Eclipse Public License v1.0 which accompanies this distribution,
+ * and is available at http://www.eclipse.org/legal/epl-v10.html
+ */
+
+package org.opendaylight.controller.cluster.datastore.node.utils.serialization;
+
+import com.google.common.base.Preconditions;
+import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
+
+public enum PathArgumentType {
+ AUGMENTATION_IDENTIFIER,
+ NODE_IDENTIFIER,
+ NODE_IDENTIFIER_WITH_VALUE,
+ NODE_IDENTIFIER_WITH_PREDICATES;
+
+ public static int getSerializablePathArgumentType(YangInstanceIdentifier.PathArgument pathArgument){
+ Preconditions.checkNotNull(pathArgument, "pathArgument should not be null");
+
+ if(pathArgument instanceof YangInstanceIdentifier.AugmentationIdentifier){
+ return AUGMENTATION_IDENTIFIER.ordinal();
+ } else if(pathArgument instanceof YangInstanceIdentifier.NodeIdentifier){
+ return NODE_IDENTIFIER.ordinal();
+ } else if(pathArgument instanceof YangInstanceIdentifier.NodeIdentifierWithPredicates){
+ return NODE_IDENTIFIER_WITH_PREDICATES.ordinal();
+ } else if(pathArgument instanceof YangInstanceIdentifier.NodeWithValue){
+ return NODE_IDENTIFIER_WITH_VALUE.ordinal();
+ }
+ throw new IllegalArgumentException("Unknown type of PathArgument = " + pathArgument.toString());
+ }
+
+}